@actuate-media/cms-admin 0.33.0 → 0.34.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.
- package/dist/__tests__/views/ai-settings.render.test.d.ts +2 -0
- package/dist/__tests__/views/ai-settings.render.test.d.ts.map +1 -0
- package/dist/__tests__/views/ai-settings.render.test.js +182 -0
- package/dist/__tests__/views/ai-settings.render.test.js.map +1 -0
- package/dist/actuate-admin.css +1 -1
- package/dist/views/Settings.d.ts.map +1 -1
- package/dist/views/Settings.js +2 -46
- package/dist/views/Settings.js.map +1 -1
- package/dist/views/settings/AISettingsTab.d.ts +6 -0
- package/dist/views/settings/AISettingsTab.d.ts.map +1 -0
- package/dist/views/settings/AISettingsTab.js +138 -0
- package/dist/views/settings/AISettingsTab.js.map +1 -0
- package/dist/views/settings/AiFeaturesCard.d.ts +12 -0
- package/dist/views/settings/AiFeaturesCard.d.ts.map +1 -0
- package/dist/views/settings/AiFeaturesCard.js +14 -0
- package/dist/views/settings/AiFeaturesCard.js.map +1 -0
- package/dist/views/settings/CapabilityBadges.d.ts +5 -0
- package/dist/views/settings/CapabilityBadges.d.ts.map +1 -0
- package/dist/views/settings/CapabilityBadges.js +26 -0
- package/dist/views/settings/CapabilityBadges.js.map +1 -0
- package/dist/views/settings/ModelSelector.d.ts +12 -0
- package/dist/views/settings/ModelSelector.d.ts.map +1 -0
- package/dist/views/settings/ModelSelector.js +29 -0
- package/dist/views/settings/ModelSelector.js.map +1 -0
- package/dist/views/settings/MonthlyUsageCard.d.ts +14 -0
- package/dist/views/settings/MonthlyUsageCard.d.ts.map +1 -0
- package/dist/views/settings/MonthlyUsageCard.js +30 -0
- package/dist/views/settings/MonthlyUsageCard.js.map +1 -0
- package/dist/views/settings/ProviderConnectionCard.d.ts +13 -0
- package/dist/views/settings/ProviderConnectionCard.d.ts.map +1 -0
- package/dist/views/settings/ProviderConnectionCard.js +48 -0
- package/dist/views/settings/ProviderConnectionCard.js.map +1 -0
- package/dist/views/settings/useAiSettings.d.ts +143 -0
- package/dist/views/settings/useAiSettings.d.ts.map +1 -0
- package/dist/views/settings/useAiSettings.js +278 -0
- package/dist/views/settings/useAiSettings.js.map +1 -0
- package/package.json +2 -2
- package/src/__tests__/views/ai-settings.render.test.tsx +225 -0
- package/src/views/Settings.tsx +2 -139
- package/src/views/settings/AISettingsTab.tsx +411 -0
- package/src/views/settings/AiFeaturesCard.tsx +49 -0
- package/src/views/settings/CapabilityBadges.tsx +66 -0
- package/src/views/settings/ModelSelector.tsx +115 -0
- package/src/views/settings/MonthlyUsageCard.tsx +118 -0
- package/src/views/settings/ProviderConnectionCard.tsx +245 -0
- package/src/views/settings/useAiSettings.ts +448 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Settings.js","sourceRoot":"","sources":["../../src/views/Settings.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Settings.js","sourceRoot":"","sources":["../../src/views/Settings.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export interface AISettingsTabProps {
|
|
2
|
+
/** Current user's role. Only ADMIN can persist changes. */
|
|
3
|
+
role?: string;
|
|
4
|
+
}
|
|
5
|
+
export declare function AISettingsTab({ role }: AISettingsTabProps): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
//# sourceMappingURL=AISettingsTab.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AISettingsTab.d.ts","sourceRoot":"","sources":["../../../src/views/settings/AISettingsTab.tsx"],"names":[],"mappings":"AA4BA,MAAM,WAAW,kBAAkB;IACjC,2DAA2D;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,EAAE,kBAAkB,2CA8EzD"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { AlertTriangle, Bot, Info, Loader2, Plus } from 'lucide-react';
|
|
4
|
+
import { useId, useMemo, useState } from 'react';
|
|
5
|
+
import { toast } from 'sonner';
|
|
6
|
+
import { AiFeaturesCard } from './AiFeaturesCard.js';
|
|
7
|
+
import { ModelSelector } from './ModelSelector.js';
|
|
8
|
+
import { MonthlyUsageCard } from './MonthlyUsageCard.js';
|
|
9
|
+
import { ProviderConnectionCard } from './ProviderConnectionCard.js';
|
|
10
|
+
import { SettingsSaveBar } from './components.js';
|
|
11
|
+
import { useAiSettings, } from './useAiSettings.js';
|
|
12
|
+
const INPUT_CLASS = 'w-full rounded-md border border-border bg-input-background px-3 py-2 text-base text-foreground focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-60';
|
|
13
|
+
const LABEL_CLASS = 'mb-1 flex items-center gap-2 text-sm font-medium text-foreground';
|
|
14
|
+
const PROVIDER_OPTIONS = [
|
|
15
|
+
{ value: 'anthropic', label: 'Anthropic (Claude)' },
|
|
16
|
+
{ value: 'openai', label: 'OpenAI (GPT)' },
|
|
17
|
+
{ value: 'xai', label: 'xAI (Grok)' },
|
|
18
|
+
{ value: 'custom', label: 'Custom (OpenAI-compatible)' },
|
|
19
|
+
];
|
|
20
|
+
export function AISettingsTab({ role }) {
|
|
21
|
+
const canEdit = role === 'ADMIN';
|
|
22
|
+
const ai = useAiSettings(canEdit);
|
|
23
|
+
if (ai.loading) {
|
|
24
|
+
return (_jsxs("div", { className: "space-y-4", "aria-busy": "true", "aria-live": "polite", children: [_jsx("span", { className: "sr-only", children: "Loading AI settings\u2026" }), [0, 1, 2].map((i) => (_jsxs("div", { className: "border-border bg-card rounded-lg border p-4", children: [_jsx("div", { className: "bg-muted mb-4 h-4 w-40 animate-pulse rounded" }), _jsxs("div", { className: "space-y-3", children: [_jsx("div", { className: "bg-muted h-9 w-full animate-pulse rounded" }), _jsx("div", { className: "bg-muted h-9 w-full animate-pulse rounded" })] })] }, i)))] }));
|
|
25
|
+
}
|
|
26
|
+
return (_jsxs("div", { className: "space-y-4", children: [ai.loadError && (_jsxs("div", { role: "alert", className: "border-destructive/30 bg-destructive/10 text-destructive flex items-center gap-3 rounded-lg border p-3 text-sm", children: [_jsx(AlertTriangle, { size: 16, className: "shrink-0", "aria-hidden": "true" }), _jsx("span", { className: "flex-1", children: ai.loadError }), _jsx("button", { type: "button", onClick: ai.refetch, className: "border-destructive/40 rounded-md border px-3 py-1 transition-colors hover:opacity-80", children: "Retry" })] })), !canEdit && (_jsxs("div", { className: "border-border bg-muted text-muted-foreground flex items-center gap-2 rounded-lg border p-3 text-sm", children: [_jsx(Info, { size: 16, className: "shrink-0", "aria-hidden": "true" }), "You have read-only access to AI settings. Only administrators can make changes."] })), _jsx(AssistantCard, { ai: ai, canEdit: canEdit }), _jsx(ProviderConnectionsSection, { ai: ai, canEdit: canEdit }), _jsx(AiFeaturesCard, { features: ai.form.features, canEdit: canEdit, onToggle: ai.toggleFeature }), _jsx(MonthlyUsageCard, { usage: ai.usage, monthlyTokenLimit: ai.form.monthlyTokenLimit, onChangeLimit: ai.setMonthlyTokenLimit, budgetError: ai.budgetError, canEdit: canEdit }), ai.saveState === 'error' && ai.saveError && (_jsxs("div", { role: "alert", className: "border-destructive/30 bg-destructive/10 text-destructive flex items-center gap-3 rounded-lg border p-3 text-sm", children: [_jsx(AlertTriangle, { size: 16, className: "shrink-0", "aria-hidden": "true" }), _jsx("span", { className: "flex-1", children: ai.saveError })] })), _jsx(SettingsSaveBar, { dirty: ai.dirty, canEdit: canEdit, hasErrors: Boolean(ai.budgetError), saveState: ai.saveState, onSave: ai.save, onReset: ai.reset })] }));
|
|
27
|
+
}
|
|
28
|
+
// ---------------------------------------------------------------------------
|
|
29
|
+
// AI Assistant — default provider + default model
|
|
30
|
+
// ---------------------------------------------------------------------------
|
|
31
|
+
function AssistantCard({ ai, canEdit }) {
|
|
32
|
+
const headingId = useId();
|
|
33
|
+
const providerSelectId = useId();
|
|
34
|
+
const [refreshing, setRefreshing] = useState(false);
|
|
35
|
+
const defaultProvider = ai.providers.find((p) => p.id === ai.form.defaultProviderId);
|
|
36
|
+
const modelsForDefault = useMemo(() => {
|
|
37
|
+
if (!defaultProvider)
|
|
38
|
+
return ai.models;
|
|
39
|
+
return ai.models.filter((m) => m.provider === defaultProvider.provider);
|
|
40
|
+
}, [ai.models, defaultProvider]);
|
|
41
|
+
async function handleRefresh() {
|
|
42
|
+
if (!defaultProvider)
|
|
43
|
+
return;
|
|
44
|
+
setRefreshing(true);
|
|
45
|
+
try {
|
|
46
|
+
const res = await ai.syncModels(defaultProvider.id);
|
|
47
|
+
if (!res.ok)
|
|
48
|
+
toast.error(res.error ?? 'Failed to refresh models.');
|
|
49
|
+
else if (res.fromFallback)
|
|
50
|
+
toast.warning(res.warning ?? 'Showing the curated model list (live listing unavailable).');
|
|
51
|
+
else
|
|
52
|
+
toast.success('Model list refreshed.');
|
|
53
|
+
}
|
|
54
|
+
finally {
|
|
55
|
+
setRefreshing(false);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return (_jsxs("section", { "aria-labelledby": headingId, className: "border-border bg-card rounded-lg border p-4", children: [_jsxs("div", { className: "mb-4 flex items-center gap-2", children: [_jsx("span", { className: "bg-brand/10 text-brand flex h-9 w-9 items-center justify-center rounded-lg", children: _jsx(Bot, { size: 18, "aria-hidden": "true" }) }), _jsxs("div", { children: [_jsx("h3", { id: headingId, className: "text-foreground text-base font-medium", children: "AI Assistant" }), _jsx("p", { className: "text-muted-foreground text-sm", children: "The default provider and model used across AI features." })] })] }), ai.providers.length === 0 ? (_jsx("div", { className: "border-border bg-muted/40 text-muted-foreground rounded-md border border-dashed p-4 text-sm", children: "No AI providers are connected yet. Add one below to enable AI features." })) : (_jsxs("div", { className: "space-y-4", children: [_jsxs("div", { children: [_jsx("label", { htmlFor: providerSelectId, className: LABEL_CLASS, children: "Default provider" }), _jsxs("select", { id: providerSelectId, value: ai.form.defaultProviderId, disabled: !canEdit, onChange: (e) => ai.setDefaultProvider(e.target.value), className: INPUT_CLASS, children: [_jsx("option", { value: "", children: "Select a provider\u2026" }), ai.providers.map((p) => (_jsx("option", { value: p.id, children: p.displayName }, p.id)))] })] }), _jsx(ModelSelector, { models: modelsForDefault, value: ai.form.defaultModelId, onChange: ai.setDefaultModel, onRefresh: handleRefresh, refreshing: refreshing, disabled: !canEdit || !defaultProvider, noModelsHint: defaultProvider
|
|
59
|
+
? 'No models cached yet. Use “Refresh models” to load them.'
|
|
60
|
+
: 'Select a default provider to choose a model.' })] }))] }));
|
|
61
|
+
}
|
|
62
|
+
// ---------------------------------------------------------------------------
|
|
63
|
+
// Provider connections (manage multiple)
|
|
64
|
+
// ---------------------------------------------------------------------------
|
|
65
|
+
function ProviderConnectionsSection({ ai, canEdit }) {
|
|
66
|
+
const headingId = useId();
|
|
67
|
+
const [adding, setAdding] = useState(false);
|
|
68
|
+
return (_jsxs("section", { "aria-labelledby": headingId, className: "space-y-3", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("h3", { id: headingId, className: "text-foreground text-base font-medium", children: "Provider connections" }), canEdit && !adding && (_jsxs("button", { type: "button", onClick: () => setAdding(true), className: "border-border text-foreground hover:bg-accent inline-flex items-center gap-1.5 rounded-md border px-3 py-1.5 text-sm transition-colors", children: [_jsx(Plus, { size: 14, "aria-hidden": "true" }), "Add provider"] }))] }), adding && (_jsx(AddProviderForm, { ai: ai, onDone: () => setAdding(false), onCancel: () => setAdding(false) })), ai.providers.map((p) => (_jsx(ProviderConnectionCard, { provider: p, canEdit: canEdit, busy: ai.busyProviderId === p.id, onTest: async () => {
|
|
69
|
+
const res = await ai.testProvider(p.id);
|
|
70
|
+
if (!res.ok)
|
|
71
|
+
toast.error(res.error ?? res.message ?? 'Connection test failed.');
|
|
72
|
+
else
|
|
73
|
+
toast.success(res.message ?? 'Connection successful.');
|
|
74
|
+
}, onSyncModels: async () => {
|
|
75
|
+
const res = await ai.syncModels(p.id);
|
|
76
|
+
if (!res.ok)
|
|
77
|
+
toast.error(res.error ?? 'Failed to refresh models.');
|
|
78
|
+
else if (res.fromFallback)
|
|
79
|
+
toast.warning(res.warning ?? 'Showing the curated model list.');
|
|
80
|
+
else
|
|
81
|
+
toast.success('Model list refreshed.');
|
|
82
|
+
}, onUpdateKey: async (apiKey) => {
|
|
83
|
+
const res = await ai.updateProvider(p.id, { apiKey });
|
|
84
|
+
if (!res.ok)
|
|
85
|
+
toast.error(res.error ?? 'Failed to update key.');
|
|
86
|
+
else
|
|
87
|
+
toast.success('API key updated.');
|
|
88
|
+
}, onUpdateBaseUrl: async (baseUrl) => {
|
|
89
|
+
const res = await ai.updateProvider(p.id, { baseUrl });
|
|
90
|
+
if (!res.ok)
|
|
91
|
+
toast.error(res.error ?? 'Failed to update base URL.');
|
|
92
|
+
else
|
|
93
|
+
toast.success('Base URL updated.');
|
|
94
|
+
}, onDisconnect: async () => {
|
|
95
|
+
const res = await ai.deleteProvider(p.id);
|
|
96
|
+
if (!res.ok)
|
|
97
|
+
toast.error(res.error ?? 'Failed to disconnect.');
|
|
98
|
+
else
|
|
99
|
+
toast.success(`${p.displayName} disconnected.`);
|
|
100
|
+
} }, p.id))), ai.providers.length === 0 && !adding && (_jsx("p", { className: "text-muted-foreground text-sm", children: "No providers connected." }))] }));
|
|
101
|
+
}
|
|
102
|
+
function AddProviderForm({ ai, onDone, onCancel, }) {
|
|
103
|
+
const providerId = useId();
|
|
104
|
+
const nameId = useId();
|
|
105
|
+
const keyId = useId();
|
|
106
|
+
const baseUrlId = useId();
|
|
107
|
+
const [provider, setProvider] = useState('anthropic');
|
|
108
|
+
const [displayName, setDisplayName] = useState('');
|
|
109
|
+
const [apiKey, setApiKey] = useState('');
|
|
110
|
+
const [baseUrl, setBaseUrl] = useState('');
|
|
111
|
+
const [submitting, setSubmitting] = useState(false);
|
|
112
|
+
const needsBaseUrl = provider === 'custom';
|
|
113
|
+
const canSubmit = !submitting && (!needsBaseUrl || baseUrl.trim() !== '');
|
|
114
|
+
async function submit() {
|
|
115
|
+
setSubmitting(true);
|
|
116
|
+
try {
|
|
117
|
+
const input = {
|
|
118
|
+
provider,
|
|
119
|
+
displayName: displayName.trim() || undefined,
|
|
120
|
+
apiKey: apiKey.trim() || undefined,
|
|
121
|
+
baseUrl: needsBaseUrl ? baseUrl.trim() : undefined,
|
|
122
|
+
test: true,
|
|
123
|
+
};
|
|
124
|
+
const res = await ai.createProvider(input);
|
|
125
|
+
if (!res.ok) {
|
|
126
|
+
toast.error(res.error ?? 'Failed to add provider.');
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
toast.success('Provider connected.');
|
|
130
|
+
onDone();
|
|
131
|
+
}
|
|
132
|
+
finally {
|
|
133
|
+
setSubmitting(false);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
return (_jsxs("div", { className: "border-border bg-card rounded-lg border p-4", children: [_jsx("h4", { className: "text-foreground mb-3 text-base font-medium", children: "Add a provider" }), _jsxs("div", { className: "space-y-3", children: [_jsxs("div", { children: [_jsx("label", { htmlFor: providerId, className: LABEL_CLASS, children: "Provider" }), _jsx("select", { id: providerId, value: provider, onChange: (e) => setProvider(e.target.value), className: INPUT_CLASS, children: PROVIDER_OPTIONS.map((o) => (_jsx("option", { value: o.value, children: o.label }, o.value))) })] }), _jsxs("div", { children: [_jsx("label", { htmlFor: nameId, className: LABEL_CLASS, children: "Display name (optional)" }), _jsx("input", { id: nameId, type: "text", value: displayName, placeholder: "e.g. Production Anthropic", onChange: (e) => setDisplayName(e.target.value), className: INPUT_CLASS })] }), needsBaseUrl && (_jsxs("div", { children: [_jsx("label", { htmlFor: baseUrlId, className: LABEL_CLASS, children: "Base URL" }), _jsx("input", { id: baseUrlId, type: "url", value: baseUrl, placeholder: "https://api.example.com/v1", onChange: (e) => setBaseUrl(e.target.value), className: INPUT_CLASS })] })), _jsxs("div", { children: [_jsx("label", { htmlFor: keyId, className: LABEL_CLASS, children: "API key" }), _jsx("input", { id: keyId, type: "password", autoComplete: "off", spellCheck: false, value: apiKey, placeholder: "Paste API key (or leave blank if set via environment)", onChange: (e) => setApiKey(e.target.value), className: INPUT_CLASS })] }), _jsxs("div", { className: "flex items-center justify-end gap-3 pt-1", children: [_jsx("button", { type: "button", onClick: onCancel, disabled: submitting, className: "text-muted-foreground hover:text-foreground rounded-md px-3 py-2 text-sm transition-colors disabled:opacity-50", children: "Cancel" }), _jsxs("button", { type: "button", onClick: submit, disabled: !canSubmit, className: "bg-brand text-brand-foreground inline-flex items-center gap-2 rounded-md px-4 py-2 text-sm font-medium transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50", children: [submitting && _jsx(Loader2, { size: 14, className: "animate-spin", "aria-hidden": "true" }), "Connect & test"] })] })] })] }));
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=AISettingsTab.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AISettingsTab.js","sourceRoot":"","sources":["../../../src/views/settings/AISettingsTab.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { AiFeatureView } from './useAiSettings.js';
|
|
2
|
+
/**
|
|
3
|
+
* Global AI feature toggles. Each switch persists (via the Save bar) to the
|
|
4
|
+
* shared `ai.features.*` flags. Enforcement across modules lands in a later
|
|
5
|
+
* phase; here we surface and store the operator's intent.
|
|
6
|
+
*/
|
|
7
|
+
export declare function AiFeaturesCard({ features, canEdit, onToggle, }: {
|
|
8
|
+
features: AiFeatureView[];
|
|
9
|
+
canEdit: boolean;
|
|
10
|
+
onToggle: (key: string, enabled: boolean) => void;
|
|
11
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
//# sourceMappingURL=AiFeaturesCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AiFeaturesCard.d.ts","sourceRoot":"","sources":["../../../src/views/settings/AiFeaturesCard.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAEvD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,OAAO,EACP,QAAQ,GACT,EAAE;IACD,QAAQ,EAAE,aAAa,EAAE,CAAA;IACzB,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;CAClD,2CA6BA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useId } from 'react';
|
|
4
|
+
import { SettingsToggleRow } from './components.js';
|
|
5
|
+
/**
|
|
6
|
+
* Global AI feature toggles. Each switch persists (via the Save bar) to the
|
|
7
|
+
* shared `ai.features.*` flags. Enforcement across modules lands in a later
|
|
8
|
+
* phase; here we surface and store the operator's intent.
|
|
9
|
+
*/
|
|
10
|
+
export function AiFeaturesCard({ features, canEdit, onToggle, }) {
|
|
11
|
+
const headingId = useId();
|
|
12
|
+
return (_jsxs("section", { "aria-labelledby": headingId, className: "border-border bg-card rounded-lg border p-4", children: [_jsx("h3", { id: headingId, className: "text-foreground mb-1 text-base font-medium", children: "AI Features" }), _jsx("p", { className: "text-muted-foreground mb-4 text-sm", children: "Turn individual AI-powered features on or off across the CMS." }), features.length === 0 ? (_jsx("p", { className: "text-muted-foreground text-sm", children: "No AI features are available." })) : (_jsx("div", { className: "space-y-4", children: features.map((f) => (_jsx(SettingsToggleRow, { label: f.label, description: f.description, checked: f.enabled, disabled: !canEdit, onChange: (v) => onToggle(f.key, v) }, f.key))) }))] }));
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=AiFeaturesCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AiFeaturesCard.js","sourceRoot":"","sources":["../../../src/views/settings/AiFeaturesCard.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAGnD;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,EAC7B,QAAQ,EACR,OAAO,EACP,QAAQ,GAKT;IACC,MAAM,SAAS,GAAG,KAAK,EAAE,CAAA;IACzB,OAAO,CACL,sCAA0B,SAAS,EAAE,SAAS,EAAC,6CAA6C,aAC1F,aAAI,EAAE,EAAE,SAAS,EAAE,SAAS,EAAC,4CAA4C,4BAEpE,EACL,YAAG,SAAS,EAAC,oCAAoC,8EAE7C,EAEH,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CACvB,YAAG,SAAS,EAAC,+BAA+B,8CAAkC,CAC/E,CAAC,CAAC,CAAC,CACF,cAAK,SAAS,EAAC,WAAW,YACvB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACnB,KAAC,iBAAiB,IAEhB,KAAK,EAAE,CAAC,CAAC,KAAK,EACd,WAAW,EAAE,CAAC,CAAC,WAAW,EAC1B,OAAO,EAAE,CAAC,CAAC,OAAO,EAClB,QAAQ,EAAE,CAAC,OAAO,EAClB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAL9B,CAAC,CAAC,GAAG,CAMV,CACH,CAAC,GACE,CACP,IACO,CACX,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CapabilityBadges.d.ts","sourceRoot":"","sources":["../../../src/views/settings/CapabilityBadges.tsx"],"names":[],"mappings":"AAqCA,wBAAgB,gBAAgB,CAAC,EAC/B,YAAY,EACZ,SAAS,GACV,EAAE;IACD,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACrC,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,2CAsBA"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Binary, Braces, Brain, Eye, Image as ImageIcon, Type, Wrench, Zap, } from 'lucide-react';
|
|
4
|
+
// Ordered for stable rendering. Keys match `AIModelCapabilities`.
|
|
5
|
+
const CAPABILITY_META = {
|
|
6
|
+
text: { label: 'Text', icon: Type },
|
|
7
|
+
vision: { label: 'Vision', icon: Eye },
|
|
8
|
+
imageGeneration: { label: 'Image gen', icon: ImageIcon },
|
|
9
|
+
embeddings: { label: 'Embeddings', icon: Binary },
|
|
10
|
+
reasoning: { label: 'Reasoning', icon: Brain },
|
|
11
|
+
toolCalling: { label: 'Tools', icon: Wrench },
|
|
12
|
+
structuredOutput: { label: 'Structured', icon: Braces },
|
|
13
|
+
longContext: { label: 'Long context', icon: Zap },
|
|
14
|
+
};
|
|
15
|
+
export function CapabilityBadges({ capabilities, className, }) {
|
|
16
|
+
const active = Object.keys(CAPABILITY_META).filter((k) => capabilities?.[k]);
|
|
17
|
+
if (active.length === 0) {
|
|
18
|
+
return _jsx("span", { className: "text-muted-foreground text-sm", children: "No capability data" });
|
|
19
|
+
}
|
|
20
|
+
return (_jsx("ul", { className: `flex flex-wrap gap-1.5 ${className ?? ''}`, "aria-label": "Model capabilities", children: active.map((key) => {
|
|
21
|
+
const meta = CAPABILITY_META[key];
|
|
22
|
+
const Icon = meta.icon;
|
|
23
|
+
return (_jsxs("li", { className: "border-border bg-muted text-muted-foreground inline-flex items-center gap-1 rounded-md border px-1.5 py-0.5 text-xs", children: [_jsx(Icon, { size: 11, "aria-hidden": "true" }), meta.label] }, key));
|
|
24
|
+
}) }));
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=CapabilityBadges.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CapabilityBadges.js","sourceRoot":"","sources":["../../../src/views/settings/CapabilityBadges.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EACL,MAAM,EACN,MAAM,EACN,KAAK,EACL,GAAG,EACH,KAAK,IAAI,SAAS,EAElB,IAAI,EACJ,MAAM,EACN,GAAG,GACJ,MAAM,cAAc,CAAA;AAarB,kEAAkE;AAClE,MAAM,eAAe,GAAmC;IACtD,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;IACnC,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE;IACtC,eAAe,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;IACxD,UAAU,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE;IACjD,SAAS,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE;IAC9C,WAAW,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;IAC7C,gBAAgB,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE;IACvD,WAAW,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,EAAE;CAClD,CAAA;AAED,MAAM,UAAU,gBAAgB,CAAC,EAC/B,YAAY,EACZ,SAAS,GAIV;IACC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5E,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,eAAM,SAAS,EAAC,+BAA+B,mCAA0B,CAAA;IAClF,CAAC;IACD,OAAO,CACL,aAAI,SAAS,EAAE,0BAA0B,SAAS,IAAI,EAAE,EAAE,gBAAa,oBAAoB,YACxF,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YAClB,MAAM,IAAI,GAAG,eAAe,CAAC,GAAG,CAAE,CAAA;YAClC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;YACtB,OAAO,CACL,cAEE,SAAS,EAAC,qHAAqH,aAE/H,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,iBAAc,MAAM,GAAG,EACpC,IAAI,CAAC,KAAK,KAJN,GAAG,CAKL,CACN,CAAA;QACH,CAAC,CAAC,GACC,CACN,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { AiModelView } from './useAiSettings.js';
|
|
2
|
+
export declare function ModelSelector({ models, value, onChange, onRefresh, refreshing, disabled, noModelsHint, }: {
|
|
3
|
+
models: AiModelView[];
|
|
4
|
+
value: string;
|
|
5
|
+
onChange: (id: string) => void;
|
|
6
|
+
onRefresh: () => void;
|
|
7
|
+
refreshing: boolean;
|
|
8
|
+
disabled: boolean;
|
|
9
|
+
/** Shown when there are no models to choose from. */
|
|
10
|
+
noModelsHint?: string;
|
|
11
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
//# sourceMappingURL=ModelSelector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModelSelector.d.ts","sourceRoot":"","sources":["../../../src/views/settings/ModelSelector.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAiBrD,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,KAAK,EACL,QAAQ,EACR,SAAS,EACT,UAAU,EACV,QAAQ,EACR,YAAY,GACb,EAAE;IACD,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9B,SAAS,EAAE,MAAM,IAAI,CAAA;IACrB,UAAU,EAAE,OAAO,CAAA;IACnB,QAAQ,EAAE,OAAO,CAAA;IACjB,qDAAqD;IACrD,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,2CA2EA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { AlertTriangle, Loader2, RefreshCw } from 'lucide-react';
|
|
4
|
+
import { useId } from 'react';
|
|
5
|
+
import { CapabilityBadges } from './CapabilityBadges.js';
|
|
6
|
+
const INPUT_CLASS = 'w-full rounded-md border border-border bg-input-background px-3 py-2 text-base text-foreground focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-60';
|
|
7
|
+
const LABEL_CLASS = 'mb-1 flex items-center gap-2 text-sm font-medium text-foreground';
|
|
8
|
+
function priceLabel(model) {
|
|
9
|
+
const p = model.pricing;
|
|
10
|
+
if (!p)
|
|
11
|
+
return null;
|
|
12
|
+
if (typeof p.inputPerMillion === 'number' && typeof p.outputPerMillion === 'number') {
|
|
13
|
+
return `$${p.inputPerMillion}/$${p.outputPerMillion} per 1M tokens`;
|
|
14
|
+
}
|
|
15
|
+
if (typeof p.inputPerMillion === 'number')
|
|
16
|
+
return `$${p.inputPerMillion} per 1M tokens`;
|
|
17
|
+
if (typeof p.image === 'number')
|
|
18
|
+
return `$${p.image} per image`;
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
export function ModelSelector({ models, value, onChange, onRefresh, refreshing, disabled, noModelsHint, }) {
|
|
22
|
+
const selectId = useId();
|
|
23
|
+
const selected = models.find((m) => m.id === value || m.providerModelId === value);
|
|
24
|
+
// The configured model is no longer in the catalog — keep the choice, warn.
|
|
25
|
+
const selectedUnavailable = Boolean(value) && !selected;
|
|
26
|
+
const price = selected ? priceLabel(selected) : null;
|
|
27
|
+
return (_jsxs("div", { children: [_jsx("label", { htmlFor: selectId, className: LABEL_CLASS, children: "Default model" }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsxs("select", { id: selectId, value: value, disabled: disabled, onChange: (e) => onChange(e.target.value), className: INPUT_CLASS, children: [_jsx("option", { value: "", children: "Select a model\u2026" }), selectedUnavailable && _jsxs("option", { value: value, children: [value, " (unavailable)"] }), models.map((m) => (_jsxs("option", { value: m.id, disabled: m.status === 'unavailable', children: [m.displayName, m.status === 'deprecated' ? ' (deprecated)' : '', m.status === 'unavailable' ? ' (unavailable)' : ''] }, m.id)))] }), _jsxs("button", { type: "button", onClick: onRefresh, disabled: disabled || refreshing, "aria-label": "Refresh models", className: "border-border text-foreground hover:bg-accent inline-flex shrink-0 items-center gap-2 rounded-md border px-3 py-2 text-sm transition-colors disabled:cursor-not-allowed disabled:opacity-60", children: [refreshing ? (_jsx(Loader2, { size: 16, className: "animate-spin", "aria-hidden": "true" })) : (_jsx(RefreshCw, { size: 16, "aria-hidden": "true" })), _jsx("span", { className: "sr-only sm:not-sr-only", children: "Refresh models" })] })] }), models.length === 0 && (_jsx("p", { className: "text-muted-foreground mt-1 text-sm", children: noModelsHint ?? 'No models available yet. Connect a provider and refresh.' })), selectedUnavailable && (_jsxs("p", { className: "text-warning mt-2 flex items-start gap-1.5 text-sm", role: "status", children: [_jsx(AlertTriangle, { size: 14, className: "mt-0.5 shrink-0", "aria-hidden": "true" }), "The selected model is no longer offered by the provider. Pick another or refresh the list."] })), selected && (_jsxs("div", { className: "mt-2 space-y-1.5", children: [_jsx(CapabilityBadges, { capabilities: selected.capabilities }), _jsxs("div", { className: "text-muted-foreground flex flex-wrap gap-x-4 gap-y-1 text-sm", children: [typeof selected.contextWindow === 'number' && (_jsxs("span", { children: [selected.contextWindow.toLocaleString(), " token context"] })), price && _jsx("span", { children: price }), selected.status === 'deprecated' && (_jsx("span", { className: "text-warning", children: "Deprecated by provider" }))] })] }))] }));
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=ModelSelector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModelSelector.js","sourceRoot":"","sources":["../../../src/views/settings/ModelSelector.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { AiUsageView } from './useAiSettings.js';
|
|
2
|
+
/**
|
|
3
|
+
* Monthly token usage meter + budget limit input. Usage is REAL (aggregated
|
|
4
|
+
* from audit-log token totals) — it shows 0 until AI features have run, never a
|
|
5
|
+
* fabricated number.
|
|
6
|
+
*/
|
|
7
|
+
export declare function MonthlyUsageCard({ usage, monthlyTokenLimit, onChangeLimit, budgetError, canEdit, }: {
|
|
8
|
+
usage: AiUsageView | null;
|
|
9
|
+
monthlyTokenLimit: string;
|
|
10
|
+
onChangeLimit: (value: string) => void;
|
|
11
|
+
budgetError: string | null;
|
|
12
|
+
canEdit: boolean;
|
|
13
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
//# sourceMappingURL=MonthlyUsageCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MonthlyUsageCard.d.ts","sourceRoot":"","sources":["../../../src/views/settings/MonthlyUsageCard.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAYrD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,OAAO,GACR,EAAE;IACD,KAAK,EAAE,WAAW,GAAG,IAAI,CAAA;IACzB,iBAAiB,EAAE,MAAM,CAAA;IACzB,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACtC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,OAAO,EAAE,OAAO,CAAA;CACjB,2CAqFA"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useId } from 'react';
|
|
4
|
+
const INPUT_CLASS = 'w-full rounded-md border border-border bg-input-background px-3 py-2 text-base text-foreground focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-60';
|
|
5
|
+
const LABEL_CLASS = 'mb-1 flex items-center gap-2 text-sm font-medium text-foreground';
|
|
6
|
+
function formatTokens(n) {
|
|
7
|
+
if (n >= 1_000_000)
|
|
8
|
+
return `${(n / 1_000_000).toFixed(n % 1_000_000 === 0 ? 0 : 1)}M`;
|
|
9
|
+
if (n >= 1_000)
|
|
10
|
+
return `${(n / 1_000).toFixed(n % 1_000 === 0 ? 0 : 1)}K`;
|
|
11
|
+
return String(n);
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Monthly token usage meter + budget limit input. Usage is REAL (aggregated
|
|
15
|
+
* from audit-log token totals) — it shows 0 until AI features have run, never a
|
|
16
|
+
* fabricated number.
|
|
17
|
+
*/
|
|
18
|
+
export function MonthlyUsageCard({ usage, monthlyTokenLimit, onChangeLimit, budgetError, canEdit, }) {
|
|
19
|
+
const headingId = useId();
|
|
20
|
+
const limitId = useId();
|
|
21
|
+
const used = usage?.totalTokens ?? 0;
|
|
22
|
+
const limit = monthlyTokenLimit === '' ? undefined : Number(monthlyTokenLimit);
|
|
23
|
+
const pct = limit && limit > 0 ? Math.min(100, Math.round((used / limit) * 100)) : null;
|
|
24
|
+
const over = pct !== null && used > (limit ?? 0);
|
|
25
|
+
const periodLabel = usage?.periodStart
|
|
26
|
+
? new Date(usage.periodStart).toLocaleDateString(undefined, { month: 'long', year: 'numeric' })
|
|
27
|
+
: 'This month';
|
|
28
|
+
return (_jsxs("section", { "aria-labelledby": headingId, className: "border-border bg-card rounded-lg border p-4", children: [_jsx("h3", { id: headingId, className: "text-foreground mb-1 text-base font-medium", children: "Monthly Usage" }), _jsxs("p", { className: "text-muted-foreground mb-4 text-sm", children: ["Token usage for ", periodLabel, ". Aggregated from completed AI runs."] }), _jsxs("div", { className: "space-y-4", children: [_jsxs("div", { children: [_jsxs("div", { className: "mb-1 flex items-center justify-between text-sm", children: [_jsxs("span", { className: "text-foreground font-medium", children: [formatTokens(used), " tokens used"] }), limit && limit > 0 && (_jsxs("span", { className: "text-muted-foreground", children: ["of ", formatTokens(limit)] }))] }), pct !== null ? (_jsx("div", { className: "bg-muted h-2 w-full overflow-hidden rounded-full", role: "progressbar", "aria-valuenow": pct, "aria-valuemin": 0, "aria-valuemax": 100, "aria-valuetext": `${pct}% of monthly token budget used`, children: _jsx("div", { className: `h-full rounded-full transition-all ${over ? 'bg-destructive' : 'bg-brand'}`, style: { width: `${pct}%` } }) })) : (_jsx("p", { className: "text-muted-foreground text-sm", children: "No monthly limit set. Usage is tracked but not capped." })), over && (_jsx("p", { className: "text-destructive mt-1 text-sm", role: "status", children: "Usage has exceeded the monthly limit." }))] }), _jsxs("div", { children: [_jsx("label", { htmlFor: limitId, className: LABEL_CLASS, children: "Monthly token limit" }), _jsx("input", { id: limitId, type: "text", inputMode: "numeric", value: monthlyTokenLimit, disabled: !canEdit, placeholder: "No limit", "aria-invalid": Boolean(budgetError), "aria-describedby": budgetError ? `${limitId}-error` : undefined, onChange: (e) => onChangeLimit(e.target.value), className: INPUT_CLASS }), budgetError ? (_jsx("p", { id: `${limitId}-error`, className: "text-destructive mt-1 text-sm", children: budgetError })) : (_jsx("p", { className: "text-muted-foreground mt-1 text-sm", children: "Leave blank for no limit. Enforcement and alerts arrive with usage metering." }))] })] })] }));
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=MonthlyUsageCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MonthlyUsageCard.js","sourceRoot":"","sources":["../../../src/views/settings/MonthlyUsageCard.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { AiProviderView } from './useAiSettings.js';
|
|
2
|
+
export interface ProviderConnectionCardProps {
|
|
3
|
+
provider: AiProviderView;
|
|
4
|
+
canEdit: boolean;
|
|
5
|
+
busy: boolean;
|
|
6
|
+
onTest: () => void;
|
|
7
|
+
onSyncModels: () => void;
|
|
8
|
+
onUpdateKey: (apiKey: string | null) => Promise<void>;
|
|
9
|
+
onUpdateBaseUrl: (baseUrl: string) => Promise<void>;
|
|
10
|
+
onDisconnect: () => void;
|
|
11
|
+
}
|
|
12
|
+
export declare function ProviderConnectionCard({ provider, canEdit, busy, onTest, onSyncModels, onUpdateKey, onUpdateBaseUrl, onDisconnect, }: ProviderConnectionCardProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
//# sourceMappingURL=ProviderConnectionCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProviderConnectionCard.d.ts","sourceRoot":"","sources":["../../../src/views/settings/ProviderConnectionCard.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAsB,cAAc,EAAE,MAAM,oBAAoB,CAAA;AA4C5E,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,cAAc,CAAA;IACxB,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,OAAO,CAAA;IACb,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,YAAY,EAAE,MAAM,IAAI,CAAA;IACxB,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACrD,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACnD,YAAY,EAAE,MAAM,IAAI,CAAA;CACzB;AAED,wBAAgB,sBAAsB,CAAC,EACrC,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,MAAM,EACN,YAAY,EACZ,WAAW,EACX,eAAe,EACf,YAAY,GACb,EAAE,2BAA2B,2CAsK7B"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { AlertTriangle, CheckCircle2, KeyRound, Loader2, Lock, Plug, RefreshCw, Trash2, } from 'lucide-react';
|
|
4
|
+
import { useId, useState } from 'react';
|
|
5
|
+
import { ConfirmDangerousSettingDialog } from './components.js';
|
|
6
|
+
const INPUT_CLASS = 'w-full rounded-md border border-border bg-input-background px-3 py-2 text-base text-foreground focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-60';
|
|
7
|
+
const LABEL_CLASS = 'mb-1 flex items-center gap-2 text-sm font-medium text-foreground';
|
|
8
|
+
const STATUS_META = {
|
|
9
|
+
connected: { label: 'Connected', tone: 'ok' },
|
|
10
|
+
invalid_key: { label: 'Invalid key', tone: 'error' },
|
|
11
|
+
rate_limited: { label: 'Rate limited', tone: 'warn' },
|
|
12
|
+
provider_down: { label: 'Provider unavailable', tone: 'warn' },
|
|
13
|
+
needs_setup: { label: 'Needs API key', tone: 'idle' },
|
|
14
|
+
unknown: { label: 'Not tested', tone: 'idle' },
|
|
15
|
+
};
|
|
16
|
+
function StatusPill({ status }) {
|
|
17
|
+
const meta = STATUS_META[status];
|
|
18
|
+
const toneClass = meta.tone === 'ok'
|
|
19
|
+
? 'border-success/30 bg-success/10 text-success'
|
|
20
|
+
: meta.tone === 'error'
|
|
21
|
+
? 'border-destructive/30 bg-destructive/10 text-destructive'
|
|
22
|
+
: meta.tone === 'warn'
|
|
23
|
+
? 'border-warning/30 bg-warning/10 text-warning'
|
|
24
|
+
: 'border-border bg-muted text-muted-foreground';
|
|
25
|
+
return (_jsxs("span", { className: `inline-flex items-center gap-1.5 rounded-full border px-2.5 py-0.5 text-xs font-medium ${toneClass}`, children: [meta.tone === 'ok' ? (_jsx(CheckCircle2, { size: 12, "aria-hidden": "true" })) : meta.tone === 'error' ? (_jsx(AlertTriangle, { size: 12, "aria-hidden": "true" })) : (_jsx(Plug, { size: 12, "aria-hidden": "true" })), meta.label] }));
|
|
26
|
+
}
|
|
27
|
+
export function ProviderConnectionCard({ provider, canEdit, busy, onTest, onSyncModels, onUpdateKey, onUpdateBaseUrl, onDisconnect, }) {
|
|
28
|
+
const keyId = useId();
|
|
29
|
+
const baseUrlId = useId();
|
|
30
|
+
const [keyInput, setKeyInput] = useState('');
|
|
31
|
+
const [baseUrlInput, setBaseUrlInput] = useState(provider.baseUrl ?? '');
|
|
32
|
+
const [confirmKey, setConfirmKey] = useState(false);
|
|
33
|
+
const [confirmDisconnect, setConfirmDisconnect] = useState(false);
|
|
34
|
+
const envManaged = provider.keyManagedExternally;
|
|
35
|
+
const keyEditable = canEdit && !envManaged;
|
|
36
|
+
async function applyKey() {
|
|
37
|
+
setConfirmKey(false);
|
|
38
|
+
await onUpdateKey(keyInput.trim() === '' ? null : keyInput.trim());
|
|
39
|
+
setKeyInput('');
|
|
40
|
+
}
|
|
41
|
+
return (_jsxs("div", { className: "border-border bg-card rounded-lg border p-4", children: [_jsxs("div", { className: "mb-3 flex items-start justify-between gap-3", children: [_jsxs("div", { children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "text-foreground text-base font-medium", children: provider.displayName }), _jsx(StatusPill, { status: provider.status })] }), _jsx("p", { className: "text-muted-foreground mt-0.5 text-sm capitalize", children: provider.provider })] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsxs("button", { type: "button", onClick: onTest, disabled: !canEdit || busy, className: "border-border text-foreground hover:bg-accent inline-flex items-center gap-1.5 rounded-md border px-3 py-1.5 text-sm transition-colors disabled:cursor-not-allowed disabled:opacity-60", children: [busy ? (_jsx(Loader2, { size: 14, className: "animate-spin", "aria-hidden": "true" })) : (_jsx(Plug, { size: 14, "aria-hidden": "true" })), "Test connection"] }), _jsxs("button", { type: "button", onClick: onSyncModels, disabled: !canEdit || busy, "aria-label": `Refresh models for ${provider.displayName}`, className: "border-border text-foreground hover:bg-accent inline-flex items-center gap-1.5 rounded-md border px-3 py-1.5 text-sm transition-colors disabled:cursor-not-allowed disabled:opacity-60", children: [_jsx(RefreshCw, { size: 14, "aria-hidden": "true" }), "Refresh models"] }), _jsx("button", { type: "button", onClick: () => setConfirmDisconnect(true), disabled: !canEdit || busy, "aria-label": `Disconnect ${provider.displayName}`, className: "text-muted-foreground hover:text-destructive inline-flex items-center rounded-md p-1.5 transition-colors disabled:cursor-not-allowed disabled:opacity-60", children: _jsx(Trash2, { size: 16, "aria-hidden": "true" }) })] })] }), _jsxs("div", { className: "space-y-3", children: [_jsxs("div", { children: [_jsxs("label", { htmlFor: keyId, className: LABEL_CLASS, children: [_jsx(KeyRound, { size: 13, "aria-hidden": "true" }), "API key", envManaged && (_jsxs("span", { className: "text-muted-foreground border-border bg-muted inline-flex items-center gap-1 rounded-md border px-1.5 py-0.5 text-xs", children: [_jsx(Lock, { size: 11, "aria-hidden": "true" }), "Managed by environment"] }))] }), envManaged ? (_jsxs("p", { className: "text-muted-foreground text-sm", children: ["This key is set via an environment variable and can't be edited here.", provider.apiKeyLast4 ? ` Ends in ••••${provider.apiKeyLast4}.` : ''] })) : (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("input", { id: keyId, type: "password", autoComplete: "off", spellCheck: false, value: keyInput, disabled: !keyEditable || busy, placeholder: provider.hasKey
|
|
42
|
+
? `Key set ••••${provider.apiKeyLast4 ?? ''} — enter a new key to replace`
|
|
43
|
+
: 'Paste API key', onChange: (e) => setKeyInput(e.target.value), className: INPUT_CLASS }), _jsx("button", { type: "button", onClick: () => setConfirmKey(true), disabled: !keyEditable || busy || keyInput.trim() === '', className: "bg-brand text-brand-foreground inline-flex shrink-0 items-center rounded-md px-3 py-2 text-sm font-medium transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50", children: "Save key" })] }))] }), provider.provider === 'custom' && (_jsxs("div", { children: [_jsx("label", { htmlFor: baseUrlId, className: LABEL_CLASS, children: "Base URL" }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx("input", { id: baseUrlId, type: "url", value: baseUrlInput, disabled: !canEdit || busy, placeholder: "https://api.example.com/v1", onChange: (e) => setBaseUrlInput(e.target.value), className: INPUT_CLASS }), _jsx("button", { type: "button", onClick: () => onUpdateBaseUrl(baseUrlInput.trim()), disabled: !canEdit || busy || baseUrlInput.trim() === (provider.baseUrl ?? ''), className: "border-border text-foreground hover:bg-accent inline-flex shrink-0 items-center rounded-md border px-3 py-2 text-sm transition-colors disabled:cursor-not-allowed disabled:opacity-60", children: "Save" })] })] })), provider.lastTestedAt && (_jsxs("p", { className: "text-muted-foreground text-sm", children: ["Last tested ", new Date(provider.lastTestedAt).toLocaleString(), "."] }))] }), _jsx(ConfirmDangerousSettingDialog, { open: confirmKey, title: "Replace the stored API key?", description: "The new key is encrypted and replaces the existing one. Existing AI features will use it immediately.", confirmLabel: "Save key", onConfirm: applyKey, onCancel: () => setConfirmKey(false) }), _jsx(ConfirmDangerousSettingDialog, { open: confirmDisconnect, title: `Disconnect ${provider.displayName}?`, description: "This removes the stored key and model catalog for this provider. AI features that rely on it will stop working until you reconnect.", confirmLabel: "Disconnect", onConfirm: () => {
|
|
44
|
+
setConfirmDisconnect(false);
|
|
45
|
+
onDisconnect();
|
|
46
|
+
}, onCancel: () => setConfirmDisconnect(false) })] }));
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=ProviderConnectionCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProviderConnectionCard.js","sourceRoot":"","sources":["../../../src/views/settings/ProviderConnectionCard.tsx"],"names":[],"mappings":"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"}
|