@schlessera/brain-ui-react 0.25.0 → 0.26.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"models-tab.d.ts","sourceRoot":"","sources":["../../../src/components/settings/models-tab.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,iBAAiB,EAEtB,KAAK,aAAa,EACnB,MAAM,mCAAmC,CAAC;AAM3C;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,+BAwPxD;AA6HD;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI;IAAE,KAAK,EAAE,MAAM,MAAM,OAAO,CAAA;CAAE,CAQlE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,iBAAiB,EAAE,EAC3B,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,WAAW,GAAG,MAAM,GACzB,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAO7B;AAMD;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,iBAAiB,EAAE,EAC3B,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,aAAa,GAAG,MAAM,GAC3B,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAQ/B"}
1
+ {"version":3,"file":"models-tab.d.ts","sourceRoot":"","sources":["../../../src/components/settings/models-tab.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,iBAAiB,EAEtB,KAAK,aAAa,EACnB,MAAM,mCAAmC,CAAC;AAO3C;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,+BA0PxD;AA6HD;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI;IAAE,KAAK,EAAE,MAAM,MAAM,OAAO,CAAA;CAAE,CAQlE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,iBAAiB,EAAE,EAC3B,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,WAAW,GAAG,MAAM,GACzB,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAO7B;AAMD;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,iBAAiB,EAAE,EAC3B,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,aAAa,GAAG,MAAM,GAC3B,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAQ/B"}
@@ -6,6 +6,7 @@ import { api } from "../../lib/api-client.js";
6
6
  import { useProviderStore } from "../../stores/provider-store.js";
7
7
  import { cn } from "../../lib/utils.js";
8
8
  import { PiAccountsSection } from "./pi-accounts.js";
9
+ import { WebSearchSection } from "./web-search-settings.js";
9
10
  /**
10
11
  * The model picker's contents, and which of them to show.
11
12
  *
@@ -160,7 +161,7 @@ export function ModelsTab({ active }) {
160
161
  }
161
162
  }
162
163
  const visibleCount = catalog?.models.filter((m) => !m.hidden).length ?? 0;
163
- return (_jsxs("div", { className: "flex h-full flex-col", children: [_jsxs("div", { className: "flex-1 overflow-y-auto p-4", children: [_jsx("h3", { className: "text-xs font-medium uppercase tracking-wide text-muted-foreground", children: "Models" }), _jsx("p", { className: "mt-1 text-xs text-muted-foreground", children: "The list is read from the provider and refreshes on its own. Hide the ones you never pick \u2014 running sessions are unaffected." }), catalog && (_jsx(DefaultModelSelect, { catalog: catalog, onChange: changeDefault })), loading ? (_jsx("div", { className: "mt-6 flex justify-center", children: _jsx(Loader2, { className: "h-5 w-5 animate-spin text-muted-foreground" }) })) : (_jsxs("ul", { className: "mt-4 flex flex-col gap-2", children: [catalog?.models.map((entry) => (_jsx(ModelRow, { entry: entry, onToggle: () => toggleHidden(entry), onBilling: (next) => changeBilling(entry, next), onThinking: (next) => changeThinking(entry, next) }, entry.id))), catalog?.models.length === 0 && (_jsx("li", { className: "rounded-lg border border-dashed border-border-subtle p-4 text-center text-xs text-muted-foreground", children: "No models available." }))] })), error && (_jsx("p", { role: "alert", className: "mt-3 text-xs text-destructive", children: error })), catalog?.discovery.error && (_jsxs("p", { className: "mt-3 text-xs text-muted-foreground", children: ["Last refresh failed (", catalog.discovery.error, "). Showing the last known list."] })), catalog && !catalog.discovery.enabled && (_jsx("p", { className: "mt-3 text-xs text-muted-foreground", children: "Discovery is disabled (BRAIN_UI_MODEL_DISCOVERY). Only configured profiles are listed." })), catalog && (_jsx(OpenRouterSection, { models: catalog.customModels ?? [], onChange: setCustom })), _jsx(PiAccountsSection, { active: active })] }), _jsxs("div", { className: "flex items-center justify-between gap-3 border-t border-border p-4", children: [_jsxs("span", { className: "text-[11px] text-muted-foreground", children: [visibleCount, " in picker \u00B7 ", formatRefreshed(catalog?.refreshedAt ?? null)] }), _jsxs("button", { onClick: onRefresh, disabled: refreshing, className: "flex items-center gap-2 rounded-lg border border-border-subtle bg-surface px-3 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary disabled:opacity-50", children: [_jsx(RefreshCw, { className: cn("h-3.5 w-3.5", refreshing && "animate-spin") }), "Refresh"] })] })] }));
164
+ return (_jsxs("div", { className: "flex h-full flex-col", children: [_jsxs("div", { className: "flex-1 overflow-y-auto p-4", children: [_jsx("h3", { className: "text-xs font-medium uppercase tracking-wide text-muted-foreground", children: "Models" }), _jsx("p", { className: "mt-1 text-xs text-muted-foreground", children: "The list is read from the provider and refreshes on its own. Hide the ones you never pick \u2014 running sessions are unaffected." }), catalog && (_jsx(DefaultModelSelect, { catalog: catalog, onChange: changeDefault })), loading ? (_jsx("div", { className: "mt-6 flex justify-center", children: _jsx(Loader2, { className: "h-5 w-5 animate-spin text-muted-foreground" }) })) : (_jsxs("ul", { className: "mt-4 flex flex-col gap-2", children: [catalog?.models.map((entry) => (_jsx(ModelRow, { entry: entry, onToggle: () => toggleHidden(entry), onBilling: (next) => changeBilling(entry, next), onThinking: (next) => changeThinking(entry, next) }, entry.id))), catalog?.models.length === 0 && (_jsx("li", { className: "rounded-lg border border-dashed border-border-subtle p-4 text-center text-xs text-muted-foreground", children: "No models available." }))] })), error && (_jsx("p", { role: "alert", className: "mt-3 text-xs text-destructive", children: error })), catalog?.discovery.error && (_jsxs("p", { className: "mt-3 text-xs text-muted-foreground", children: ["Last refresh failed (", catalog.discovery.error, "). Showing the last known list."] })), catalog && !catalog.discovery.enabled && (_jsx("p", { className: "mt-3 text-xs text-muted-foreground", children: "Discovery is disabled (BRAIN_UI_MODEL_DISCOVERY). Only configured profiles are listed." })), catalog && (_jsx(OpenRouterSection, { models: catalog.customModels ?? [], onChange: setCustom })), _jsx(PiAccountsSection, { active: active }), _jsx(WebSearchSection, { active: active })] }), _jsxs("div", { className: "flex items-center justify-between gap-3 border-t border-border p-4", children: [_jsxs("span", { className: "text-[11px] text-muted-foreground", children: [visibleCount, " in picker \u00B7 ", formatRefreshed(catalog?.refreshedAt ?? null)] }), _jsxs("button", { onClick: onRefresh, disabled: refreshing, className: "flex items-center gap-2 rounded-lg border border-border-subtle bg-surface px-3 py-2 text-xs font-medium text-foreground transition-colors hover:border-primary hover:text-primary disabled:opacity-50", children: [_jsx(RefreshCw, { className: cn("h-3.5 w-3.5", refreshing && "animate-spin") }), "Refresh"] })] })] }));
164
165
  }
165
166
  /**
166
167
  * The default-model choice: which profile answers when a turn names none —
@@ -1 +1 @@
1
- {"version":3,"file":"models-tab.js","sourceRoot":"","sources":["../../../src/components/settings/models-tab.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"models-tab.js","sourceRoot":"","sources":["../../../src/components/settings/models-tab.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Web-search provider settings for the pi backend's web extension
3
+ * (pi-web-access). The default needs nothing: "Auto" starts with Exa's free
4
+ * keyless tier. This card lets the user pick an explicit provider and store
5
+ * its API key server-side — most usefully an Exa key, which lifts the free
6
+ * tier's rate limit.
7
+ *
8
+ * Key values never come back from the server; the UI only ever learns
9
+ * "a key is stored". Renders nothing when the server reports pi as not
10
+ * configured, so the Models tab is unchanged for Claude-only deployments.
11
+ */
12
+ export declare function WebSearchSection({ active }: {
13
+ active: boolean;
14
+ }): import("react").JSX.Element | null;
15
+ //# sourceMappingURL=web-search-settings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-search-settings.d.ts","sourceRoot":"","sources":["../../../src/components/settings/web-search-settings.tsx"],"names":[],"mappings":"AAKA;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,sCAkH/D"}
@@ -0,0 +1,81 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useState } from "react";
3
+ import { Check, Loader2, X } from "lucide-react";
4
+ import { api } from "../../lib/api-client.js";
5
+ import { cn } from "../../lib/utils.js";
6
+ /**
7
+ * Web-search provider settings for the pi backend's web extension
8
+ * (pi-web-access). The default needs nothing: "Auto" starts with Exa's free
9
+ * keyless tier. This card lets the user pick an explicit provider and store
10
+ * its API key server-side — most usefully an Exa key, which lifts the free
11
+ * tier's rate limit.
12
+ *
13
+ * Key values never come back from the server; the UI only ever learns
14
+ * "a key is stored". Renders nothing when the server reports pi as not
15
+ * configured, so the Models tab is unchanged for Claude-only deployments.
16
+ */
17
+ export function WebSearchSection({ active }) {
18
+ const [config, setConfig] = useState(null);
19
+ const [error, setError] = useState(null);
20
+ const [busy, setBusy] = useState(false);
21
+ const [keyDraft, setKeyDraft] = useState("");
22
+ const [savedFlash, setSavedFlash] = useState(false);
23
+ async function reload() {
24
+ try {
25
+ const next = await api.webSearchConfig();
26
+ setConfig(next);
27
+ setError(null);
28
+ }
29
+ catch (err) {
30
+ setError(err instanceof Error ? err.message : "Could not load web-search settings");
31
+ }
32
+ }
33
+ useEffect(() => {
34
+ if (active)
35
+ void reload();
36
+ }, [active]);
37
+ async function update(change) {
38
+ setBusy(true);
39
+ setError(null);
40
+ try {
41
+ const next = await api.webSearchUpdate(change);
42
+ setConfig(next);
43
+ if (change.apiKeys) {
44
+ setKeyDraft("");
45
+ setSavedFlash(true);
46
+ setTimeout(() => setSavedFlash(false), 2000);
47
+ }
48
+ }
49
+ catch (err) {
50
+ setError(err instanceof Error ? err.message : "Could not save web-search settings");
51
+ }
52
+ finally {
53
+ setBusy(false);
54
+ }
55
+ }
56
+ if (!config || !config.configured)
57
+ return null;
58
+ const selected = config.providers.find((p) => p.id === config.provider);
59
+ const keyProvider = selected?.hasKeyField ? selected : null;
60
+ return (_jsxs("div", { className: "mt-6", children: [_jsx("h3", { className: "text-xs font-medium uppercase tracking-wide text-muted-foreground", children: "Web search" }), _jsx("p", { className: "mt-1 text-xs text-muted-foreground", children: "Searches run on Exa's free tier by default \u2014 no key, rate-limited. Add an Exa API key to lift the limit, or pick a different provider. Changes apply to new conversations." }), _jsxs("div", { className: "mt-4 rounded-lg border border-border-subtle bg-surface p-3", children: [_jsx("label", { className: "block text-[11px] font-medium text-muted-foreground", children: "Provider" }), _jsx("select", { value: config.provider, disabled: busy, onChange: (e) => {
61
+ setKeyDraft("");
62
+ void update({ provider: e.target.value });
63
+ }, className: "mt-1 w-full rounded-md border border-border-subtle bg-background px-2 py-1.5 text-sm text-foreground focus:border-primary focus:outline-none disabled:opacity-50", children: config.providers.map((p) => (_jsxs("option", { value: p.id, children: [p.label, p.keyConfigured ? " · key stored" : ""] }, p.id))) }), config.provider === "auto" && (_jsx(ExaKeyHint, { config: config })), keyProvider && (_jsxs("div", { className: "mt-3", children: [_jsxs("label", { className: "block text-[11px] font-medium text-muted-foreground", children: [keyProvider.label, " API key", keyProvider.keyConfigured && (_jsxs("span", { className: "ml-2 inline-flex items-center gap-1 text-primary", children: [_jsx(Check, { className: "h-3 w-3" }), " stored"] })), keyProvider.id === "exa" && !keyProvider.keyConfigured && (_jsx("span", { className: "ml-2 text-muted-foreground", children: "optional \u2014 free tier works without one" }))] }), _jsx(KeyEditor, { busy: busy, draft: keyDraft, setDraft: setKeyDraft, keyConfigured: keyProvider.keyConfigured, savedFlash: savedFlash, onSave: () => void update({ apiKeys: { [keyProvider.id]: keyDraft } }), onClear: () => void update({ apiKeys: { [keyProvider.id]: null } }) })] })), error && _jsx("p", { className: "mt-2 text-xs text-destructive", children: error })] })] }));
64
+ }
65
+ /**
66
+ * In Auto mode the Exa key still matters (Auto's first stop is Exa) — offer
67
+ * the same editor without forcing a provider switch.
68
+ */
69
+ function ExaKeyHint({ config }) {
70
+ const exa = config.providers.find((p) => p.id === "exa");
71
+ if (!exa?.keyConfigured)
72
+ return null;
73
+ return (_jsxs("p", { className: "mt-2 flex items-center gap-1 text-[11px] text-muted-foreground", children: [_jsx(Check, { className: "h-3 w-3 text-primary" }), "An Exa key is stored \u2014 Auto's Exa searches run unthrottled."] }));
74
+ }
75
+ function KeyEditor({ busy, draft, setDraft, keyConfigured, savedFlash, onSave, onClear, }) {
76
+ return (_jsxs("div", { className: "mt-1 flex items-center gap-2", children: [_jsx("input", { type: "password", value: draft, disabled: busy, placeholder: keyConfigured ? "•••••••• (stored — enter to replace)" : "Paste API key", onChange: (e) => setDraft(e.target.value), onKeyDown: (e) => {
77
+ if (e.key === "Enter" && draft.trim())
78
+ onSave();
79
+ }, autoComplete: "off", className: "min-w-0 flex-1 rounded-md border border-border-subtle bg-background px-2 py-1.5 text-sm text-foreground placeholder:text-muted-foreground focus:border-primary focus:outline-none disabled:opacity-50" }), _jsxs("button", { onClick: onSave, disabled: busy || !draft.trim(), className: cn("flex items-center gap-1 rounded-md border border-border-subtle px-2.5 py-1.5 text-xs font-medium transition-colors", "text-foreground hover:border-primary hover:text-primary disabled:opacity-50"), children: [busy ? _jsx(Loader2, { className: "h-3 w-3 animate-spin" }) : savedFlash ? _jsx(Check, { className: "h-3 w-3" }) : null, "Save"] }), keyConfigured && (_jsxs("button", { onClick: onClear, disabled: busy, title: "Remove the stored key", className: "flex items-center gap-1 rounded-md border border-border-subtle px-2.5 py-1.5 text-xs font-medium text-muted-foreground transition-colors hover:border-destructive hover:text-destructive disabled:opacity-50", children: [_jsx(X, { className: "h-3 w-3" }), "Clear"] }))] }));
80
+ }
81
+ //# sourceMappingURL=web-search-settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-search-settings.js","sourceRoot":"","sources":["../../../src/components/settings/web-search-settings.tsx"],"names":[],"mappings":"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"}
@@ -66,6 +66,24 @@ export interface PiLoginFlow {
66
66
  error?: string;
67
67
  startedAt: number;
68
68
  }
