@aigne/aigne-hub 0.10.17-beta.1 → 1.74.0-beta

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 (107) hide show
  1. package/README.md +11 -11
  2. package/dist/aigne-hub-image-model.cjs +91 -0
  3. package/dist/aigne-hub-image-model.mjs +92 -0
  4. package/dist/aigne-hub-image-model.mjs.map +1 -0
  5. package/dist/aigne-hub-model.cjs +80 -0
  6. package/dist/aigne-hub-model.mjs +81 -0
  7. package/dist/aigne-hub-model.mjs.map +1 -0
  8. package/dist/aigne-hub-video-model.cjs +95 -0
  9. package/dist/aigne-hub-video-model.mjs +96 -0
  10. package/dist/aigne-hub-video-model.mjs.map +1 -0
  11. package/dist/index.cjs +139 -0
  12. package/dist/index.d.cts +118 -0
  13. package/dist/index.d.cts.map +1 -0
  14. package/dist/index.d.mts +118 -0
  15. package/dist/index.d.mts.map +1 -0
  16. package/dist/index.mjs +117 -0
  17. package/dist/index.mjs.map +1 -0
  18. package/dist/utils/blocklet.cjs +13 -0
  19. package/dist/utils/blocklet.d.cts +5 -0
  20. package/dist/utils/blocklet.d.cts.map +1 -0
  21. package/dist/utils/blocklet.d.mts +5 -0
  22. package/dist/utils/blocklet.d.mts.map +1 -0
  23. package/dist/utils/blocklet.mjs +14 -0
  24. package/dist/utils/blocklet.mjs.map +1 -0
  25. package/dist/utils/constants.cjs +46 -0
  26. package/dist/utils/constants.d.cts +26 -0
  27. package/dist/utils/constants.d.cts.map +1 -0
  28. package/dist/utils/constants.d.mts +26 -0
  29. package/dist/utils/constants.d.mts.map +1 -0
  30. package/dist/utils/constants.mjs +38 -0
  31. package/dist/utils/constants.mjs.map +1 -0
  32. package/dist/utils/find-provider.cjs +161 -0
  33. package/{lib/cjs/utils/find-provider.d.ts → dist/utils/find-provider.d.cts} +10 -5
  34. package/dist/utils/find-provider.d.cts.map +1 -0
  35. package/{lib/esm/utils/find-provider.d.ts → dist/utils/find-provider.d.mts} +10 -5
  36. package/dist/utils/find-provider.d.mts.map +1 -0
  37. package/dist/utils/find-provider.mjs +159 -0
  38. package/dist/utils/find-provider.mjs.map +1 -0
  39. package/dist/utils/hub.cjs +24 -0
  40. package/dist/utils/hub.mjs +25 -0
  41. package/dist/utils/hub.mjs.map +1 -0
  42. package/dist/utils/model.cjs +260 -0
  43. package/dist/utils/model.d.cts +57 -0
  44. package/dist/utils/model.d.cts.map +1 -0
  45. package/dist/utils/model.d.mts +57 -0
  46. package/dist/utils/model.d.mts.map +1 -0
  47. package/dist/utils/model.mjs +255 -0
  48. package/dist/utils/model.mjs.map +1 -0
  49. package/dist/utils/type.cjs +20 -0
  50. package/dist/utils/type.d.cts +28 -0
  51. package/dist/utils/type.d.cts.map +1 -0
  52. package/dist/utils/type.d.mts +29 -0
  53. package/dist/utils/type.d.mts.map +1 -0
  54. package/dist/utils/type.mjs +21 -0
  55. package/dist/utils/type.mjs.map +1 -0
  56. package/package.json +40 -41
  57. package/CHANGELOG.md +0 -4238
  58. package/lib/cjs/aigne-hub-image-model.d.ts +0 -28
  59. package/lib/cjs/aigne-hub-image-model.js +0 -90
  60. package/lib/cjs/aigne-hub-model.d.ts +0 -28
  61. package/lib/cjs/aigne-hub-model.js +0 -80
  62. package/lib/cjs/aigne-hub-video-model.d.ts +0 -28
  63. package/lib/cjs/aigne-hub-video-model.js +0 -89
  64. package/lib/cjs/index.d.ts +0 -112
  65. package/lib/cjs/index.js +0 -135
  66. package/lib/cjs/package.json +0 -3
  67. package/lib/cjs/utils/blocklet.d.ts +0 -1
  68. package/lib/cjs/utils/blocklet.js +0 -15
  69. package/lib/cjs/utils/constants.d.ts +0 -22
  70. package/lib/cjs/utils/constants.js +0 -37
  71. package/lib/cjs/utils/find-provider.js +0 -121
  72. package/lib/cjs/utils/hub.d.ts +0 -16
  73. package/lib/cjs/utils/hub.js +0 -30
  74. package/lib/cjs/utils/model.d.ts +0 -52
  75. package/lib/cjs/utils/model.js +0 -207
  76. package/lib/cjs/utils/type.d.ts +0 -78
  77. package/lib/cjs/utils/type.js +0 -20
  78. package/lib/dts/aigne-hub-image-model.d.ts +0 -28
  79. package/lib/dts/aigne-hub-model.d.ts +0 -28
  80. package/lib/dts/aigne-hub-video-model.d.ts +0 -28
  81. package/lib/dts/index.d.ts +0 -112
  82. package/lib/dts/utils/blocklet.d.ts +0 -1
  83. package/lib/dts/utils/constants.d.ts +0 -22
  84. package/lib/dts/utils/find-provider.d.ts +0 -17
  85. package/lib/dts/utils/hub.d.ts +0 -16
  86. package/lib/dts/utils/model.d.ts +0 -52
  87. package/lib/dts/utils/type.d.ts +0 -78
  88. package/lib/esm/aigne-hub-image-model.d.ts +0 -28
  89. package/lib/esm/aigne-hub-image-model.js +0 -86
  90. package/lib/esm/aigne-hub-model.d.ts +0 -28
  91. package/lib/esm/aigne-hub-model.js +0 -76
  92. package/lib/esm/aigne-hub-video-model.d.ts +0 -28
  93. package/lib/esm/aigne-hub-video-model.js +0 -85
  94. package/lib/esm/index.d.ts +0 -112
  95. package/lib/esm/index.js +0 -115
  96. package/lib/esm/package.json +0 -3
  97. package/lib/esm/utils/blocklet.d.ts +0 -1
  98. package/lib/esm/utils/blocklet.js +0 -12
  99. package/lib/esm/utils/constants.d.ts +0 -22
  100. package/lib/esm/utils/constants.js +0 -33
  101. package/lib/esm/utils/find-provider.js +0 -115
  102. package/lib/esm/utils/hub.d.ts +0 -16
  103. package/lib/esm/utils/hub.js +0 -27
  104. package/lib/esm/utils/model.d.ts +0 -52
  105. package/lib/esm/utils/model.js +0 -197
  106. package/lib/esm/utils/type.d.ts +0 -78
  107. package/lib/esm/utils/type.js +0 -17
