Skip to content

Commit 6d8d406

Browse files
Merge pull request #51 from Gerome-Elassaad/add-open-router
Add open router
2 parents f766dd4 + a8c4cd9 commit 6d8d406

File tree

8 files changed

+3293
-7
lines changed

8 files changed

+3293
-7
lines changed

components/chat-picker.tsx

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -81,10 +81,16 @@ export function ChatPicker({
8181
</SelectTrigger>
8282
<SelectContent>
8383
{Object.entries(
84-
Object.groupBy(models, ({ provider }) => provider),
85-
).map(([provider, models]) => (
86-
<SelectGroup key={provider}>
87-
<SelectLabel>{provider}</SelectLabel>
84+
Object.groupBy(models, (model) =>
85+
model.providerId === 'openrouter'
86+
? 'openrouter'
87+
: model.provider,
88+
),
89+
).map(([groupKey, models]) => (
90+
<SelectGroup key={groupKey}>
91+
<SelectLabel>
92+
{groupKey === 'openrouter' ? 'OpenRouter' : groupKey}
93+
</SelectLabel>
8894
{models?.map((model) => (
8995
<SelectItem key={model.id} value={model.id}>
9096
<div className="flex items-center space-x-2">

lib/auth-provider.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ const AuthContext = createContext<AuthContextType | undefined>(undefined)
1414

1515
export function AuthProvider({ children }: { children: React.ReactNode }) {
1616
const [authView, setAuthView] = useState<any>('sign_in')
17-
const [authDialog, setAuthDialog] = useState(false)
17+
const [authDialog, setAuthDialog] = useState(true)
1818
const { session, loading } = useAuth(setAuthDialog, setAuthView)
1919

2020
return (

lib/models.json

Lines changed: 3240 additions & 0 deletions
Large diffs are not rendered by default.

lib/models.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { createVertex } from '@ai-sdk/google-vertex'
55
import { createMistral } from '@ai-sdk/mistral'
66
import { createOpenAI } from '@ai-sdk/openai'
77
import { createOllama } from 'ollama-ai-provider'
8+
import { createOpenRouter } from '@openrouter/ai-sdk-provider'
89

910
export type LLMModel = {
1011
id: string
@@ -86,6 +87,11 @@ export function getModelClient(model: LLMModel, config: LLMModelConfig) {
8687
apiKey: apiKey || process.env.DEEPSEEK_API_KEY,
8788
baseURL: baseURL || 'https://api.deepseek.com/v1',
8889
})(modelNameString),
90+
openrouter: () =>
91+
createOpenRouter({
92+
apiKey: apiKey || process.env.OPENROUTER_API_KEY,
93+
baseURL: baseURL || 'https://openrouter.ai/api/v1',
94+
})(modelNameString),
8995
}
9096

9197
const createClient =

package.json

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
"@hookform/resolvers": "^5.2.2",
2424
"@monaco-editor/react": "^4.7.0",
2525
"@nanostores/react": "^1.0.0",
26+
"@openrouter/ai-sdk-provider": "^1.2.0",
27+
"@opentelemetry/api": "^1.9.0",
2628
"@posthog/ai": "^6.4.2",
2729
"@radix-ui/react-accordion": "^1.2.12",
2830
"@radix-ui/react-alert-dialog": "^1.1.15",
@@ -100,7 +102,17 @@
100102
"undici": "^6.21.3",
101103
"prismjs": "^1.30.0",
102104
"esbuild": "^0.25.9"
103-
}
105+
},
106+
"onlyBuiltDependencies": [
107+
"@parcel/watcher",
108+
"@swc/core",
109+
"@vercel/speed-insights",
110+
"core-js",
111+
"esbuild",
112+
"protobufjs",
113+
"sharp",
114+
"unrs-resolver"
115+
]
104116
},
105117
"devDependencies": {
106118
"@swc/cli": "^0.7.8",

pnpm-lock.yaml

Lines changed: 18 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pnpm-workspace.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
packages:
22
- '.'
3-
- 'apps/*'
43

54
onlyBuiltDependencies:
65
- '@swc/core'
Lines changed: 5 additions & 0 deletions
Loading

0 commit comments

Comments
 (0)