Skip to content

Commit 797ca19

Browse files
authored
Merge branch 'develop' into feat/entity-rls
2 parents f8dae0d + f24d750 commit 797ca19

File tree

23 files changed

+114
-39
lines changed

23 files changed

+114
-39
lines changed

bun.lock

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
},
2424
"packages/api-client": {
2525
"name": "@elizaos/api-client",
26-
"version": "1.6.5-alpha.6",
26+
"version": "1.6.5-alpha.7",
2727
"dependencies": {
2828
"@elizaos/core": "workspace:*",
2929
},
@@ -36,7 +36,7 @@
3636
},
3737
"packages/app": {
3838
"name": "@elizaos/app",
39-
"version": "1.6.5-alpha.6",
39+
"version": "1.6.5-alpha.7",
4040
"dependencies": {
4141
"@elizaos/api-client": "workspace:*",
4242
"@elizaos/cli": "workspace:*",
@@ -58,7 +58,7 @@
5858
},
5959
"packages/cli": {
6060
"name": "@elizaos/cli",
61-
"version": "1.6.5-alpha.6",
61+
"version": "1.6.5-alpha.7",
6262
"bin": {
6363
"elizaos": "./dist/index.js",
6464
},
@@ -114,7 +114,7 @@
114114
},
115115
"packages/client": {
116116
"name": "@elizaos/client",
117-
"version": "1.6.5-alpha.6",
117+
"version": "1.6.5-alpha.7",
118118
"dependencies": {
119119
"@elizaos/api-client": "workspace:*",
120120
"@elizaos/core": "workspace:*",
@@ -217,15 +217,15 @@
217217
},
218218
"packages/config": {
219219
"name": "@elizaos/config",
220-
"version": "1.6.5-alpha.6",
220+
"version": "1.6.5-alpha.7",
221221
"devDependencies": {
222222
"prettier": "^3.5.3",
223223
"typescript": "^5.8.2",
224224
},
225225
},
226226
"packages/core": {
227227
"name": "@elizaos/core",
228-
"version": "1.6.5-alpha.6",
228+
"version": "1.6.5-alpha.7",
229229
"dependencies": {
230230
"@langchain/core": "^1.0.0",
231231
"@langchain/textsplitters": "^1.0.0",
@@ -249,7 +249,7 @@
249249
},
250250
"packages/elizaos": {
251251
"name": "elizaos",
252-
"version": "1.6.5-alpha.6",
252+
"version": "1.6.5-alpha.7",
253253
"bin": {
254254
"elizaos": "bin/elizaos.js",
255255
},
@@ -259,7 +259,7 @@
259259
},
260260
"packages/plugin-bootstrap": {
261261
"name": "@elizaos/plugin-bootstrap",
262-
"version": "1.6.5-alpha.6",
262+
"version": "1.6.5-alpha.7",
263263
"dependencies": {
264264
"@elizaos/core": "workspace:*",
265265
"@elizaos/plugin-sql": "workspace:*",
@@ -278,7 +278,7 @@
278278
},
279279
"packages/plugin-dummy-services": {
280280
"name": "@elizaos/plugin-dummy-services",
281-
"version": "1.6.5-alpha.6",
281+
"version": "1.6.5-alpha.7",
282282
"dependencies": {
283283
"@elizaos/core": "workspace:*",
284284
"uuid": "^9.0.0",
@@ -293,7 +293,7 @@
293293
},
294294
"packages/plugin-quick-starter": {
295295
"name": "@elizaos/plugin-quick-starter",
296-
"version": "1.6.5-alpha.6",
296+
"version": "1.6.5-alpha.7",
297297
"dependencies": {
298298
"@elizaos/core": "workspace:*",
299299
"zod": "4.1.11",
@@ -307,7 +307,7 @@
307307
},
308308
"packages/plugin-sql": {
309309
"name": "@elizaos/plugin-sql",
310-
"version": "1.6.5-alpha.6",
310+
"version": "1.6.5-alpha.7",
311311
"dependencies": {
312312
"@electric-sql/pglite": "^0.3.3",
313313
"@elizaos/core": "workspace:*",
@@ -329,7 +329,7 @@
329329
},
330330
"packages/plugin-starter": {
331331
"name": "@elizaos/plugin-starter",
332-
"version": "1.6.5-alpha.6",
332+
"version": "1.6.5-alpha.7",
333333
"dependencies": {
334334
"@elizaos/core": "workspace:*",
335335
"@tanstack/react-query": "^5.80.7",
@@ -351,7 +351,7 @@
351351
},
352352
"packages/project-starter": {
353353
"name": "@elizaos/project-starter",
354-
"version": "1.6.5-alpha.6",
354+
"version": "1.6.5-alpha.7",
355355
"dependencies": {
356356
"@elizaos/cli": "workspace:*",
357357
"@elizaos/client": "workspace:*",
@@ -378,7 +378,7 @@
378378
},
379379
"packages/project-tee-starter": {
380380
"name": "@elizaos/project-tee-starter",
381-
"version": "1.6.5-alpha.6",
381+
"version": "1.6.5-alpha.7",
382382
"dependencies": {
383383
"@elizaos/cli": "workspace:*",
384384
"@elizaos/core": "workspace:*",
@@ -410,7 +410,7 @@
410410
},
411411
"packages/server": {
412412
"name": "@elizaos/server",
413-
"version": "1.6.5-alpha.6",
413+
"version": "1.6.5-alpha.7",
414414
"dependencies": {
415415
"@elizaos/core": "workspace:*",
416416
"@elizaos/plugin-sql": "workspace:*",
@@ -442,7 +442,7 @@
442442
},
443443
"packages/service-interfaces": {
444444
"name": "@elizaos/service-interfaces",
445-
"version": "1.6.5-alpha.6",
445+
"version": "1.6.5-alpha.7",
446446
"dependencies": {
447447
"@elizaos/core": "workspace:*",
448448
},
@@ -457,7 +457,7 @@
457457
},
458458
"packages/test-utils": {
459459
"name": "@elizaos/test-utils",
460-
"version": "1.6.5-alpha.6",
460+
"version": "1.6.5-alpha.7",
461461
"dependencies": {
462462
"@elizaos/core": "workspace:*",
463463
"zod": "3.24.2",

lerna.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"version": "1.6.5-alpha.6",
2+
"version": "1.6.5-alpha.7",
33
"packages": [
44
"packages/*"
55
],

packages/api-client/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@elizaos/api-client",
3-
"version": "1.6.5-alpha.6",
3+
"version": "1.6.5-alpha.7",
44
"main": "dist/index.js",
55
"types": "dist/index.d.ts",
66
"module": "dist/index.js",

packages/app/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@elizaos/app",
3-
"version": "1.6.5-alpha.6",
3+
"version": "1.6.5-alpha.7",
44
"type": "module",
55
"scripts": {
66
"start": "tauri dev",

packages/cli/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@elizaos/cli",
3-
"version": "1.6.5-alpha.6",
3+
"version": "1.6.5-alpha.7",
44
"description": "elizaOS CLI - Manage your AI agents and plugins",
55
"publishConfig": {
66
"access": "public",

packages/cli/src/commands/create/actions/setup.ts

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,72 @@ export async function setupEmbeddingModelConfig(
285285
break;
286286
}
287287

288+
case 'openrouter': {
289+
// 'openrouter' for embeddings, configure it with model and dimensions
290+
if (!hasValidApiKey(content, 'OPENROUTER_API_KEY')) {
291+
if (isNonInteractive) {
292+
// In non-interactive mode, add/update placeholder
293+
if (!content.includes('OPENROUTER_API_KEY=')) {
294+
content += '\n# Embedding Model Configuration (Fallback)\n';
295+
content += '# OpenRouter Embeddings Configuration\n';
296+
content += 'OPENROUTER_API_KEY=your_openrouter_api_key_here\n';
297+
content += 'OPENROUTER_EMBEDDING_MODEL=openai/text-embedding-3-small\n';
298+
content += 'OPENROUTER_EMBEDDING_DIMENSIONS=1536\n';
299+
content += '# Get your API key from: https://openrouter.ai/keys\n';
300+
}
301+
await fs.writeFile(envFilePath, content, 'utf8');
302+
} else {
303+
// Interactive mode - prompt for OpenRouter API key
304+
await promptAndStoreOpenRouterKey(envFilePath);
305+
}
306+
} else {
307+
// OpenRouter API key exists, but we need to add embedding model configuration
308+
if (isNonInteractive) {
309+
// Re-read content to get latest state
310+
content = await fs.readFile(envFilePath, 'utf8');
311+
312+
// In non-interactive mode, just add embedding model if not present
313+
// Check for active (non-commented) lines only
314+
const hasActiveEmbeddingModel = /^OPENROUTER_EMBEDDING_MODEL=.+$/m.test(content);
315+
const hasActiveEmbeddingDimensions = /^OPENROUTER_EMBEDDING_DIMENSIONS=.+$/m.test(
316+
content
317+
);
318+
319+
if (!hasActiveEmbeddingModel) {
320+
content += 'OPENROUTER_EMBEDDING_MODEL=openai/text-embedding-3-small\n';
321+
}
322+
if (!hasActiveEmbeddingDimensions) {
323+
content += 'OPENROUTER_EMBEDDING_DIMENSIONS=1536\n';
324+
}
325+
await fs.writeFile(envFilePath, content, 'utf8');
326+
} else {
327+
// Interactive mode - Re-read and add embedding config
328+
content = await fs.readFile(envFilePath, 'utf8');
329+
330+
// Check for active (non-commented) lines only
331+
const hasActiveEmbeddingModel = /^OPENROUTER_EMBEDDING_MODEL=.+$/m.test(content);
332+
const hasActiveEmbeddingDimensions = /^OPENROUTER_EMBEDDING_DIMENSIONS=.+$/m.test(
333+
content
334+
);
335+
336+
if (!hasActiveEmbeddingModel) {
337+
if (content && !content.endsWith('\n')) {
338+
content += '\n';
339+
}
340+
content += 'OPENROUTER_EMBEDDING_MODEL=openai/text-embedding-3-small\n';
341+
}
342+
if (!hasActiveEmbeddingDimensions) {
343+
if (content && !content.endsWith('\n')) {
344+
content += '\n';
345+
}
346+
content += 'OPENROUTER_EMBEDDING_DIMENSIONS=1536\n';
347+
}
348+
await fs.writeFile(envFilePath, content, 'utf8');
349+
}
350+
}
351+
break;
352+
}
353+
288354
default:
289355
console.warn(`Unknown embedding model: ${embeddingModel}, skipping configuration`);
290356
return;

packages/cli/src/commands/create/utils/selection.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ export function getAvailableAIModels(): AIModelOption[] {
4747
* Models with embeddings don't need a separate embedding provider.
4848
*/
4949
export function hasEmbeddingSupport(aiModel: string): boolean {
50-
const modelsWithEmbeddings = ['local', 'openai', 'google'];
50+
const modelsWithEmbeddings = ['local', 'openai', 'google', 'openrouter'];
5151
return modelsWithEmbeddings.includes(aiModel);
5252
}
5353

@@ -137,6 +137,11 @@ export function getAvailableEmbeddingModels(): AIModelOption[] {
137137
value: 'google',
138138
description: 'Google embedding models',
139139
},
140+
{
141+
title: 'OpenRouter',
142+
value: 'openrouter',
143+
description: 'Access multiple embedding models',
144+
},
140145
];
141146
}
142147

packages/cli/src/utils/get-config.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,10 @@ ANTHROPIC_API_KEY=
7676
# OLLAMA_MEDIUM_MODEL=gemma3:latest
7777
# OLLAMA_LARGE_MODEL=gemma3:latest
7878
79+
# OpenRouter Configuration
80+
# OPENROUTER_API_KEY=
81+
# OPENROUTER_EMBEDDING_MODEL=openai/text-embedding-3-small
82+
# OPENROUTER_EMBEDDING_DIMENSIONS=1536
7983
8084
# Highly recommended to use nomic-embed-text for embeddings
8185
# OLLAMA_EMBEDDING_MODEL=nomic-embed-text

packages/cli/tests/unit/utils/selection.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,11 @@ describe('selection utilities', () => {
1717
expect(hasEmbeddingSupport('local')).toBe(true);
1818
expect(hasEmbeddingSupport('openai')).toBe(true);
1919
expect(hasEmbeddingSupport('google')).toBe(true);
20+
expect(hasEmbeddingSupport('openrouter')).toBe(true);
2021
});
2122

2223
it('should return false for models without embedding support', () => {
2324
expect(hasEmbeddingSupport('claude')).toBe(false);
24-
expect(hasEmbeddingSupport('openrouter')).toBe(false);
2525
});
2626

2727
it('should return false for unknown models', () => {
@@ -68,8 +68,8 @@ describe('selection utilities', () => {
6868

6969
describe('AI model selection flow', () => {
7070
it('should identify which models need separate embedding providers', () => {
71-
const modelsNeedingEmbeddings = ['claude', 'openrouter'];
72-
const modelsWithEmbeddings = ['local', 'openai', 'google'];
71+
const modelsNeedingEmbeddings = ['claude'];
72+
const modelsWithEmbeddings = ['local', 'openai', 'google', 'openrouter'];
7373

7474
modelsNeedingEmbeddings.forEach((model) => {
7575
expect(hasEmbeddingSupport(model)).toBe(false);

packages/client/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@elizaos/client",
3-
"version": "1.6.5-alpha.6",
3+
"version": "1.6.5-alpha.7",
44
"description": "Web client interface for ElizaOS agents",
55
"repository": {
66
"type": "git",

0 commit comments

Comments
 (0)