@@ -0,0 +1,26 @@
1
+ //#region src/utils/constants.d.ts
2
+ declare const AIGNE_HUB_URL = "https://hub.aigne.io/";
3
+ declare const AIGNE_HUB_BLOCKLET_DID = "z8ia3xzq2tMq8CRHfaXj1BTYJyYnEcHbqP8cJ";
4
+ declare const AIGNE_HUB_DEFAULT_MODEL = "openai/gpt-5-mini";
5
+ declare const AIGNE_HUB_IMAGE_MODEL = "openai/gpt-image-1";
6
+ declare const AIGNE_HUB_VIDEO_MODEL = "openai/sora-2";
7
+ declare const AIGNE_HUB_PROVIDER = "aignehub";
8
+ declare const aigneHubBaseUrl: () => string;
9
+ declare const AI_PROVIDERS: {
10
+ readonly OPENAI: "openai";
11
+ readonly ANTHROPIC: "anthropic";
12
+ readonly BEDROCK: "bedrock";
13
+ readonly DEEPSEEK: "deepseek";
14
+ readonly GOOGLE: "google";
15
+ readonly OLLAMA: "ollama";
16
+ readonly OPENROUTER: "openrouter";
17
+ readonly XAI: "xai";
18
+ readonly DOUBAO: "doubao";
19
+ readonly POE: "poe";
20
+ readonly IDEOGRAM: "ideogram";
21
+ };
22
+ type AIProviderType = (typeof AI_PROVIDERS)[keyof typeof AI_PROVIDERS];
23
+ declare const PROVIDER_RANK: Record<AIProviderType, number>;
24
+ //#endregion
25
+ export { AIGNE_HUB_BLOCKLET_DID, AIGNE_HUB_DEFAULT_MODEL, AIGNE_HUB_IMAGE_MODEL, AIGNE_HUB_PROVIDER, AIGNE_HUB_URL, AIGNE_HUB_VIDEO_MODEL, AIProviderType, AI_PROVIDERS, PROVIDER_RANK, aigneHubBaseUrl };
26
+ //# sourceMappingURL=constants.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.mts","names":[],"sources":["../../src/utils/constants.ts"],"mappings":";cAAa,aAAA;AAAA,cAEA,sBAAA;AAAA,cAEA,uBAAA;AAAA,cAEA,qBAAA;AAAA,cAEA,qBAAA;AAAA,cAEA,kBAAA;AAAA,cAEA,eAAA;AAAA,cAGA,YAAA;EAAA,SAAA,MAAA;EAAA,SAAA,SAAA;EAAA,SAAA,OAAA;EAAA,SAAA,QAAA;EAAA,SAAA,MAAA;EAAA,SAAA,MAAA;EAAA,SAAA,UAAA;EAAA,SAAA,GAAA;EAAA,SAAA,MAAA;EAAA,SAAA,GAAA;EAAA,SAAA,QAAA;AAAA;AAAA,KAcD,cAAA,WAAyB,YAAA,eAA2B,YAAA;AAAA,cAEnD,aAAA,EAAe,MAAA,CAAO,cAAA"}
@@ -0,0 +1,38 @@
1
+ //#region src/utils/constants.ts
2
+ const AIGNE_HUB_URL = "https://hub.aigne.io/";
3
+ const AIGNE_HUB_BLOCKLET_DID = "z8ia3xzq2tMq8CRHfaXj1BTYJyYnEcHbqP8cJ";
4
+ const AIGNE_HUB_DEFAULT_MODEL = "openai/gpt-5-mini";
5
+ const AIGNE_HUB_IMAGE_MODEL = "openai/gpt-image-1";
6
+ const AIGNE_HUB_VIDEO_MODEL = "openai/sora-2";
7
+ const AIGNE_HUB_PROVIDER = "aignehub";
8
+ const aigneHubBaseUrl = () => process.env.BLOCKLET_AIGNE_API_URL || process.env.AIGNE_HUB_API_URL || AIGNE_HUB_URL;
9
+ const AI_PROVIDERS = {
10
+ OPENAI: "openai",
11
+ ANTHROPIC: "anthropic",
12
+ BEDROCK: "bedrock",
13
+ DEEPSEEK: "deepseek",
14
+ GOOGLE: "google",
15
+ OLLAMA: "ollama",
16
+ OPENROUTER: "openrouter",
17
+ XAI: "xai",
18
+ DOUBAO: "doubao",
19
+ POE: "poe",
20
+ IDEOGRAM: "ideogram"
21
+ };
22
+ const PROVIDER_RANK = {
23
+ openai: 1,
24
+ anthropic: 1,
25
+ google: 1,
26
+ deepseek: 1,
27
+ xai: 1,
28
+ doubao: 1,
29
+ ideogram: 1,
30
+ bedrock: 2,
31
+ openrouter: 3,
32
+ poe: 3,
33
+ ollama: 4
34
+ };
35
+
36
+ //#endregion
37
+ export { AIGNE_HUB_BLOCKLET_DID, AIGNE_HUB_DEFAULT_MODEL, AIGNE_HUB_IMAGE_MODEL, AIGNE_HUB_PROVIDER, AIGNE_HUB_URL, AIGNE_HUB_VIDEO_MODEL, AI_PROVIDERS, PROVIDER_RANK, aigneHubBaseUrl };
38
+ //# sourceMappingURL=constants.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.mjs","names":[],"sources":["../../src/utils/constants.ts"],"sourcesContent":["export const AIGNE_HUB_URL = \"https://hub.aigne.io/\";\n\nexport const AIGNE_HUB_BLOCKLET_DID = \"z8ia3xzq2tMq8CRHfaXj1BTYJyYnEcHbqP8cJ\";\n\nexport const AIGNE_HUB_DEFAULT_MODEL = \"openai/gpt-5-mini\";\n\nexport const AIGNE_HUB_IMAGE_MODEL = \"openai/gpt-image-1\";\n\nexport const AIGNE_HUB_VIDEO_MODEL = \"openai/sora-2\";\n\nexport const AIGNE_HUB_PROVIDER = \"aignehub\";\n\nexport const aigneHubBaseUrl = () =>\n process.env.BLOCKLET_AIGNE_API_URL || process.env.AIGNE_HUB_API_URL || AIGNE_HUB_URL;\n\nexport const AI_PROVIDERS = {\n OPENAI: \"openai\",\n ANTHROPIC: \"anthropic\",\n BEDROCK: \"bedrock\",\n DEEPSEEK: \"deepseek\",\n GOOGLE: \"google\",\n OLLAMA: \"ollama\",\n OPENROUTER: \"openrouter\",\n XAI: \"xai\",\n DOUBAO: \"doubao\",\n POE: \"poe\",\n IDEOGRAM: \"ideogram\",\n} as const;\n\nexport type AIProviderType = (typeof AI_PROVIDERS)[keyof typeof AI_PROVIDERS];\n\nexport const PROVIDER_RANK: Record<AIProviderType, number> = {\n openai: 1,\n anthropic: 1,\n google: 1,\n deepseek: 1,\n xai: 1,\n doubao: 1,\n ideogram: 1,\n bedrock: 2,\n openrouter: 3,\n poe: 3,\n ollama: 4,\n};\n"],"mappings":";AAAA,MAAa,gBAAgB;AAE7B,MAAa,yBAAyB;AAEtC,MAAa,0BAA0B;AAEvC,MAAa,wBAAwB;AAErC,MAAa,wBAAwB;AAErC,MAAa,qBAAqB;AAElC,MAAa,wBACX,QAAQ,IAAI,0BAA0B,QAAQ,IAAI,qBAAqB;AAEzE,MAAa,eAAe;CAC1B,QAAQ;CACR,WAAW;CACX,SAAS;CACT,UAAU;CACV,QAAQ;CACR,QAAQ;CACR,YAAY;CACZ,KAAK;CACL,QAAQ;CACR,KAAK;CACL,UAAU;CACX;AAID,MAAa,gBAAgD;CAC3D,QAAQ;CACR,WAAW;CACX,QAAQ;CACR,UAAU;CACV,KAAK;CACL,QAAQ;CACR,UAAU;CACV,SAAS;CACT,YAAY;CACZ,KAAK;CACL,QAAQ;CACT"}
@@ -0,0 +1,161 @@
1
+ const require_constants = require('./constants.cjs');
2
+
3
+ //#region src/utils/find-provider.ts
4
+ const MODEL_CONFIGS = [
5
+ {
6
+ pattern: /^gemini|^imagen|^veo/,
7
+ vendor: "google",
8
+ defaultProvider: "google",
9
+ supportedProviders: [
10
+ "google",
11
+ "openrouter",
12
+ "poe"
13
+ ]
14
+ },
15
+ {
16
+ pattern: /^gpt-|^o[13]-|^dall-e-|^text-embedding|^sora-/,
17
+ vendor: "openai",
18
+ defaultProvider: "openai",
19
+ supportedProviders: [
20
+ "openai",
21
+ "openrouter",
22
+ "poe"
23
+ ]
24
+ },
25
+ {
26
+ pattern: /^claude/,
27
+ vendor: "anthropic",
28
+ defaultProvider: "anthropic",
29
+ supportedProviders: [
30
+ "anthropic",
31
+ "bedrock",
32
+ "openrouter",
33
+ "poe"
34
+ ]
35
+ },
36
+ {
37
+ pattern: /^deepseek/,
38
+ vendor: "deepseek",
39
+ defaultProvider: "deepseek",
40
+ supportedProviders: [
41
+ "deepseek",
42
+ "openrouter",
43
+ "ollama"
44
+ ]
45
+ },
46
+ {
47
+ pattern: /^grok/,
48
+ vendor: "xai",
49
+ defaultProvider: "xai",
50
+ supportedProviders: [
51
+ "xai",
52
+ "openrouter",
53
+ "poe"
54
+ ]
55
+ },
56
+ {
57
+ pattern: /^doubao/,
58
+ vendor: "doubao",
59
+ defaultProvider: "doubao",
60
+ supportedProviders: ["doubao"]
61
+ },
62
+ {
63
+ pattern: /^llama/,
64
+ vendor: "meta",
65
+ supportedProviders: [
66
+ "openrouter",
67
+ "ollama",
68
+ "bedrock"
69
+ ]
70
+ },
71
+ {
72
+ pattern: /^mistral|^mixtral/,
73
+ vendor: "mistral",
74
+ supportedProviders: [
75
+ "openrouter",
76
+ "ollama",
77
+ "bedrock"
78
+ ]
79
+ },
80
+ {
81
+ pattern: /^qwen/,
82
+ vendor: "qwen",
83
+ supportedProviders: [
84
+ "openrouter",
85
+ "ollama",
86
+ "bedrock"
87
+ ]
88
+ },
89
+ {
90
+ pattern: /^gemma/,
91
+ vendor: "google",
92
+ supportedProviders: [
93
+ "openrouter",
94
+ "ollama",
95
+ "bedrock"
96
+ ]
97
+ },
98
+ {
99
+ pattern: /^yi/,
100
+ vendor: "yi",
101
+ supportedProviders: [
102
+ "openrouter",
103
+ "ollama",
104
+ "bedrock"
105
+ ]
106
+ },
107
+ {
108
+ pattern: /^phi/,
109
+ vendor: "microsoft",
110
+ supportedProviders: [
111
+ "openrouter",
112
+ "ollama",
113
+ "bedrock"
114
+ ]
115
+ }
116
+ ];
117
+ function findModelConfig(model) {
118
+ if (!model) return void 0;
119
+ const id = model.toLowerCase();
120
+ return MODEL_CONFIGS.find((config) => config.pattern.test(id));
121
+ }
122
+ function inferVendorFromModel(model) {
123
+ return findModelConfig(model)?.vendor;
124
+ }
125
+ function getDefaultProviderForModel(model) {
126
+ const config = findModelConfig(model);
127
+ if (!config) return null;
128
+ return config.defaultProvider ?? (config.supportedProviders?.[0] || null);
129
+ }
130
+ function getSupportedProviders(model) {
131
+ const config = findModelConfig(model);
132
+ if (!config?.supportedProviders) return [];
133
+ return config.supportedProviders.sort((a, b) => require_constants.PROVIDER_RANK[a] - require_constants.PROVIDER_RANK[b]);
134
+ }
135
+ /**
136
+ * Resolve provider-specific model ID based on platform conventions
137
+ * @param provider - The provider name (e.g., 'openrouter', 'bedrock', 'google')
138
+ * @param canonicalModel - The canonical model name (e.g., 'gemini-2.5-pro', 'claude-3-5-sonnet-20241022')
139
+ * @param vendor - Optional vendor hint (e.g., 'google' for gemini models, 'anthropic' for claude)
140
+ * @returns Provider-specific model ID
141
+ *
142
+ * Examples:
143
+ * - OpenRouter: 'google/gemini-2.5-pro', 'openai/gpt-4o', 'anthropic/claude-3-5-sonnet'
144
+ * - Bedrock: 'anthropic.claude-3-5-sonnet-20241022-v2:0', 'meta.llama3-70b-instruct-v1:0'
145
+ * - Direct providers (google, openai, etc.): 'gemini-2.5-pro', 'gpt-4o'
146
+ */
147
+ function resolveProviderModelId(provider, canonicalModel, vendor) {
148
+ const v = vendor || inferVendorFromModel(canonicalModel);
149
+ if (provider === "bedrock" && v) {
150
+ if (canonicalModel.includes(".")) return canonicalModel;
151
+ return `${v}.${canonicalModel}`;
152
+ }
153
+ if (provider === "openrouter" && v && !canonicalModel.startsWith(`${v}/`)) return `${v}/${canonicalModel}`;
154
+ return canonicalModel;
155
+ }
156
+
157
+ //#endregion
158
+ exports.getDefaultProviderForModel = getDefaultProviderForModel;
159
+ exports.getSupportedProviders = getSupportedProviders;
160
+ exports.inferVendorFromModel = inferVendorFromModel;
161
+ exports.resolveProviderModelId = resolveProviderModelId;
@@ -1,7 +1,9 @@
1
- import type { AIProviderType } from "./constants.js";
2
- export declare function inferVendorFromModel(model: string): string | undefined;
3
- export declare function getDefaultProviderForModel(model: string): AIProviderType | null;
4
- export declare function getSupportedProviders(model: string): AIProviderType[];
1
+ import { AIProviderType } from "./constants.cjs";
2
+
3
+ //#region src/utils/find-provider.d.ts
4
+ declare function inferVendorFromModel(model: string): string | undefined;
5
+ declare function getDefaultProviderForModel(model: string): AIProviderType | null;
6
+ declare function getSupportedProviders(model: string): AIProviderType[];
5
7
  /**
6
8
  * Resolve provider-specific model ID based on platform conventions
7
9
  * @param provider - The provider name (e.g., 'openrouter', 'bedrock', 'google')
@@ -14,4 +16,7 @@ export declare function getSupportedProviders(model: string): AIProviderType[];
14
16
  * - Bedrock: 'anthropic.claude-3-5-sonnet-20241022-v2:0', 'meta.llama3-70b-instruct-v1:0'
15
17
  * - Direct providers (google, openai, etc.): 'gemini-2.5-pro', 'gpt-4o'
16
18
  */
