@rudderjs/ai 1.6.3 → 1.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/registry.d.ts +0 -3
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +19 -13
- package/dist/registry.js.map +1 -1
- package/dist/server/provider.d.ts.map +1 -1
- package/dist/server/provider.js +68 -22
- package/dist/server/provider.js.map +1 -1
- package/package.json +5 -5
package/dist/registry.d.ts
CHANGED
|
@@ -17,9 +17,6 @@ import type { AiModelConfig, ProviderFactory, ProviderAdapter, RerankingAdapter,
|
|
|
17
17
|
*/
|
|
18
18
|
export declare function tryWithFailover<T>(primary: string, fallbacks: readonly string[], call: (modelString: string) => Promise<T>): Promise<T>;
|
|
19
19
|
export declare class AiRegistry {
|
|
20
|
-
private static readonly factories;
|
|
21
|
-
private static _default;
|
|
22
|
-
private static _models;
|
|
23
20
|
/** Register a provider factory */
|
|
24
21
|
static register(factory: ProviderFactory): void;
|
|
25
22
|
/** Get a registered provider factory by name */
|
package/dist/registry.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,eAAe,EAAE,gBAAgB,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAEpI;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,eAAe,CAAC,CAAC,EACrC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,IAAI,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GACxC,OAAO,CAAC,CAAC,CAAC,CAaZ;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,eAAe,EAAE,gBAAgB,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAEpI;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,eAAe,CAAC,CAAC,EACrC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,IAAI,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GACxC,OAAO,CAAC,CAAC,CAAC,CAaZ;AAiCD,qBAAa,UAAU;IACrB,kCAAkC;IAClC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAI/C,gDAAgD;IAChD,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe;IAMhD,4CAA4C;IAC5C,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAI5C,4CAA4C;IAC5C,MAAM,CAAC,UAAU,IAAI,MAAM;IAK3B,iEAAiE;IACjE,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAM9D,2DAA2D;IAC3D,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe;IAMpD,4DAA4D;IAC5D,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,gBAAgB;IAY9D,iDAAiD;IACjD,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,WAAW;IAWtD,+DAA+D;IAC/D,MAAM,CAAC,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,kBAAkB;IAYpE,8CAA8C;IAC9C,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI;IAI/C,2BAA2B;IAC3B,MAAM,CAAC,SAAS,IAAI,aAAa,EAAE;IAInC,oCAAoC;IACpC,MAAM,CAAC,KAAK,IAAI,IAAI;CAKrB"}
|
package/dist/registry.js
CHANGED
|
@@ -29,30 +29,36 @@ export async function tryWithFailover(primary, fallbacks, call) {
|
|
|
29
29
|
}
|
|
30
30
|
throw lastError ?? new Error('[RudderJS AI] No provider available for failover.');
|
|
31
31
|
}
|
|
32
|
+
const _g = globalThis;
|
|
33
|
+
if (!_g['__rudderjs_ai_registry__']) {
|
|
34
|
+
_g['__rudderjs_ai_registry__'] = {
|
|
35
|
+
factories: new Map(),
|
|
36
|
+
default: null,
|
|
37
|
+
models: [],
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
const _store = _g['__rudderjs_ai_registry__'];
|
|
32
41
|
export class AiRegistry {
|
|
33
|
-
static factories = new Map();
|
|
34
|
-
static _default = null;
|
|
35
|
-
static _models = [];
|
|
36
42
|
/** Register a provider factory */
|
|
37
43
|
static register(factory) {
|
|
38
|
-
|
|
44
|
+
_store.factories.set(factory.name, factory);
|
|
39
45
|
}
|
|
40
46
|
/** Get a registered provider factory by name */
|
|
41
47
|
static getFactory(name) {
|
|
42
|
-
const f =
|
|
48
|
+
const f = _store.factories.get(name);
|
|
43
49
|
if (!f)
|
|
44
50
|
throw new Error(`[RudderJS AI] Unknown AI provider "${name}". Register it first.`);
|
|
45
51
|
return f;
|
|
46
52
|
}
|
|
47
53
|
/** Set the default provider/model string */
|
|
48
54
|
static setDefault(modelString) {
|
|
49
|
-
|
|
55
|
+
_store.default = modelString;
|
|
50
56
|
}
|
|
51
57
|
/** Get the default provider/model string */
|
|
52
58
|
static getDefault() {
|
|
53
|
-
if (!
|
|
59
|
+
if (!_store.default)
|
|
54
60
|
throw new Error('[RudderJS AI] No default model set. Add ai() to providers with a config.');
|
|
55
|
-
return
|
|
61
|
+
return _store.default;
|
|
56
62
|
}
|
|
57
63
|
/** Parse 'provider/model' string into [providerName, modelId] */
|
|
58
64
|
static parseModelString(modelString) {
|
|
@@ -98,17 +104,17 @@ export class AiRegistry {
|
|
|
98
104
|
}
|
|
99
105
|
/** Set available models for user selection */
|
|
100
106
|
static setModels(models) {
|
|
101
|
-
|
|
107
|
+
_store.models = models;
|
|
102
108
|
}
|
|
103
109
|
/** Get available models */
|
|
104
110
|
static getModels() {
|
|
105
|
-
return
|
|
111
|
+
return _store.models;
|
|
106
112
|
}
|
|
107
113
|
/** @internal — reset for testing */
|
|
108
114
|
static reset() {
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
115
|
+
_store.factories.clear();
|
|
116
|
+
_store.default = null;
|
|
117
|
+
_store.models = [];
|
|
112
118
|
}
|
|
113
119
|
}
|
|
114
120
|
//# sourceMappingURL=registry.js.map
|
package/dist/registry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAAe,EACf,SAA4B,EAC5B,IAAyC;IAEzC,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC;QACrC,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;IACb,IAAI,SAA4B,CAAA;IAChC,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,CAAC,CAAC,CAAA;QACtB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,SAAS,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;QACjE,CAAC;IACH,CAAC;IACD,MAAM,SAAS,IAAI,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAA;AACnF,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/server/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAU,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/server/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAU,MAAM,gBAAgB,CAAA;AAmHxD;;;;;;;GAOG;AACH,qBAAa,UAAW,SAAQ,eAAe;IAC7C,QAAQ,IAAI,IAAI;IAEV,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA+C3B;;;;;;OAMG;IACH,OAAO,CAAC,wBAAwB;CAOjC"}
|
package/dist/server/provider.js
CHANGED
|
@@ -3,65 +3,95 @@ import { AiRegistry } from '../registry.js';
|
|
|
3
3
|
import { setConversationStore, setUserMemory } from '../agent.js';
|
|
4
4
|
import { GoogleCacheRegistry } from '../providers/google-cache-registry.js';
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* undefined (some drivers — ollama, bedrock —
|
|
9
|
-
*
|
|
6
|
+
* Return the configured `apiKey`, or `null` when missing/empty.
|
|
7
|
+
*
|
|
8
|
+
* The config type lets `apiKey` be undefined (some drivers — ollama, bedrock —
|
|
9
|
+
* don't need one), so apiKey-requiring drivers use this gate. When the gate
|
|
10
|
+
* returns `null` the driver factory bails to `null` and `AiProvider.boot()`
|
|
11
|
+
* skips the provider with a warning instead of crashing — matches Laravel's
|
|
12
|
+
* "drivers as data, missing credentials don't kill the framework" pattern.
|
|
13
|
+
*
|
|
14
|
+
* Use-site (`AI.use('anthropic')`) will surface the standard
|
|
15
|
+
* "provider not registered" error so debugging stays actionable.
|
|
10
16
|
*/
|
|
11
|
-
function requireKey(
|
|
12
|
-
|
|
13
|
-
throw new Error(`[RudderJS AI] config('ai').providers.${name} is missing apiKey (driver "${cfg.driver ?? name}").`);
|
|
14
|
-
}
|
|
15
|
-
return cfg.apiKey;
|
|
17
|
+
function requireKey(_name, cfg) {
|
|
18
|
+
return cfg.apiKey || null;
|
|
16
19
|
}
|
|
17
20
|
const DRIVERS = {
|
|
18
21
|
anthropic: async (name, cfg) => {
|
|
22
|
+
const apiKey = requireKey(name, cfg);
|
|
23
|
+
if (apiKey === null)
|
|
24
|
+
return null;
|
|
19
25
|
const { AnthropicProvider } = await import('../providers/anthropic.js');
|
|
20
|
-
return new AnthropicProvider({ apiKey
|
|
26
|
+
return new AnthropicProvider({ apiKey, baseUrl: cfg.baseUrl });
|
|
21
27
|
},
|
|
22
28
|
openai: async (name, cfg) => {
|
|
29
|
+
const apiKey = requireKey(name, cfg);
|
|
30
|
+
if (apiKey === null)
|
|
31
|
+
return null;
|
|
23
32
|
const { OpenAIProvider } = await import('../providers/openai.js');
|
|
24
33
|
return new OpenAIProvider({
|
|
25
|
-
apiKey
|
|
34
|
+
apiKey,
|
|
26
35
|
baseUrl: cfg.baseUrl,
|
|
27
36
|
organization: cfg['organization'],
|
|
28
37
|
});
|
|
29
38
|
},
|
|
30
39
|
google: async (name, cfg, { googleCacheRegistry }) => {
|
|
40
|
+
const apiKey = requireKey(name, cfg);
|
|
41
|
+
if (apiKey === null)
|
|
42
|
+
return null;
|
|
31
43
|
const { GoogleProvider } = await import('../providers/google.js');
|
|
32
|
-
return new GoogleProvider({ apiKey
|
|
44
|
+
return new GoogleProvider({ apiKey }, googleCacheRegistry);
|
|
33
45
|
},
|
|
34
46
|
ollama: async (_name, cfg) => {
|
|
35
47
|
const { OllamaProvider } = await import('../providers/ollama.js');
|
|
36
48
|
return new OllamaProvider({ baseUrl: cfg.baseUrl });
|
|
37
49
|
},
|
|
38
50
|
deepseek: async (name, cfg) => {
|
|
51
|
+
const apiKey = requireKey(name, cfg);
|
|
52
|
+
if (apiKey === null)
|
|
53
|
+
return null;
|
|
39
54
|
const { DeepSeekProvider } = await import('../providers/deepseek.js');
|
|
40
|
-
return new DeepSeekProvider({ apiKey
|
|
55
|
+
return new DeepSeekProvider({ apiKey, baseUrl: cfg.baseUrl });
|
|
41
56
|
},
|
|
42
57
|
xai: async (name, cfg) => {
|
|
58
|
+
const apiKey = requireKey(name, cfg);
|
|
59
|
+
if (apiKey === null)
|
|
60
|
+
return null;
|
|
43
61
|
const { XaiProvider } = await import('../providers/xai.js');
|
|
44
|
-
return new XaiProvider({ apiKey
|
|
62
|
+
return new XaiProvider({ apiKey, baseUrl: cfg.baseUrl });
|
|
45
63
|
},
|
|
46
64
|
groq: async (name, cfg) => {
|
|
65
|
+
const apiKey = requireKey(name, cfg);
|
|
66
|
+
if (apiKey === null)
|
|
67
|
+
return null;
|
|
47
68
|
const { GroqProvider } = await import('../providers/groq.js');
|
|
48
|
-
return new GroqProvider({ apiKey
|
|
69
|
+
return new GroqProvider({ apiKey, baseUrl: cfg.baseUrl });
|
|
49
70
|
},
|
|
50
71
|
mistral: async (name, cfg) => {
|
|
72
|
+
const apiKey = requireKey(name, cfg);
|
|
73
|
+
if (apiKey === null)
|
|
74
|
+
return null;
|
|
51
75
|
const { MistralProvider } = await import('../providers/mistral.js');
|
|
52
|
-
return new MistralProvider({ apiKey
|
|
76
|
+
return new MistralProvider({ apiKey, baseUrl: cfg.baseUrl });
|
|
53
77
|
},
|
|
54
78
|
azure: async (name, cfg) => {
|
|
55
|
-
const
|
|
79
|
+
const apiKey = requireKey(name, cfg);
|
|
80
|
+
if (apiKey === null)
|
|
81
|
+
return null;
|
|
56
82
|
if (!cfg.baseUrl) {
|
|
57
83
|
throw new Error(`[RudderJS AI] config('ai').providers.${name} is missing baseUrl (driver "azure" requires it).`);
|
|
58
84
|
}
|
|
59
|
-
|
|
85
|
+
const { AzureOpenAIProvider } = await import('../providers/azure.js');
|
|
86
|
+
return new AzureOpenAIProvider({ apiKey, baseUrl: cfg.baseUrl });
|
|
60
87
|
},
|
|
61
88
|
openrouter: async (name, cfg) => {
|
|
89
|
+
const apiKey = requireKey(name, cfg);
|
|
90
|
+
if (apiKey === null)
|
|
91
|
+
return null;
|
|
62
92
|
const { OpenRouterProvider } = await import('../providers/openrouter.js');
|
|
63
93
|
return new OpenRouterProvider({
|
|
64
|
-
apiKey
|
|
94
|
+
apiKey,
|
|
65
95
|
baseUrl: cfg.baseUrl,
|
|
66
96
|
siteUrl: cfg['siteUrl'],
|
|
67
97
|
siteName: cfg['siteName'],
|
|
@@ -74,17 +104,23 @@ const DRIVERS = {
|
|
|
74
104
|
return new BedrockProvider(credentials ? { region, credentials } : { region });
|
|
75
105
|
},
|
|
76
106
|
elevenlabs: async (name, cfg) => {
|
|
107
|
+
const apiKey = requireKey(name, cfg);
|
|
108
|
+
if (apiKey === null)
|
|
109
|
+
return null;
|
|
77
110
|
const { ElevenLabsProvider } = await import('../providers/elevenlabs.js');
|
|
78
111
|
return new ElevenLabsProvider({
|
|
79
|
-
apiKey
|
|
112
|
+
apiKey,
|
|
80
113
|
...(cfg.baseUrl ? { baseUrl: cfg.baseUrl } : {}),
|
|
81
114
|
...(cfg['defaultTtsModelId'] ? { defaultTtsModelId: cfg['defaultTtsModelId'] } : {}),
|
|
82
115
|
});
|
|
83
116
|
},
|
|
84
117
|
voyage: async (name, cfg) => {
|
|
118
|
+
const apiKey = requireKey(name, cfg);
|
|
119
|
+
if (apiKey === null)
|
|
120
|
+
return null;
|
|
85
121
|
const { VoyageProvider } = await import('../providers/voyage.js');
|
|
86
122
|
return new VoyageProvider({
|
|
87
|
-
apiKey
|
|
123
|
+
apiKey,
|
|
88
124
|
...(cfg.baseUrl ? { baseUrl: cfg.baseUrl } : {}),
|
|
89
125
|
...(cfg['defaultInputType'] ? { defaultInputType: cfg['defaultInputType'] } : {}),
|
|
90
126
|
});
|
|
@@ -108,7 +144,17 @@ export class AiProvider extends ServiceProvider {
|
|
|
108
144
|
const build = DRIVERS[driver];
|
|
109
145
|
if (!build)
|
|
110
146
|
continue;
|
|
111
|
-
|
|
147
|
+
const instance = await build(name, providerConfig, { googleCacheRegistry });
|
|
148
|
+
if (instance === null) {
|
|
149
|
+
// Drivers that need an apiKey return null when it's missing/empty
|
|
150
|
+
// (see requireKey). Skip with a one-line warning so the app boots
|
|
151
|
+
// and `AI.use('${name}')` surfaces the standard "not registered"
|
|
152
|
+
// error at the use-site with a clear hint to set the env var.
|
|
153
|
+
console.warn(`[RudderJS AI] Skipped provider "${name}" (driver "${driver}"): apiKey is empty. ` +
|
|
154
|
+
`Set config('ai').providers.${name}.apiKey (typically via an env var) to enable.`);
|
|
155
|
+
continue;
|
|
156
|
+
}
|
|
157
|
+
AiRegistry.register(instance);
|
|
112
158
|
}
|
|
113
159
|
AiRegistry.setDefault(cfg.default);
|
|
114
160
|
AiRegistry.setModels(cfg.models ?? []);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/server/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AACjE,OAAO,EAAE,mBAAmB,EAAuB,MAAM,uCAAuC,CAAA;AAGhG
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/server/provider.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rudderjs/ai",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.7.1",
|
|
4
4
|
"description": "AI engine — providers, agents, tools, streaming, middleware",
|
|
5
5
|
"rudderjs": {
|
|
6
6
|
"provider": "AiProvider",
|
|
@@ -78,8 +78,8 @@
|
|
|
78
78
|
},
|
|
79
79
|
"peerDependencies": {
|
|
80
80
|
"@modelcontextprotocol/sdk": "^1.13.0",
|
|
81
|
-
"@rudderjs/core": "^1.1.
|
|
82
|
-
"@rudderjs/orm": "^1.9.
|
|
81
|
+
"@rudderjs/core": "^1.1.6",
|
|
82
|
+
"@rudderjs/orm": "^1.9.3"
|
|
83
83
|
},
|
|
84
84
|
"peerDependenciesMeta": {
|
|
85
85
|
"@rudderjs/core": {
|
|
@@ -103,9 +103,9 @@
|
|
|
103
103
|
"@modelcontextprotocol/sdk": "^1.13.0",
|
|
104
104
|
"@types/node": "^20.0.0",
|
|
105
105
|
"typescript": "^5.4.0",
|
|
106
|
-
"@rudderjs/core": "^1.1.
|
|
106
|
+
"@rudderjs/core": "^1.1.6",
|
|
107
107
|
"@rudderjs/console": "^1.0.2",
|
|
108
|
-
"@rudderjs/orm": "^1.9.
|
|
108
|
+
"@rudderjs/orm": "^1.9.3"
|
|
109
109
|
},
|
|
110
110
|
"author": "Suleiman Shahbari",
|
|
111
111
|
"scripts": {
|