Skip to content

Commit a99b4b0

Browse files
committed
add byok announcement in wave ai panel
1 parent 76131c7 commit a99b4b0

2 files changed

Lines changed: 50 additions & 1 deletion

File tree

frontend/app/aipanel/aipanel.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import { AIPanelHeader } from "./aipanelheader";
2121
import { AIPanelInput } from "./aipanelinput";
2222
import { AIPanelMessages } from "./aipanelmessages";
2323
import { AIRateLimitStrip } from "./airatelimitstrip";
24+
import { BYOKAnnouncement } from "./byokannouncement";
2425
import { TelemetryRequiredMessage } from "./telemetryrequired";
2526
import { WaveAIModel } from "./waveai-model";
2627

@@ -85,7 +86,7 @@ const AIWelcomeMessage = memo(() => {
8586
return (
8687
<div className="text-secondary py-8">
8788
<div className="text-center">
88-
<i className="fa fa-sparkles text-4xl text-accent mb-4 block"></i>
89+
<i className="fa fa-sparkles text-4xl text-accent mb-2 block"></i>
8990
<p className="text-lg font-bold text-primary">Welcome to Wave AI</p>
9091
</div>
9192
<div className="mt-4 text-left max-w-md mx-auto">
@@ -154,6 +155,7 @@ const AIWelcomeMessage = memo(() => {
154155
</div>
155156
</div>
156157
</div>
158+
<BYOKAnnouncement />
157159
<div className="mt-4 text-center text-[12px] text-muted">
158160
BETA: Free to use. Daily limits keep our costs in check.
159161
</div>
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
// Copyright 2025, Command Line Inc.
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
import { WaveAIModel } from "./waveai-model";
5+
6+
const BYOKAnnouncement = () => {
7+
const model = WaveAIModel.getInstance();
8+
9+
const handleOpenConfig = async () => {
10+
await model.openWaveAIConfig();
11+
};
12+
13+
return (
14+
<div className="bg-blue-900/20 border border-blue-500 rounded-lg p-4 mt-4">
15+
<div className="flex items-start gap-3">
16+
<i className="fa fa-key text-blue-400 text-lg mt-0.5"></i>
17+
<div className="text-left flex-1">
18+
<div className="text-blue-400 font-medium mb-1">New: BYOK & Local AI Support</div>
19+
<div className="text-secondary text-sm mb-3">
20+
Wave AI now supports bring-your-own-key (BYOK) with OpenAI, Google Gemini, Azure, and
21+
OpenRouter, plus local models via Ollama, LM Studio, and other OpenAI-compatible providers.
22+
</div>
23+
<div className="flex items-center gap-3">
24+
<button
25+
onClick={handleOpenConfig}
26+
className="bg-blue-500/80 hover:bg-blue-500 text-secondary hover:text-primary px-3 py-1.5 rounded-md text-sm font-medium cursor-pointer transition-colors"
27+
>
28+
Configure AI Modes
29+
</button>
30+
<a
31+
href="https://docs.waveterm.dev/waveai-modes"
32+
target="_blank"
33+
rel="noopener noreferrer"
34+
className="text-secondary hover:text-primary text-sm cursor-pointer transition-colors flex items-center gap-1"
35+
>
36+
View Docs <i className="fa fa-external-link text-xs"></i>
37+
</a>
38+
</div>
39+
</div>
40+
</div>
41+
</div>
42+
);
43+
};
44+
45+
BYOKAnnouncement.displayName = "BYOKAnnouncement";
46+
47+
export { BYOKAnnouncement };

0 commit comments

Comments
 (0)