17
- export declare function resolveProviderModelId(provider: AIProviderType, canonicalModel: string, vendor?: string): string;
19
+ declare function resolveProviderModelId(provider: AIProviderType, canonicalModel: string, vendor?: string): string;
20
+ //#endregion
21
+ export { getDefaultProviderForModel, getSupportedProviders, inferVendorFromModel, resolveProviderModelId };
22
+ //# sourceMappingURL=find-provider.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find-provider.d.cts","names":[],"sources":["../../src/utils/find-provider.ts"],"mappings":";;;iBAqFgB,oBAAA,CAAA,KAAA;AAAA,iBAIA,0BAAA,CAAA,KAAA,WAA2C,cAAA;AAAA,iBAM3C,qBAAA,CAAA,KAAA,WAAsC,cAAA;AAAA;AAmBtD;;;;;;;;;;;AAnBsD,iBAmBtC,sBAAA,CAAA,QAAA,EACJ,cAAA,EAAA,cAAA,UAAA,MAAA"}
@@ -1,7 +1,9 @@
1
- import type { AIProviderType } from "./constants.js";
2
- export declare function inferVendorFromModel(model: string): string | undefined;
3
- export declare function getDefaultProviderForModel(model: string): AIProviderType | null;
4
- export declare function getSupportedProviders(model: string): AIProviderType[];
1
+ import { AIProviderType } from "./constants.mjs";
2
+
3
+ //#region src/utils/find-provider.d.ts
4
+ declare function inferVendorFromModel(model: string): string | undefined;
5
+ declare function getDefaultProviderForModel(model: string): AIProviderType | null;
6
+ declare function getSupportedProviders(model: string): AIProviderType[];
5
7
  /**
6
8
  * Resolve provider-specific model ID based on platform conventions
7
9
  * @param provider - The provider name (e.g., 'openrouter', 'bedrock', 'google')
@@ -14,4 +16,7 @@ export declare function getSupportedProviders(model: string): AIProviderType[];
14
16
  * - Bedrock: 'anthropic.claude-3-5-sonnet-20241022-v2:0', 'meta.llama3-70b-instruct-v1:0'
15
17
  * - Direct providers (google, openai, etc.): 'gemini-2.5-pro', 'gpt-4o'
16
18
  */