69
+ /** One selectable web-search provider (mirror of the server view). */
70
+ export interface WebSearchProvider {
71
+ id: string;
72
+ label: string;
73
+ /** Whether this provider accepts an API key ("auto" does not). */
74
+ hasKeyField: boolean;
75
+ /** True when a key for it is stored server-side (values never travel). */
76
+ keyConfigured: boolean;
77
+ /** True when the provider works without any key (Exa's free tier). */
78
+ keyless: boolean;
79
+ }
80
+ /** Web-search configuration for the pi backend's web extension. */
81
+ export interface WebSearchConfig {
82
+ /** False when the pi backend is not configured — hide the card. */
83
+ configured: boolean;
84
+ provider: string;
85
+ providers: WebSearchProvider[];
86
+ }
69
87
  export declare const api: {
70
88
  health: () => Promise<{
71
89
  status: string;
@@ -161,6 +179,16 @@ export declare const api: {
161
179
  piAuthLogout: (providerId: string) => Promise<{
162
180
  ok: boolean;
163
181
  }>;
182
+ /** Web-search provider config; `configured: false` when pi is not in play. */
183
+ webSearchConfig: () => Promise<WebSearchConfig>;
184
+ /**
185
+ * Update the web-search provider and/or stored API keys (null/"" clears a
186
+ * key). Returns the updated config.
187
+ */
188
+ webSearchUpdate: (update: {
189
+ provider?: string;
190
+ apiKeys?: Record<string, string | null>;
191
+ }) => Promise<WebSearchConfig>;
164
192
  /** Replace the reasoning-effort override record (full record, not a delta). */
165
193
  setThinkingOverrides: (thinking: Record<string, ThinkingLevel>) => Promise<ModelCatalogResponse>;
166
194
  /** Set the default model (a profile id, or null for auto); returns the new catalog. */
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"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"}
@@ -77,6 +77,16 @@ export const api = {
77
77
  method: "POST",
78
78
  body: JSON.stringify({ providerId }),
79
79
  }),
80
+ /** Web-search provider config; `configured: false` when pi is not in play. */
81
+ webSearchConfig: () => fetchJson("/web-search"),
82
+ /**
83
+ * Update the web-search provider and/or stored API keys (null/"" clears a
84
+ * key). Returns the updated config.
85
+ */
86
+ webSearchUpdate: (update) => fetchJson("/web-search", {
87
+ method: "PUT",
88
+ body: JSON.stringify(update),
89
+ }),
80
90
  /** Replace the reasoning-effort override record (full record, not a delta). */
81
91
  setThinkingOverrides: (thinking) => fetchJson("/models/thinking", {
82
92
  method: "PUT",
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@schlessera/brain-ui-react",
3
- "version": "0.25.0",
3
+ "version": "0.26.0",
4
4
  "description": "brain-kit chat-UI React components: chat surface, tool-call timeline, file browser, voice dictation, stores, and WebSocket transport",
5
5
  "license": "MIT",
6
6
  "keywords": [
@@ -46,7 +46,7 @@
46
46
  "prepublishOnly": "bun ../../scripts/check-dist.ts"
47
47
  },
48
48
  "dependencies": {
49
- "@schlessera/brain-ui-sdk": "0.25.0",
49
+ "@schlessera/brain-ui-sdk": "0.26.0",
50
50
  "@simplewebauthn/browser": "^13.2.2",
51
51
  "clsx": "^2",
52
52
  "framer-motion": "^12.38.0",
@@ -11,6 +11,7 @@ import { api } from "../../lib/api-client.js";
11
11
  import { useProviderStore } from "../../stores/provider-store.js";
12
12
  import { cn } from "../../lib/utils.js";
13
13
  import { PiAccountsSection } from "./pi-accounts.js";
14
+ import { WebSearchSection } from "./web-search-settings.js";
14
15
 
15
16
  /**
16
17
  * The model picker's contents, and which of them to show.
@@ -250,6 +251,8 @@ export function ModelsTab({ active }: { active: boolean }) {
250
251
  )}
251
252
 
252
253
  <PiAccountsSection active={active} />
254
+
255
+ <WebSearchSection active={active} />
253
256
  </div>
254
257
 
255
258
  <div className="flex items-center justify-between gap-3 border-t border-border p-4">
@@ -0,0 +1,203 @@
1
+ import { useEffect, useState } from "react";
2
+ import { Check, Loader2, X } from "lucide-react";
3
+ import { api, type WebSearchConfig } from "../../lib/api-client.js";
4
+ import { cn } from "../../lib/utils.js";
5
+
6
+ /**
7
+ * Web-search provider settings for the pi backend's web extension
8
+ * (pi-web-access). The default needs nothing: "Auto" starts with Exa's free
9
+ * keyless tier. This card lets the user pick an explicit provider and store
10
+ * its API key server-side — most usefully an Exa key, which lifts the free
11
+ * tier's rate limit.
12
+ *
13
+ * Key values never come back from the server; the UI only ever learns
14
+ * "a key is stored". Renders nothing when the server reports pi as not
15
+ * configured, so the Models tab is unchanged for Claude-only deployments.
16
+ */
17
+ export function WebSearchSection({ active }: { active: boolean }) {
18
+ const [config, setConfig] = useState<WebSearchConfig | null>(null);
19
+ const [error, setError] = useState<string | null>(null);
20
+ const [busy, setBusy] = useState(false);
21
+ const [keyDraft, setKeyDraft] = useState("");
22
+ const [savedFlash, setSavedFlash] = useState(false);
23
+
24
+ async function reload() {
25
+ try {
26
+ const next = await api.webSearchConfig();
27
+ setConfig(next);
28
+ setError(null);
29
+ } catch (err) {
30
+ setError(err instanceof Error ? err.message : "Could not load web-search settings");
31
+ }
32
+ }
33
+
34
+ useEffect(() => {
35
+ if (active) void reload();
36
+ }, [active]);
37
+
38
+ async function update(change: {
39
+ provider?: string;
40
+ apiKeys?: Record<string, string | null>;
41
+ }) {
42
+ setBusy(true);
43
+ setError(null);
44
+ try {
45
+ const next = await api.webSearchUpdate(change);
46
+ setConfig(next);
47
+ if (change.apiKeys) {
48
+ setKeyDraft("");
49
+ setSavedFlash(true);
50
+ setTimeout(() => setSavedFlash(false), 2000);
51
+ }
52
+ } catch (err) {
53
+ setError(err instanceof Error ? err.message : "Could not save web-search settings");
54
+ } finally {
55
+ setBusy(false);
56
+ }
57
+ }
58
+
59
+ if (!config || !config.configured) return null;
60
+
61
+ const selected = config.providers.find((p) => p.id === config.provider);
62
+ const keyProvider = selected?.hasKeyField ? selected : null;
63
+
64
+ return (
65
+ <div className="mt-6">
66
+ <h3 className="text-xs font-medium uppercase tracking-wide text-muted-foreground">
67
+ Web search
68
+ </h3>
69
+ <p className="mt-1 text-xs text-muted-foreground">
70
+ Searches run on Exa's free tier by default — no key, rate-limited. Add
71
+ an Exa API key to lift the limit, or pick a different provider. Changes
72
+ apply to new conversations.
73
+ </p>
74
+
75
+ <div className="mt-4 rounded-lg border border-border-subtle bg-surface p-3">
76
+ <label className="block text-[11px] font-medium text-muted-foreground">
77
+ Provider
78
+ </label>
79
+ <select
80
+ value={config.provider}
81
+ disabled={busy}
82
+ onChange={(e) => {
83
+ setKeyDraft("");
84
+ void update({ provider: e.target.value });
85
+ }}
86
+ className="mt-1 w-full rounded-md border border-border-subtle bg-background px-2 py-1.5 text-sm text-foreground focus:border-primary focus:outline-none disabled:opacity-50"
87
+ >
88
+ {config.providers.map((p) => (
89
+ <option key={p.id} value={p.id}>
90
+ {p.label}
91
+ {p.keyConfigured ? " · key stored" : ""}
92
+ </option>
93
+ ))}
94
+ </select>
95
+
96
+ {config.provider === "auto" && (
97
+ <ExaKeyHint config={config} />
98
+ )}
99
+
100
+ {keyProvider && (
101
+ <div className="mt-3">
102
+ <label className="block text-[11px] font-medium text-muted-foreground">
103
+ {keyProvider.label} API key
104
+ {keyProvider.keyConfigured && (
105
+ <span className="ml-2 inline-flex items-center gap-1 text-primary">
106
+ <Check className="h-3 w-3" /> stored
107
+ </span>
108
+ )}
109
+ {keyProvider.id === "exa" && !keyProvider.keyConfigured && (
110
+ <span className="ml-2 text-muted-foreground">
111
+ optional — free tier works without one
112
+ </span>
113
+ )}
114
+ </label>
115
+ <KeyEditor
116
+ busy={busy}
117
+ draft={keyDraft}
118
+ setDraft={setKeyDraft}
119
+ keyConfigured={keyProvider.keyConfigured}
120
+ savedFlash={savedFlash}
121
+ onSave={() => void update({ apiKeys: { [keyProvider.id]: keyDraft } })}
122
+ onClear={() => void update({ apiKeys: { [keyProvider.id]: null } })}
123
+ />
124
+ </div>
125
+ )}
126
+
127
+ {error && <p className="mt-2 text-xs text-destructive">{error}</p>}
128
+ </div>
129
+ </div>
130
+ );
131
+ }
132
+
133
+ /**
134
+ * In Auto mode the Exa key still matters (Auto's first stop is Exa) — offer
135
+ * the same editor without forcing a provider switch.
136
+ */
137
+ function ExaKeyHint({ config }: { config: WebSearchConfig }) {
138
+ const exa = config.providers.find((p) => p.id === "exa");
139
+ if (!exa?.keyConfigured) return null;
140
+ return (
141
+ <p className="mt-2 flex items-center gap-1 text-[11px] text-muted-foreground">
142
+ <Check className="h-3 w-3 text-primary" />
143
+ An Exa key is stored — Auto's Exa searches run unthrottled.
144
+ </p>
145
+ );
146
+ }
147
+
148
+ function KeyEditor({
149
+ busy,
150
+ draft,
151
+ setDraft,
152
+ keyConfigured,
153
+ savedFlash,
154
+ onSave,
155
+ onClear,
156
+ }: {
157
+ busy: boolean;
158
+ draft: string;
159
+ setDraft: (value: string) => void;
160
+ keyConfigured: boolean;
161
+ savedFlash: boolean;
162
+ onSave: () => void;
163
+ onClear: () => void;
164
+ }) {
165
+ return (
166
+ <div className="mt-1 flex items-center gap-2">
167
+ <input
168
+ type="password"
169
+ value={draft}
170
+ disabled={busy}
171
+ placeholder={keyConfigured ? "•••••••• (stored — enter to replace)" : "Paste API key"}
172
+ onChange={(e) => setDraft(e.target.value)}
173
+ onKeyDown={(e) => {
174
+ if (e.key === "Enter" && draft.trim()) onSave();
175
+ }}
176
+ autoComplete="off"
177
+ className="min-w-0 flex-1 rounded-md border border-border-subtle bg-background px-2 py-1.5 text-sm text-foreground placeholder:text-muted-foreground focus:border-primary focus:outline-none disabled:opacity-50"
178
+ />
179
+ <button
180
+ onClick={onSave}
181
+ disabled={busy || !draft.trim()}
182
+ className={cn(
183
+ "flex items-center gap-1 rounded-md border border-border-subtle px-2.5 py-1.5 text-xs font-medium transition-colors",
184
+ "text-foreground hover:border-primary hover:text-primary disabled:opacity-50"
185
+ )}
186
+ >
187
+ {busy ? <Loader2 className="h-3 w-3 animate-spin" /> : savedFlash ? <Check className="h-3 w-3" /> : null}
188
+ Save
189
+ </button>
190
+ {keyConfigured && (
191
+ <button
192
+ onClick={onClear}
193
+ disabled={busy}
194
+ title="Remove the stored key"
195
+ className="flex items-center gap-1 rounded-md border border-border-subtle px-2.5 py-1.5 text-xs font-medium text-muted-foreground transition-colors hover:border-destructive hover:text-destructive disabled:opacity-50"
196
+ >
197
+ <X className="h-3 w-3" />
198
+ Clear
199
+ </button>
200
+ )}
201
+ </div>
202
+ );
203
+ }
@@ -105,6 +105,26 @@ export interface PiLoginFlow {
105
105
  startedAt: number;
106
106
  }
107
107
 
108
+ /** One selectable web-search provider (mirror of the server view). */
109
+ export interface WebSearchProvider {
110
+ id: string;
111
+ label: string;
112
+ /** Whether this provider accepts an API key ("auto" does not). */
113
+ hasKeyField: boolean;
114
+ /** True when a key for it is stored server-side (values never travel). */
115
+ keyConfigured: boolean;
116
+ /** True when the provider works without any key (Exa's free tier). */
117
+ keyless: boolean;
118
+ }
119
+
120
+ /** Web-search configuration for the pi backend's web extension. */
121
+ export interface WebSearchConfig {
122
+ /** False when the pi backend is not configured — hide the card. */
123
+ configured: boolean;
124
+ provider: string;
125
+ providers: WebSearchProvider[];
126
+ }
127
+
108
128
  async function fetchJson<T>(path: string, init?: RequestInit): Promise<T> {
109
129
  const res = await fetch(`${apiBase()}${path}`, {
110
130
  ...init,
@@ -262,6 +282,22 @@ export const api = {
262
282
  body: JSON.stringify({ providerId }),
263
283
  }),
264
284
 
285
+ /** Web-search provider config; `configured: false` when pi is not in play. */
286
+ webSearchConfig: () => fetchJson<WebSearchConfig>("/web-search"),
287
+
288
+ /**
289
+ * Update the web-search provider and/or stored API keys (null/"" clears a
290
+ * key). Returns the updated config.
291
+ */
292
+ webSearchUpdate: (update: {
293
+ provider?: string;
294
+ apiKeys?: Record<string, string | null>;
295
+ }) =>
296
+ fetchJson<WebSearchConfig>("/web-search", {
297
+ method: "PUT",
298
+ body: JSON.stringify(update),
299
+ }),
300
+
265
301
  /** Replace the reasoning-effort override record (full record, not a delta). */
266
302
  setThinkingOverrides: (thinking: Record<string, ThinkingLevel>) =>
267
303
  fetchJson<ModelCatalogResponse>("/models/thinking", {