17
- export declare function resolveProviderModelId(provider: AIProviderType, canonicalModel: string, vendor?: string): string;
19
+ declare function resolveProviderModelId(provider: AIProviderType, canonicalModel: string, vendor?: string): string;
20
+ //#endregion
21
+ export { getDefaultProviderForModel, getSupportedProviders, inferVendorFromModel, resolveProviderModelId };
22
+ //# sourceMappingURL=find-provider.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find-provider.d.mts","names":[],"sources":["../../src/utils/find-provider.ts"],"mappings":";;;iBAqFgB,oBAAA,CAAA,KAAA;AAAA,iBAIA,0BAAA,CAAA,KAAA,WAA2C,cAAA;AAAA,iBAM3C,qBAAA,CAAA,KAAA,WAAsC,cAAA;AAAA;AAmBtD;;;;;;;;;;;AAnBsD,iBAmBtC,sBAAA,CAAA,QAAA,EACJ,cAAA,EAAA,cAAA,UAAA,MAAA"}
@@ -0,0 +1,159 @@
1
+ import { PROVIDER_RANK } from "./constants.mjs";
2
+
3
+ //#region src/utils/find-provider.ts
4
+ const MODEL_CONFIGS = [
5
+ {
6
+ pattern: /^gemini|^imagen|^veo/,
7
+ vendor: "google",
8
+ defaultProvider: "google",
9
+ supportedProviders: [
10
+ "google",
11
+ "openrouter",
12
+ "poe"
13
+ ]
14
+ },
15
+ {
16
+ pattern: /^gpt-|^o[13]-|^dall-e-|^text-embedding|^sora-/,
17
+ vendor: "openai",
18
+ defaultProvider: "openai",
19
+ supportedProviders: [
20
+ "openai",
21
+ "openrouter",
22
+ "poe"
23
+ ]
24
+ },
25
+ {
26
+ pattern: /^claude/,
27
+ vendor: "anthropic",
28
+ defaultProvider: "anthropic",
29
+ supportedProviders: [
30
+ "anthropic",
31
+ "bedrock",
32
+ "openrouter",
33
+ "poe"
34
+ ]
35
+ },
36
+ {
37
+ pattern: /^deepseek/,
38
+ vendor: "deepseek",
39
+ defaultProvider: "deepseek",
40
+ supportedProviders: [
41
+ "deepseek",
42
+ "openrouter",
43
+ "ollama"
44
+ ]
45
+ },
46
+ {
47
+ pattern: /^grok/,
48
+ vendor: "xai",
49
+ defaultProvider: "xai",
50
+ supportedProviders: [
51
+ "xai",
52
+ "openrouter",
53
+ "poe"
54
+ ]
55
+ },
56
+ {
57
+ pattern: /^doubao/,
58
+ vendor: "doubao",
59
+ defaultProvider: "doubao",
60
+ supportedProviders: ["doubao"]
61
+ },
62
+ {
63
+ pattern: /^llama/,
64
+ vendor: "meta",
65
+ supportedProviders: [
66
+ "openrouter",
67
+ "ollama",
68
+ "bedrock"
69
+ ]
70
+ },
71
+ {
72
+ pattern: /^mistral|^mixtral/,
73
+ vendor: "mistral",
74
+ supportedProviders: [
75
+ "openrouter",
76
+ "ollama",
77
+ "bedrock"
78
+ ]
79
+ },
80
+ {
81
+ pattern: /^qwen/,
82
+ vendor: "qwen",
83
+ supportedProviders: [
84
+ "openrouter",
85
+ "ollama",
86
+ "bedrock"
87
+ ]
88
+ },
89
+ {
90
+ pattern: /^gemma/,
91
+ vendor: "google",
92
+ supportedProviders: [
93
+ "openrouter",
94
+ "ollama",
95
+ "bedrock"
96
+ ]
97
+ },
98
+ {
99
+ pattern: /^yi/,
100
+ vendor: "yi",
101
+ supportedProviders: [
102
+ "openrouter",
103
+ "ollama",
104
+ "bedrock"
105
+ ]
106
+ },
107
+ {
108
+ pattern: /^phi/,
109
+ vendor: "microsoft",
110
+ supportedProviders: [
111
+ "openrouter",
112
+ "ollama",
113
+ "bedrock"
114
+ ]
115
+ }
116
+ ];
117
+ function findModelConfig(model) {
118
+ if (!model) return void 0;
119
+ const id = model.toLowerCase();
120
+ return MODEL_CONFIGS.find((config) => config.pattern.test(id));
121
+ }
122
+ function inferVendorFromModel(model) {
123
+ return findModelConfig(model)?.vendor;
124
+ }
125
+ function getDefaultProviderForModel(model) {
126
+ const config = findModelConfig(model);
127
+ if (!config) return null;
128
+ return config.defaultProvider ?? (config.supportedProviders?.[0] || null);
129
+ }
130
+ function getSupportedProviders(model) {
131
+ const config = findModelConfig(model);
132
+ if (!config?.supportedProviders) return [];
133
+ return config.supportedProviders.sort((a, b) => PROVIDER_RANK[a] - PROVIDER_RANK[b]);
134
+ }
135
+ /**
136
+ * Resolve provider-specific model ID based on platform conventions
137
+ * @param provider - The provider name (e.g., 'openrouter', 'bedrock', 'google')
138
+ * @param canonicalModel - The canonical model name (e.g., 'gemini-2.5-pro', 'claude-3-5-sonnet-20241022')
139
+ * @param vendor - Optional vendor hint (e.g., 'google' for gemini models, 'anthropic' for claude)
140
+ * @returns Provider-specific model ID
141
+ *
142
+ * Examples:
143
+ * - OpenRouter: 'google/gemini-2.5-pro', 'openai/gpt-4o', 'anthropic/claude-3-5-sonnet'
144
+ * - Bedrock: 'anthropic.claude-3-5-sonnet-20241022-v2:0', 'meta.llama3-70b-instruct-v1:0'
145
+ * - Direct providers (google, openai, etc.): 'gemini-2.5-pro', 'gpt-4o'
146
+ */
147
+ function resolveProviderModelId(provider, canonicalModel, vendor) {
148
+ const v = vendor || inferVendorFromModel(canonicalModel);
149
+ if (provider === "bedrock" && v) {
150
+ if (canonicalModel.includes(".")) return canonicalModel;
151
+ return `${v}.${canonicalModel}`;
152
+ }
153
+ if (provider === "openrouter" && v && !canonicalModel.startsWith(`${v}/`)) return `${v}/${canonicalModel}`;
154
+ return canonicalModel;
155
+ }
156
+
157
+ //#endregion
158
+ export { getDefaultProviderForModel, getSupportedProviders, inferVendorFromModel, resolveProviderModelId };
159
+ //# sourceMappingURL=find-provider.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find-provider.mjs","names":[],"sources":["../../src/utils/find-provider.ts"],"sourcesContent":["import type { AIProviderType } from \"./constants.js\";\nimport { PROVIDER_RANK } from \"./constants.js\";\n\ninterface ModelConfig {\n pattern: RegExp;\n vendor?: string;\n defaultProvider?: AIProviderType;\n supportedProviders?: AIProviderType[];\n}\n\nconst MODEL_CONFIGS: ModelConfig[] = [\n {\n pattern: /^gemini|^imagen|^veo/,\n vendor: \"google\",\n defaultProvider: \"google\",\n supportedProviders: [\"google\", \"openrouter\", \"poe\"],\n },\n {\n pattern: /^gpt-|^o[13]-|^dall-e-|^text-embedding|^sora-/,\n vendor: \"openai\",\n defaultProvider: \"openai\",\n supportedProviders: [\"openai\", \"openrouter\", \"poe\"],\n },\n {\n pattern: /^claude/,\n vendor: \"anthropic\",\n defaultProvider: \"anthropic\",\n supportedProviders: [\"anthropic\", \"bedrock\", \"openrouter\", \"poe\"],\n },\n {\n pattern: /^deepseek/,\n vendor: \"deepseek\",\n defaultProvider: \"deepseek\",\n supportedProviders: [\"deepseek\", \"openrouter\", \"ollama\"],\n },\n {\n pattern: /^grok/,\n vendor: \"xai\",\n defaultProvider: \"xai\",\n supportedProviders: [\"xai\", \"openrouter\", \"poe\"],\n },\n {\n pattern: /^doubao/,\n vendor: \"doubao\",\n defaultProvider: \"doubao\",\n supportedProviders: [\"doubao\"],\n },\n {\n pattern: /^llama/,\n vendor: \"meta\",\n supportedProviders: [\"openrouter\", \"ollama\", \"bedrock\"],\n },\n {\n pattern: /^mistral|^mixtral/,\n vendor: \"mistral\",\n supportedProviders: [\"openrouter\", \"ollama\", \"bedrock\"],\n },\n {\n pattern: /^qwen/,\n vendor: \"qwen\",\n supportedProviders: [\"openrouter\", \"ollama\", \"bedrock\"],\n },\n {\n pattern: /^gemma/,\n vendor: \"google\",\n supportedProviders: [\"openrouter\", \"ollama\", \"bedrock\"],\n },\n {\n pattern: /^yi/,\n vendor: \"yi\",\n supportedProviders: [\"openrouter\", \"ollama\", \"bedrock\"],\n },\n {\n pattern: /^phi/,\n vendor: \"microsoft\",\n supportedProviders: [\"openrouter\", \"ollama\", \"bedrock\"],\n },\n];\n\nfunction findModelConfig(model: string): ModelConfig | undefined {\n if (!model) return undefined;\n const id = model.toLowerCase();\n return MODEL_CONFIGS.find((config) => config.pattern.test(id));\n}\n\nexport function inferVendorFromModel(model: string): string | undefined {\n return findModelConfig(model)?.vendor;\n}\n\nexport function getDefaultProviderForModel(model: string): AIProviderType | null {\n const config = findModelConfig(model);\n if (!config) return null;\n return config.defaultProvider ?? (config.supportedProviders?.[0] || null);\n}\n\nexport function getSupportedProviders(model: string): AIProviderType[] {\n const config = findModelConfig(model);\n if (!config?.supportedProviders) return [];\n\n return config.supportedProviders.sort((a, b) => PROVIDER_RANK[a] - PROVIDER_RANK[b]);\n}\n\n/**\n * Resolve provider-specific model ID based on platform conventions\n * @param provider - The provider name (e.g., 'openrouter', 'bedrock', 'google')\n * @param canonicalModel - The canonical model name (e.g., 'gemini-2.5-pro', 'claude-3-5-sonnet-20241022')\n * @param vendor - Optional vendor hint (e.g., 'google' for gemini models, 'anthropic' for claude)\n * @returns Provider-specific model ID\n *\n * Examples:\n * - OpenRouter: 'google/gemini-2.5-pro', 'openai/gpt-4o', 'anthropic/claude-3-5-sonnet'\n * - Bedrock: 'anthropic.claude-3-5-sonnet-20241022-v2:0', 'meta.llama3-70b-instruct-v1:0'\n * - Direct providers (google, openai, etc.): 'gemini-2.5-pro', 'gpt-4o'\n */\nexport function resolveProviderModelId(\n provider: AIProviderType,\n canonicalModel: string,\n vendor?: string,\n): string {\n const v = vendor || inferVendorFromModel(canonicalModel);\n\n if (provider === \"bedrock\" && v) {\n if (canonicalModel.includes(\".\")) {\n return canonicalModel;\n }\n return `${v}.${canonicalModel}`;\n }\n\n if (provider === \"openrouter\" && v && !canonicalModel.startsWith(`${v}/`)) {\n return `${v}/${canonicalModel}`;\n }\n\n return canonicalModel;\n}\n"],"mappings":";;;AAUA,MAAM,gBAA+B;CACnC;EACE,SAAS;EACT,QAAQ;EACR,iBAAiB;EACjB,oBAAoB;GAAC;GAAU;GAAc;GAAM;EACpD;CACD;EACE,SAAS;EACT,QAAQ;EACR,iBAAiB;EACjB,oBAAoB;GAAC;GAAU;GAAc;GAAM;EACpD;CACD;EACE,SAAS;EACT,QAAQ;EACR,iBAAiB;EACjB,oBAAoB;GAAC;GAAa;GAAW;GAAc;GAAM;EAClE;CACD;EACE,SAAS;EACT,QAAQ;EACR,iBAAiB;EACjB,oBAAoB;GAAC;GAAY;GAAc;GAAS;EACzD;CACD;EACE,SAAS;EACT,QAAQ;EACR,iBAAiB;EACjB,oBAAoB;GAAC;GAAO;GAAc;GAAM;EACjD;CACD;EACE,SAAS;EACT,QAAQ;EACR,iBAAiB;EACjB,oBAAoB,CAAC,SAAS;EAC/B;CACD;EACE,SAAS;EACT,QAAQ;EACR,oBAAoB;GAAC;GAAc;GAAU;GAAU;EACxD;CACD;EACE,SAAS;EACT,QAAQ;EACR,oBAAoB;GAAC;GAAc;GAAU;GAAU;EACxD;CACD;EACE,SAAS;EACT,QAAQ;EACR,oBAAoB;GAAC;GAAc;GAAU;GAAU;EACxD;CACD;EACE,SAAS;EACT,QAAQ;EACR,oBAAoB;GAAC;GAAc;GAAU;GAAU;EACxD;CACD;EACE,SAAS;EACT,QAAQ;EACR,oBAAoB;GAAC;GAAc;GAAU;GAAU;EACxD;CACD;EACE,SAAS;EACT,QAAQ;EACR,oBAAoB;GAAC;GAAc;GAAU;GAAU;EACxD;CACF;AAED,SAAS,gBAAgB,OAAwC;AAC/D,KAAI,CAAC,MAAO,QAAO;CACnB,MAAM,KAAK,MAAM,aAAa;AAC9B,QAAO,cAAc,MAAM,WAAW,OAAO,QAAQ,KAAK,GAAG,CAAC;;AAGhE,SAAgB,qBAAqB,OAAmC;AACtE,QAAO,gBAAgB,MAAM,EAAE;;AAGjC,SAAgB,2BAA2B,OAAsC;CAC/E,MAAM,SAAS,gBAAgB,MAAM;AACrC,KAAI,CAAC,OAAQ,QAAO;AACpB,QAAO,OAAO,oBAAoB,OAAO,qBAAqB,MAAM;;AAGtE,SAAgB,sBAAsB,OAAiC;CACrE,MAAM,SAAS,gBAAgB,MAAM;AACrC,KAAI,CAAC,QAAQ,mBAAoB,QAAO,EAAE;AAE1C,QAAO,OAAO,mBAAmB,MAAM,GAAG,MAAM,cAAc,KAAK,cAAc,GAAG;;;;;;;;;;;;;;AAetF,SAAgB,uBACd,UACA,gBACA,QACQ;CACR,MAAM,IAAI,UAAU,qBAAqB,eAAe;AAExD,KAAI,aAAa,aAAa,GAAG;AAC/B,MAAI,eAAe,SAAS,IAAI,CAC9B,QAAO;AAET,SAAO,GAAG,EAAE,GAAG;;AAGjB,KAAI,aAAa,gBAAgB,KAAK,CAAC,eAAe,WAAW,GAAG,EAAE,GAAG,CACvE,QAAO,GAAG,EAAE,GAAG;AAGjB,QAAO"}
@@ -0,0 +1,24 @@
1
+ const require_blocklet = require('./blocklet.cjs');
2
+ const require_constants = require('./constants.cjs');
3
+ let _aigne_core_utils_fetch = require("@aigne/core/utils/fetch");
4
+ let ufo = require("ufo");
5
+ let zod = require("zod");
6
+
7
+ //#region src/utils/hub.ts
8
+ const modelsSchema = zod.z.array(zod.z.object({
9
+ model: zod.z.string(),
10
+ type: zod.z.string(),
11
+ provider: zod.z.string(),
12
+ input_credits_per_token: zod.z.string(),
13
+ output_credits_per_token: zod.z.string(),
14
+ modelMetadata: zod.z.record(zod.z.unknown()).nullish(),
15
+ providerDisplayName: zod.z.string(),
16
+ status: zod.z.object({ available: zod.z.boolean() }).nullish()
17
+ }));
18
+ async function getModels(options) {
19
+ const json = await (await (0, _aigne_core_utils_fetch.fetch)((0, ufo.withQuery)((0, ufo.joinURL)(await require_blocklet.getAIGNEHubMountPoint(options.baseURL || require_constants.aigneHubBaseUrl(), require_constants.AIGNE_HUB_BLOCKLET_DID), "/api/ai/models"), { type: options.type }))).json();
20
+ return modelsSchema.parse(json);
21
+ }
22
+
23
+ //#endregion
24
+ exports.getModels = getModels;
@@ -0,0 +1,25 @@
1
+ import { getAIGNEHubMountPoint } from "./blocklet.mjs";
2
+ import { AIGNE_HUB_BLOCKLET_DID, aigneHubBaseUrl } from "./constants.mjs";
3
+ import { fetch } from "@aigne/core/utils/fetch";
4
+ import { joinURL, withQuery } from "ufo";
5
+ import { z } from "zod";
6
+
7
+ //#region src/utils/hub.ts
8
+ const modelsSchema = z.array(z.object({
9
+ model: z.string(),
10
+ type: z.string(),
11
+ provider: z.string(),
12
+ input_credits_per_token: z.string(),
13
+ output_credits_per_token: z.string(),
14
+ modelMetadata: z.record(z.unknown()).nullish(),
15
+ providerDisplayName: z.string(),
16
+ status: z.object({ available: z.boolean() }).nullish()
17
+ }));
18
+ async function getModels(options) {
19
+ const json = await (await fetch(withQuery(joinURL(await getAIGNEHubMountPoint(options.baseURL || aigneHubBaseUrl(), AIGNE_HUB_BLOCKLET_DID), "/api/ai/models"), { type: options.type }))).json();
20
+ return modelsSchema.parse(json);
21
+ }
22
+
23
+ //#endregion
24
+ export { getModels };
25
+ //# sourceMappingURL=hub.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hub.mjs","names":[],"sources":["../../src/utils/hub.ts"],"sourcesContent":["import { fetch } from \"@aigne/core/utils/fetch\";\nimport { joinURL, withQuery } from \"ufo\";\nimport { z } from \"zod\";\nimport { getAIGNEHubMountPoint } from \"./blocklet.js\";\nimport { AIGNE_HUB_BLOCKLET_DID, aigneHubBaseUrl } from \"./constants.js\";\n\nexport interface GetModelsOptions {\n baseURL?: string;\n type?: \"image\" | \"chat\" | \"embedding\" | \"video\";\n}\n\nconst modelsSchema = z.array(\n z.object({\n model: z.string(),\n type: z.string(),\n provider: z.string(),\n input_credits_per_token: z.string(),\n output_credits_per_token: z.string(),\n modelMetadata: z.record(z.unknown()).nullish(),\n providerDisplayName: z.string(),\n status: z\n .object({\n available: z.boolean(),\n })\n .nullish(),\n }),\n);\n\nexport async function getModels(options: GetModelsOptions) {\n const url = await getAIGNEHubMountPoint(\n options.baseURL || aigneHubBaseUrl(),\n AIGNE_HUB_BLOCKLET_DID,\n );\n\n const response = await fetch(\n withQuery(joinURL(url, \"/api/ai/models\"), {\n type: options.type,\n }),\n );\n\n const json = await response.json();\n\n return modelsSchema.parse(json);\n}\n"],"mappings":";;;;;;;AAWA,MAAM,eAAe,EAAE,MACrB,EAAE,OAAO;CACP,OAAO,EAAE,QAAQ;CACjB,MAAM,EAAE,QAAQ;CAChB,UAAU,EAAE,QAAQ;CACpB,yBAAyB,EAAE,QAAQ;CACnC,0BAA0B,EAAE,QAAQ;CACpC,eAAe,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,SAAS;CAC9C,qBAAqB,EAAE,QAAQ;CAC/B,QAAQ,EACL,OAAO,EACN,WAAW,EAAE,SAAS,EACvB,CAAC,CACD,SAAS;CACb,CAAC,CACH;AAED,eAAsB,UAAU,SAA2B;CAYzD,MAAM,OAAO,OANI,MAAM,MACrB,UAAU,QANA,MAAM,sBAChB,QAAQ,WAAW,iBAAiB,EACpC,uBACD,EAGwB,iBAAiB,EAAE,EACxC,MAAM,QAAQ,MACf,CAAC,CACH,EAE2B,MAAM;AAElC,QAAO,aAAa,MAAM,KAAK"}