chore(ui): remove debug console.log statements from dashboard (#32087)

* chore(ui): remove debug console.log statements from dashboard

Delete 463 leftover console.log/console.debug calls across 87 files in the
Admin dashboard. These logged form payloads, API responses, and render
traces into every user's browser console.

The ESLint policy already encodes the intent (no-console allows only warn
and error), so those are kept, along with the console.log = function(){}
suppression reassignments and the console.log calls that live inside
string/template literals rendered as example code snippets.

Removal used an AST codemod so only standalone console.log/console.debug
expression statements were dropped; non-statement uses (no-op chart
onValueChange props, a placeholder onClick, and a sequence-expression in
TopKeyView) were handled by hand. Ratchets the no-console lint metric from
484 to 15.

* chore(ui): drop empty blocks left after console.log removal

Greptile flagged three empty control-flow blocks (an if and an else in
chat_completion.tsx, an else in networking.tsx) left behind when their
only content was a deleted console.log. Removes those plus one more empty
if in chat_completion.tsx's catch that the review missed.

* test(ui): drop provider_info_helpers test asserting debug log

The getProviderModels debug console.log calls were removed in this PR, so
the test asserting they fire no longer applies. Remove that test and its
now-unused console.log spy; the remaining 57 tests still cover the
function's actual return-value behavior.
This commit is contained in:
ryan-crabbe-berri 2026-07-03 18:10:47 -07:00 committed by GitHub
parent 1e7dbe52c1
commit aca2428d3c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
89 changed files with 25 additions and 645 deletions

View file

@ -2,5 +2,5 @@
"@typescript-eslint/no-explicit-any": 1991,
"complexity": 128,
"max-depth": 59,
"no-console": 484
"no-console": 15
}

View file

@ -38,9 +38,7 @@ export function AccessGroupCreateModal({ visible, onCancel, onSuccess }: AccessG
},
});
})
.catch((info) => {
console.log("Validate Failed:", info);
});
.catch((info) => {});
};
return (

View file

@ -52,9 +52,7 @@ export function AccessGroupEditModal({ visible, accessGroup, onCancel, onSuccess
},
);
})
.catch((info) => {
console.log("Validate Failed:", info);
});
.catch((info) => {});
};
return (

View file

@ -150,7 +150,6 @@ const CacheDashboard: React.FC<CachePageProps> = ({ accessToken, token, userRole
};
useEffect(() => {
console.log("DATA IN CACHE DASHBOARD", data);
let newData: cacheDataItem[] = data;
if (selectedApiKeys.length > 0) {
newData = newData.filter((item) => selectedApiKeys.includes(item.api_key));
@ -180,16 +179,11 @@ const CacheDashboard: React.FC<CachePageProps> = ({ accessToken, token, userRole
// }
// ]
console.log("before processed data in cache dashboard", newData);
let llm_api_requests = 0;
let cache_hits = 0;
let cached_tokens = 0;
const processedData = newData.reduce((acc: uiData[], item) => {
console.log("Processing item:", item);
if (!item.call_type) {
console.log("Item has no call_type:", item);
item.call_type = "Unknown";
}
@ -227,8 +221,6 @@ const CacheDashboard: React.FC<CachePageProps> = ({ accessToken, token, userRole
}
setFilteredData(processedData);
console.log("PROCESSED DATA IN CACHE DASHBOARD", processedData);
}, [selectedApiKeys, selectedModels, dateValue, data]);
const handleRefreshClick = () => {
@ -242,7 +234,6 @@ const CacheDashboard: React.FC<CachePageProps> = ({ accessToken, token, userRole
NotificationsManager.info("Running cache health check...");
setHealthCheckResponse("");
const response = await cachingHealthCheckCall(accessToken !== null ? accessToken : "");
console.log("CACHING HEALTH CHECK RESPONSE", response);
setHealthCheckResponse(response);
} catch (error: any) {
console.error("Error running health check:", error);

View file

@ -24,23 +24,16 @@ const SidebarProvider = ({ setPage, defaultSelectedKey, sidebarCollapsed }: Side
useEffect(() => {
const fetchUISettings = async () => {
if (!accessToken) {
console.log("[SidebarProvider] No access token, skipping UI settings fetch");
return;
}
try {
console.log("[SidebarProvider] Fetching UI settings from /get/ui_settings");
const settings = await getUISettings(accessToken);
console.log("[SidebarProvider] UI settings response:", settings);
// API returns 'values' not 'settings'
if (settings?.values?.enabled_ui_pages_internal_users !== undefined) {
console.log("[SidebarProvider] Setting enabled pages:", settings.values.enabled_ui_pages_internal_users);
setEnabledPagesInternalUsers(settings.values.enabled_ui_pages_internal_users);
} else {
console.log(
"[SidebarProvider] No enabled_ui_pages_internal_users in response (all pages visible by default)",
);
}
if (settings?.values?.enable_projects_ui !== undefined) {

View file

@ -90,7 +90,6 @@ const keyListCall = async (accessToken: string, page: number, pageSize: number,
}
const data = await response.json();
console.log("/key/list API Response:", data);
return data;
} catch (error) {
console.error("Failed to list keys:", error);

View file

@ -34,8 +34,6 @@ const getRouterFields = async (accessToken: string): Promise<RouterFieldsRespons
try {
const url = proxyBaseUrl ? `${proxyBaseUrl}/router/fields` : `/router/fields`;
console.log("Fetching router fields from:", url);
const response = await fetch(url, {
method: "GET",
headers: {
@ -51,7 +49,6 @@ const getRouterFields = async (accessToken: string): Promise<RouterFieldsRespons
}
const data: RouterFieldsResponse = await response.json();
console.log("Fetched router fields:", data);
return data;
} catch (error) {
console.error("Failed to fetch router fields:", error);

View file

@ -77,7 +77,6 @@ export const teamListCall = async (
}
const data = await response.json();
console.log("/v2/team/list API Response:", data);
return data;
} catch (error) {
console.error("Failed to list teams:", error);
@ -225,7 +224,6 @@ const deletedTeamListCall = async (
}
const data = await response.json();
console.log("/team/list?status=deleted API Response:", data);
// Extract teams array from response if it's wrapped in a response object
// Otherwise return the data directly if it's already an array

View file

@ -387,7 +387,6 @@ const ChatUI: React.FC<ChatUIProps> = ({
useEffect(() => {
let userApiKey = apiKeySource === "session" ? accessToken : apiKey;
if (!userApiKey || !token || !userRole || !userID) {
console.log("userApiKey or token or userRole or userID is missing = ", userApiKey, token, userRole, userID);
return;
}
@ -395,13 +394,10 @@ const ChatUI: React.FC<ChatUIProps> = ({
const loadModels = async () => {
try {
if (!userApiKey) {
console.log("userApiKey is missing");
return;
}
const uniqueModels = await fetchAvailableModels(userApiKey);
console.log("Fetched models:", uniqueModels);
setModelInfo(uniqueModels);
// check for selection overlap or empty model list
@ -960,7 +956,6 @@ const ChatUI: React.FC<ChatUIProps> = ({
}
} catch (error) {
if (signal.aborted) {
console.log("Request was cancelled");
} else {
console.error("Error fetching response", error);
updateTextUI("assistant", "Error fetching response:" + error);
@ -1009,7 +1004,6 @@ const ChatUI: React.FC<ChatUIProps> = ({
}
const onModelChange = (value: string) => {
console.log(`selected ${value}`);
setSelectedModel(value);
setShowCustomModelInput(value === "custom");

View file

@ -226,7 +226,6 @@ export const makeA2ASendMessageRequest = async (
}
} catch (error) {
if (signal?.aborted) {
console.log("A2A request was cancelled");
return;
}
console.error("A2A send message error:", error);
@ -407,7 +406,6 @@ export const makeA2AStreamMessageRequest = async (
}
} catch (error) {
if (signal?.aborted) {
console.log("A2A streaming request was cancelled");
return;
}
console.error("A2A stream message error:", error);

View file

@ -66,8 +66,6 @@ export async function makeAnthropicMessagesRequest(
const stream = client.messages.stream(requestBody, { signal });
for await (const messageStreamEvent of stream) {
console.log("Stream event:", messageStreamEvent);
// Process content block deltas
if (messageStreamEvent.type === "content_block_delta") {
const delta = messageStreamEvent.delta;
@ -76,7 +74,6 @@ export async function makeAnthropicMessagesRequest(
if (!firstTokenReceived) {
firstTokenReceived = true;
const timeToFirstToken = Date.now() - startTime;
console.log("First token received! Time:", timeToFirstToken, "ms");
if (onTimingData) {
onTimingData(timeToFirstToken);
}
@ -96,7 +93,6 @@ export async function makeAnthropicMessagesRequest(
// Process usage data from message_delta events
if (messageStreamEvent.type === "message_delta" && (messageStreamEvent as any).usage && onUsageData) {
const usage = (messageStreamEvent as any).usage;
console.log("Usage data found:", usage);
const usageData: TokenUsage = {
completionTokens: usage.output_tokens,
promptTokens: usage.input_tokens,
@ -107,7 +103,6 @@ export async function makeAnthropicMessagesRequest(
}
} catch (error) {
if (signal?.aborted) {
console.log("Anthropic messages request was cancelled");
} else {
NotificationManager.fromBackend(
`Error occurred while generating model response. Please try again. Error: ${error}`,

View file

@ -20,7 +20,6 @@ export async function makeOpenAIAudioSpeechRequest(
if (isLocal !== true) {
console.log = function () {};
}
console.log("isLocal:", isLocal);
const proxyBaseUrl = customBaseUrl || getProxyBaseUrl();
const client = new openai.OpenAI({
apiKey: accessToken,
@ -49,7 +48,6 @@ export async function makeOpenAIAudioSpeechRequest(
updateUI(audioUrl, selectedModel);
} catch (error) {
if (signal?.aborted) {
console.log("Audio speech request was cancelled");
} else {
NotificationManager.fromBackend(`Error occurred while generating speech. Please try again. Error: ${error}`);
}

View file

@ -20,7 +20,6 @@ export async function makeOpenAIAudioTranscriptionRequest(
if (isLocal !== true) {
console.log = function () {};
}
console.log("isLocal:", isLocal);
const proxyBaseUrl = customBaseUrl || getProxyBaseUrl();
const client = new openai.OpenAI({
@ -31,8 +30,6 @@ export async function makeOpenAIAudioTranscriptionRequest(
});
try {
console.log("Processing audio file for transcription:", audioFile.name);
const response = await client.audio.transcriptions.create(
{
model: selectedModel,
@ -45,8 +42,6 @@ export async function makeOpenAIAudioTranscriptionRequest(
{ signal },
);
console.log("Transcription response:", response);
// The response is a transcription object with a text field
if (response && response.text) {
updateUI(response.text, selectedModel);
@ -58,7 +53,6 @@ export async function makeOpenAIAudioTranscriptionRequest(
console.error("Error making audio transcription request:", error);
if (signal?.aborted) {
console.log("Audio transcription request was cancelled");
} else {
let errorMessage = "Failed to transcribe audio";

View file

@ -57,7 +57,6 @@ export const fetchAvailableAgents = async (accessToken: string, customBaseUrl?:
}
const agents: Agent[] = await response.json();
console.log("Fetched agents:", agents);
// Sort agents alphabetically by name
agents.sort((a, b) => {

View file

@ -17,7 +17,6 @@ export async function makeOpenAIImageEditsRequest(
if (isLocal !== true) {
console.log = function () {};
}
console.log("isLocal:", isLocal);
const proxyBaseUrl = customBaseUrl || getProxyBaseUrl();
const client = new openai.OpenAI({
@ -37,7 +36,6 @@ export async function makeOpenAIImageEditsRequest(
for (let i = 0; i < imagesToProcess.length; i++) {
const image = imagesToProcess[i];
console.log(`Processing image ${i + 1} of ${imagesToProcess.length}`);
const response = await client.images.edit(
{
@ -48,8 +46,6 @@ export async function makeOpenAIImageEditsRequest(
{ signal },
);
console.log(`Response for image ${i + 1}:`, response.data);
if (response.data && response.data[0]) {
// Handle either URL or base64 data from response
if (response.data[0].url) {
@ -73,7 +69,6 @@ export async function makeOpenAIImageEditsRequest(
console.error("Error making image edit request:", error);
if (signal?.aborted) {
console.log("Image edits request was cancelled");
} else {
let errorMessage = "Failed to edit image(s)";

View file

@ -16,7 +16,6 @@ export async function makeOpenAIImageGenerationRequest(
if (isLocal !== true) {
console.log = function () {};
}
console.log("isLocal:", isLocal);
const proxyBaseUrl = customBaseUrl || getProxyBaseUrl();
const client = new openai.OpenAI({
apiKey: accessToken,
@ -34,8 +33,6 @@ export async function makeOpenAIImageGenerationRequest(
{ signal },
);
console.log(response.data);
if (response.data && response.data[0]) {
// Handle either URL or base64 data from response
if (response.data[0].url) {
@ -53,7 +50,6 @@ export async function makeOpenAIImageGenerationRequest(
}
} catch (error) {
if (signal?.aborted) {
console.log("Image generation request was cancelled");
} else {
NotificationManager.fromBackend(`Error occurred while generating image. Please try again. Error: ${error}`);
}

View file

@ -113,7 +113,6 @@ export async function makeInteractionsRequest(
}
} catch (error: unknown) {
if (signal?.aborted) {
console.log("Interactions request was cancelled");
throw error;
}
NotificationManager.fromBackend(`Error occurred while making Interactions API request. Error: ${error}`);

View file

@ -38,7 +38,6 @@ const AddPromptForm: React.FC<AddPromptFormProps> = ({ visible, onClose, accessT
try {
const values = await form.validateFields();
console.log("values: ", values);
if (!accessToken) {
NotificationsManager.fromBackend("Access token is required");
return;
@ -59,7 +58,6 @@ const AddPromptForm: React.FC<AddPromptFormProps> = ({ visible, onClose, accessT
try {
const conversionResult = await convertPromptFileToJson(accessToken, file);
console.log("Conversion result:", conversionResult);
// Prepare prompt data for creation
promptData = {

View file

@ -38,7 +38,6 @@ const PromptsPanel: React.FC<PromptsProps> = ({ accessToken, userRole }) => {
setIsLoading(true);
try {
const response: ListPromptsResponse = await getPromptsList(accessToken, selectedEnvironment);
console.log(`prompts: ${JSON.stringify(response)}`);
setPromptsList(response.prompts);
} catch (error) {
console.error("Error fetching prompts:", error);

View file

@ -177,7 +177,6 @@ export const useConversation = (prompt: any, accessToken: string | null) => {
});
} catch (error: any) {
if (error.name === "AbortError") {
console.log("Request was cancelled");
} else {
console.error("Error testing prompt:", error);
setMessages((prev) => {

View file

@ -100,8 +100,6 @@ const CreateSearchTool: React.FC<CreateSearchToolProps> = ({
: undefined,
};
console.log(`Creating search tool with payload:`, payload);
if (accessToken != null) {
const response = await createSearchTool(accessToken, payload);

View file

@ -194,7 +194,6 @@ const SearchTools: React.FC<SearchToolsProps> = ({ accessToken, userRole, userID
);
if (!accessToken || !userRole || !userID) {
console.log("Missing required authentication parameters", { accessToken, userRole, userID });
return <div className="p-6 text-center text-gray-500">Missing required authentication parameters.</div>;
}

View file

@ -69,7 +69,6 @@ const BulkEditUserModal: React.FC<BulkEditUserModalProps> = ({
);
const handleSubmit = async (formValues: any) => {
console.log("formValues", formValues);
if (!accessToken) {
NotificationsManager.fromBackend("Access token not found");
return;
@ -150,8 +149,6 @@ const BulkEditUserModal: React.FC<BulkEditUserModalProps> = ({
updateAllUsers,
);
console.log("result", result);
teamResults.push({
teamId,
success: true,

View file

@ -120,7 +120,6 @@ const ViewUserDashboard: React.FC<ViewUserDashboardProps> = ({
const model_available = await modelAvailableCall(accessToken, userID, userRole);
let available_model_names = model_available["data"].map((element: { id: string }) => element.id);
console.log("available_model_names:", available_model_names);
setUserModels(available_model_names);
} catch (error) {
console.error("Error fetching user models:", error);
@ -193,8 +192,6 @@ const ViewUserDashboard: React.FC<ViewUserDashboardProps> = ({
};
const handleEditSubmit = async (editedUser: any) => {
console.log("inside handleEditSubmit:", editedUser);
if (!accessToken || !token || !userRole || !userID) {
return;
}

View file

@ -97,7 +97,6 @@ export default function UserInfoView({
}, []);
React.useEffect(() => {
console.log(`userId: ${userId}, userRole: ${userRole}, accessToken: ${accessToken}`);
const fetchData = async () => {
try {
if (!accessToken) return;

View file

@ -7,7 +7,6 @@ function PublicModelHubTableContent() {
const searchParams = useSearchParams()!;
const key = searchParams.get("key");
const [accessToken, setAccessToken] = useState<string | null>(null);
console.log("PublicModelHubTable accessToken:", accessToken);
useEffect(() => {
if (!key) {

View file

@ -120,12 +120,10 @@ const ModelHubTable: React.FC<ModelHubTableProps> = ({ accessToken, publicPage,
try {
setLoading(true);
const _modelHubData = await modelHubCall(accessToken);
console.log("ModelHubData:", _modelHubData);
setModelHubData(_modelHubData.data);
getConfigFieldSetting(accessToken, "enable_public_model_hub")
.then((data) => {
console.log(`data: ${JSON.stringify(data)}`);
if (data.field_value == true) {
setPublicPageAllowed(true);
}
@ -145,10 +143,6 @@ const ModelHubTable: React.FC<ModelHubTableProps> = ({ accessToken, publicPage,
setLoading(true);
await getUiConfig();
const _modelHubData = await modelHubPublicModelsCall();
console.log("ModelHubData:", _modelHubData);
console.log("First model structure:", _modelHubData[0]);
console.log("Model has model_group?", _modelHubData[0]?.model_group);
console.log("Model has providers?", _modelHubData[0]?.providers);
setModelHubData(_modelHubData);
setPublicPageAllowed(true);
} catch (error) {
@ -175,7 +169,6 @@ const ModelHubTable: React.FC<ModelHubTableProps> = ({ accessToken, publicPage,
try {
setAgentLoading(true);
const response = await getAgentsList(accessToken);
console.log("AgentHubData:", response);
let agents = response.agents;
let agent_card_list = agents.map((agent: any) => ({
agent_id: agent.agent_id,
@ -205,7 +198,6 @@ const ModelHubTable: React.FC<ModelHubTableProps> = ({ accessToken, publicPage,
try {
setMcpLoading(true);
const response = await fetchMCPServers(accessToken);
console.log("MCPHubData:", response);
setMcpHubData(response);
} catch (error) {
console.error("There was an error fetching the MCP server data", error);
@ -384,9 +376,6 @@ const ModelHubTable: React.FC<ModelHubTableProps> = ({ accessToken, publicPage,
setFilteredData(newFilteredData);
}, []);
console.log("publicPage: ", publicPage);
console.log("publicPageAllowed: ", publicPageAllowed);
// If this is a public page, use the dedicated PublicModelHub component
if (publicPage && publicPageAllowed) {
return <PublicModelHub accessToken={accessToken} />;

View file

@ -94,7 +94,6 @@ const getOrganizationModels = (organization: Organization | null, userModels: st
if (organization) {
if (organization.models.length > 0) {
console.log(`organization.models: ${organization.models}`);
tempModelsToPick = organization.models;
} else {
// show all available models if the team has no models set
@ -251,9 +250,7 @@ const Teams: React.FC<TeamProps> = ({ accessToken, userID, userRole, premiumUser
const [routerSettingsKey, setRouterSettingsKey] = useState<number>(0);
useEffect(() => {
console.log(`currentOrgForCreateTeam: ${currentOrgForCreateTeam}`);
const models = getOrganizationModels(currentOrgForCreateTeam, userModels);
console.log(`models: ${models}`);
setModelsToPick(models);
form.setFieldValue("models", []);
}, [currentOrgForCreateTeam, userModels]);
@ -431,7 +428,6 @@ const Teams: React.FC<TeamProps> = ({ accessToken, userID, userRole, premiumUser
const handleCreate = async (formValues: Record<string, any>) => {
try {
console.log(`formValues: ${JSON.stringify(formValues)}`);
if (accessToken != null) {
const newTeamAlias = formValues?.team_alias;
const existingTeamAliases = teams?.map((t) => t.team_alias) ?? [];

View file

@ -121,11 +121,7 @@ const SSOModals: React.FC<SSOModalsProps> = ({
if (isAddSSOModalVisible && accessToken) {
try {
const ssoData = await getSSOSettings(accessToken);
console.log("Raw SSO data received:", ssoData); // Debug log
if (ssoData && ssoData.values) {
console.log("SSO values:", ssoData.values); // Debug log
console.log("user_email from API:", ssoData.values.user_email); // Debug log
// Determine which SSO provider is configured
let selectedProvider = null;
if (ssoData.values.google_client_id) {
@ -175,13 +171,10 @@ const SSOModals: React.FC<SSOModalsProps> = ({
...roleMappingFields,
};
console.log("Setting form values:", formValues); // Debug log
// Clear form first, then set values with a small delay to ensure proper initialization
form.resetFields();
setTimeout(() => {
form.setFieldsValue(formValues);
console.log("Form values set, current form values:", form.getFieldsValue()); // Debug log
}, 100);
}
} catch (error) {

View file

@ -24,9 +24,6 @@ const EditSSOSettingsModal: React.FC<EditSSOSettingsModalProps> = ({ isVisible,
useEffect(() => {
if (isVisible && ssoSettings.data && ssoSettings.data.values) {
const ssoData = ssoSettings.data;
console.log("Raw SSO data received:", ssoData); // Debug log
console.log("SSO values:", ssoData.values); // Debug log
console.log("user_email from API:", ssoData.values.user_email); // Debug log
// Determine which SSO provider is configured
let selectedProvider = null;
@ -86,13 +83,10 @@ const EditSSOSettingsModal: React.FC<EditSSOSettingsModalProps> = ({ isVisible,
...teamMappingFields,
};
console.log("Setting form values:", formValues); // Debug log
// Clear form first, then set values with a small delay to ensure proper initialization
form.resetFields();
setTimeout(() => {
form.setFieldsValue(formValues);
console.log("Form values set, current form values:", form.getFieldsValue()); // Debug log
}, 100);
}
}, [isVisible, ssoSettings.data, form]);

View file

@ -54,7 +54,6 @@ export default function AddFallbacks({ accessToken, value = [], onChange }: AddF
const loadModels = async () => {
try {
const uniqueModels = await fetchAvailableModels(accessToken);
console.log("Fetched models for fallbacks:", uniqueModels);
setModelInfo(uniqueModels);
} catch (error) {
console.error("Error fetching model info for fallbacks:", error);

View file

@ -133,7 +133,6 @@ const Fallbacks: React.FC<FallbacksProps> = ({ accessToken, userRole, userID })
return;
}
getCallbacksCall(accessToken, userID, userRole).then((data) => {
console.log("callbacks", data);
let router_settings = data.router_settings;
if ("model_group_retry_policy" in router_settings) {
delete router_settings["model_group_retry_policy"];

View file

@ -216,12 +216,10 @@ const EntityUsage: React.FC<EntityUsageProps> = ({ accessToken, entityType, enti
};
const getTopAPIKeys = () => {
console.log("debugTags", { spendData });
const keySpend: { [key: string]: KeyMetricWithMetadata } = {};
spendData.results.forEach((day) => {
const { breakdown } = day;
const { entities } = breakdown;
console.log("debugTags", { entities });
const tagDictionary = Object.keys(entities).reduce((acc: { [key: string]: TagUsage[] }, entity) => {
const { api_key_breakdown } = entities[entity];
Object.keys(api_key_breakdown).forEach((key) => {
@ -234,7 +232,6 @@ const EntityUsage: React.FC<EntityUsageProps> = ({ accessToken, entityType, enti
});
return acc;
}, {});
console.log("debugTags", { tagDictionary });
Object.entries(day.breakdown.api_keys || {}).forEach(([key, metrics]) => {
if (!keySpend[key]) {
keySpend[key] = {
@ -255,7 +252,6 @@ const EntityUsage: React.FC<EntityUsageProps> = ({ accessToken, entityType, enti
tags: tagDictionary[key] || [],
},
};
console.log("debugTags", { keySpend });
}
keySpend[key].metrics.spend += metrics.metrics.spend;
keySpend[key].metrics.prompt_tokens += metrics.metrics.prompt_tokens;

View file

@ -257,31 +257,27 @@ const TopKeyView: React.FC<TopKeyViewProps> = ({ topKeys, teams, showTags = fals
</div>
)}
{isModalOpen &&
selectedKey &&
keyData &&
(console.log("Rendering modal with:", { isModalOpen, selectedKey, keyData }),
(
<div className="fixed inset-0 bg-black/50 flex items-center justify-center z-50" onClick={handleOutsideClick}>
<div className="bg-white rounded-lg shadow-xl relative w-11/12 max-w-6xl max-h-[90vh] overflow-y-auto min-h-[750px]">
{/* Close button */}
<button
onClick={handleClose}
className="absolute top-4 right-4 text-gray-500 hover:text-gray-700 focus:outline-hidden"
aria-label="Close"
>
<svg className="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" d="M6 18L18 6M6 6l12 12" />
</svg>
</button>
{isModalOpen && selectedKey && keyData && (
<div className="fixed inset-0 bg-black/50 flex items-center justify-center z-50" onClick={handleOutsideClick}>
<div className="bg-white rounded-lg shadow-xl relative w-11/12 max-w-6xl max-h-[90vh] overflow-y-auto min-h-[750px]">
{/* Close button */}
<button
onClick={handleClose}
className="absolute top-4 right-4 text-gray-500 hover:text-gray-700 focus:outline-hidden"
aria-label="Close"
>
<svg className="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" d="M6 18L18 6M6 6l12 12" />
</svg>
</button>
{/* Content */}
<div className="p-6 h-full">
<KeyInfoView keyId={selectedKey} onClose={handleClose} keyData={keyData} teams={teams} />
</div>
{/* Content */}
<div className="p-6 h-full">
<KeyInfoView keyId={selectedKey} onClose={handleClose} keyData={keyData} teams={teams} />
</div>
</div>
))}
</div>
)}
</>
);
};

View file

@ -110,14 +110,11 @@ const AddModelForm: React.FC<AddModelFormProps> = ({
<Form
form={form}
onFinish={async (values) => {
console.log("🔥 Form onFinish triggered with values:", values);
await handleOk().then(() => {
setTeamAdminSelectedTeam(null);
});
}}
onFinishFailed={(errorInfo) => {
console.log("💥 Form onFinishFailed triggered:", errorInfo);
}}
onFinishFailed={(errorInfo) => {}}
labelCol={{ span: 10 }}
wrapperCol={{ span: 16 }}
labelAlign="left"
@ -260,7 +257,6 @@ const AddModelForm: React.FC<AddModelFormProps> = ({
>
{({ getFieldValue }) => {
const credentialName = getFieldValue("litellm_credential_name");
console.log("🔑 Credential Name Changed:", credentialName);
// Only show provider specific fields if no credentials selected
if (!credentialName) {
return (

View file

@ -67,7 +67,6 @@ const AddAutoRouterTab: React.FC<AddAutoRouterTabProps> = ({ form, handleOk, acc
const loadModels = async () => {
try {
const uniqueModels = await fetchAvailableModels(accessToken);
console.log("Fetched models for auto router:", uniqueModels);
setModelInfo(uniqueModels);
} catch (error) {
console.error("Error fetching model info for auto router:", error);
@ -87,11 +86,7 @@ const AddAutoRouterTab: React.FC<AddAutoRouterTabProps> = ({ form, handleOk, acc
// Auto router specific form submit handler
const handleAutoRouterSubmit = () => {
console.log("Auto router submit triggered!");
console.log("Router type:", routerType);
const currentFormValues = form.getFieldsValue();
console.log("Form values:", currentFormValues);
// Check basic required fields first
if (!currentFormValues.auto_router_name) {
@ -123,8 +118,6 @@ const AddAutoRouterTab: React.FC<AddAutoRouterTabProps> = ({ form, handleOk, acc
form
.validateFields(["auto_router_name"])
.then((values) => {
console.log("Complexity router validation passed");
// Build the complexity router config
const submitValues = {
...values,
@ -138,7 +131,6 @@ const AddAutoRouterTab: React.FC<AddAutoRouterTabProps> = ({ form, handleOk, acc
model_access_group: currentFormValues.model_access_group,
};
console.log("Final submit values:", submitValues);
handleAddAutoRouterSubmit(submitValues, accessToken, form, handleOk);
})
.catch((error) => {
@ -179,13 +171,11 @@ const AddAutoRouterTab: React.FC<AddAutoRouterTabProps> = ({ form, handleOk, acc
form
.validateFields()
.then((values) => {
console.log("Form validation passed, submitting with values:", values);
const submitValues = {
...values,
auto_router_config: routerConfig,
model_type: "semantic_router",
};
console.log("Final submit values:", submitValues);
handleAddAutoRouterSubmit(submitValues, accessToken, form, handleOk);
})
.catch((error) => {
@ -404,7 +394,6 @@ const AddAutoRouterTab: React.FC<AddAutoRouterTabProps> = ({ form, handleOk, acc
<Button
type="primary"
onClick={() => {
console.log("Add Auto Router button clicked!");
handleAutoRouterSubmit();
}}
>

View file

@ -3,15 +3,10 @@ import NotificationManager from "../molecules/notifications_manager";
export const handleAddAutoRouterSubmit = async (values: any, accessToken: string, form: any, callback?: () => void) => {
try {
console.log("=== AUTO ROUTER SUBMIT HANDLER CALLED ===");
console.log("handling auto router submit for formValues:", values);
console.log("Model type:", values.model_type);
let autoRouterConfig: any;
if (values.model_type === "complexity_router") {
// Complexity Router configuration
console.log("Creating complexity router configuration");
autoRouterConfig = {
model_name: values.auto_router_name,
@ -25,11 +20,8 @@ export const handleAddAutoRouterSubmit = async (values: any, accessToken: string
},
model_info: {},
};
console.log("Complexity router config:", values.complexity_router_config);
} else {
// Semantic Router configuration (existing behavior)
console.log("Creating semantic router configuration");
autoRouterConfig = {
model_name: values.auto_router_name,
@ -47,8 +39,6 @@ export const handleAddAutoRouterSubmit = async (values: any, accessToken: string
} else if (values.custom_embedding_model) {
autoRouterConfig.litellm_params.auto_router_embedding_model = values.custom_embedding_model;
}
console.log("Semantic router config (stringified):", autoRouterConfig.litellm_params.auto_router_config);
}
// Add team information if provided
@ -61,12 +51,8 @@ export const handleAddAutoRouterSubmit = async (values: any, accessToken: string
autoRouterConfig.model_info.access_groups = values.model_access_group;
}
console.log("Auto router configuration to be created:", autoRouterConfig);
// Create the auto router using the same model creation endpoint
console.log("Calling modelCreateCall...");
const response: any = await modelCreateCall(accessToken, autoRouterConfig as Model);
console.log(`response for auto router create call:`, response);
// Show success notification
const routerTypeName = values.model_type === "complexity_router" ? "Complexity Router" : "Semantic Router";

View file

@ -4,8 +4,6 @@ import { provider_map } from "../provider_info_helpers";
export const prepareModelAddRequest = async (formValues: Record<string, any>, accessToken: string, form: any) => {
try {
console.log("handling submit for formValues:", formValues);
// Get model mappings and safely remove from formValues
const modelMappings = formValues["model_mappings"] || [];
if ("model_mappings" in formValues) {
@ -88,7 +86,6 @@ export const prepareModelAddRequest = async (formValues: Record<string, any>, ac
// Iterate through the key-value pairs in formValues
litellmParamsObj["model"] = mapping.litellm_model;
console.log("formValues add deployment:", formValues);
for (const [key, value] of Object.entries(formValues)) {
if (value === "") {
continue;
@ -100,11 +97,9 @@ export const prepareModelAddRequest = async (formValues: Record<string, any>, ac
if (key == "model_name") {
litellmParamsObj["model"] = value;
} else if (key == "custom_llm_provider") {
console.log("custom_llm_provider:", value);
const providerKey = value as string;
const mappingResult = provider_map[providerKey as keyof typeof provider_map] ?? providerKey.toLowerCase();
litellmParamsObj["custom_llm_provider"] = mappingResult;
console.log("custom_llm_provider mappingResult:", mappingResult);
} else if (key == "model") {
continue;
}
@ -117,7 +112,6 @@ export const prepareModelAddRequest = async (formValues: Record<string, any>, ac
} else if (key === "model_access_group") {
modelInfoObj["access_groups"] = value;
} else if (key == "mode") {
console.log("placing mode in modelInfo");
modelInfoObj["mode"] = value;
// remove "mode" from litellmParams
@ -125,7 +119,6 @@ export const prepareModelAddRequest = async (formValues: Record<string, any>, ac
} else if (key === "custom_model_name") {
litellmParamsObj["model"] = value;
} else if (key == "litellm_extra_params") {
console.log("litellm_extra_params:", value);
let litellmExtraParams = {};
if (value && value != undefined) {
try {
@ -142,7 +135,6 @@ export const prepareModelAddRequest = async (formValues: Record<string, any>, ac
}
}
} else if (key == "model_info_params") {
console.log("model_info_params:", value);
let modelInfoParams = {};
if (value && value != undefined) {
try {
@ -206,7 +198,6 @@ export const handleAddModelSubmit = async (values: any, accessToken: string, for
};
const response: any = await modelCreateCall(accessToken, new_model);
console.log(`response for model create call: ${response["data"]}`);
}
callback && callback();

View file

@ -42,19 +42,15 @@ const ModelConnectionTest: React.FC<ModelConnectionTestProps> = ({
await new Promise((resolve) => setTimeout(resolve, 100));
try {
console.log("Testing connection with form values:", formValues);
const result = await prepareModelAddRequest(formValues, accessToken, null);
if (!result) {
console.log("No result from prepareModelAddRequest");
setError("Failed to prepare model data. Please check your form inputs.");
setIsSuccess(false);
setIsLoading(false);
return;
}
console.log("Result from prepareModelAddRequest:", result);
const { litellmParamsObj, modelInfoObj, modelName: returnedModelName } = result[0];
const response = await testConnectionRequest(accessToken, litellmParamsObj, modelInfoObj, modelInfoObj?.mode);

View file

@ -70,8 +70,6 @@ const mapFieldMetadataToUiField = (field: ProviderCredentialFieldMetadata): Prov
const providerFieldsByDisplayName: Record<string, ProviderCredentialField[]> = {};
export const createCredentialFromModel = (provider: string, modelData: any): CredentialItem => {
console.log("provider", provider);
console.log("modelData", modelData);
const enumKey = Object.keys(provider_map).find((key) => provider_map[key].toLowerCase() === provider.toLowerCase());
if (!enumKey) {
throw new Error(`Provider ${provider} not found in provider_map`);
@ -80,13 +78,9 @@ export const createCredentialFromModel = (provider: string, modelData: any): Cre
const providerFields = providerFieldsByDisplayName[providerDisplayName] || [];
const credentialValues: object = {};
console.log("providerFields", providerFields);
// Go through each field defined for this provider
providerFields.forEach((field) => {
const value = modelData.litellm_params[field.key];
console.log("field", field);
console.log("value", value);
if (value !== undefined) {
(credentialValues as Record<string, string>)[field.key] = value.toString();
}

View file

@ -67,7 +67,6 @@ const AddPassThroughEndpoint: React.FC<AddFallbacksProps> = ({
};
const addPassThrough = async (formValues: Record<string, any>) => {
console.log("addPassThrough called with:", formValues);
setIsLoading(true);
try {
// Remove auth field if not premium user
@ -85,8 +84,6 @@ const AddPassThroughEndpoint: React.FC<AddFallbacksProps> = ({
formValues.methods = selectedMethods;
}
console.log(`formValues: ${JSON.stringify(formValues)}`);
const response = await createPassThroughEndpoint(accessToken, formValues);
// Use the created endpoint from the API response (includes the generated ID)
@ -384,7 +381,6 @@ const AddPassThroughEndpoint: React.FC<AddFallbacksProps> = ({
variant="primary"
loading={isLoading}
onClick={() => {
console.log("Submit button clicked");
form.submit();
}}
>

View file

@ -40,7 +40,6 @@ const AlertingSettings: React.FC<AlertingSettingsProps> = ({ accessToken, premiu
setting.field_name === fieldName ? { ...setting, field_value: newValue } : setting,
);
console.log(`updatedSettings: ${JSON.stringify(updatedSettings)}`);
setAlertingSettings(updatedSettings);
};
@ -49,7 +48,6 @@ const AlertingSettings: React.FC<AlertingSettingsProps> = ({ accessToken, premiu
return;
}
console.log(`formValues: ${formValues}`);
let fieldValue = formValues;
if (fieldValue == null || fieldValue == undefined) {
@ -64,9 +62,7 @@ const AlertingSettings: React.FC<AlertingSettingsProps> = ({ accessToken, premiu
// Merge initialFormValues with actual formValues
const mergedFormValues = { ...formValues, ...initialFormValues };
console.log(`mergedFormValues: ${JSON.stringify(mergedFormValues)}`);
const { slack_alerting, ...alertingArgs } = mergedFormValues;
console.log(`slack_alerting: ${slack_alerting}, alertingArgs: ${JSON.stringify(alertingArgs)}`);
try {
updateConfigFieldSetting(accessToken, "alerting_args", alertingArgs);
if (typeof slack_alerting === "boolean") {
@ -104,7 +100,6 @@ const AlertingSettings: React.FC<AlertingSettingsProps> = ({ accessToken, premiu
setAlertingSettings(updatedSettings);
} catch (error) {
// do something
console.log("ERROR OCCURRED!");
}
};

View file

@ -29,7 +29,6 @@ const DynamicForm: React.FC<DynamicFormProps> = ({
const [form] = Form.useForm();
const onFinish = () => {
console.log(`INSIDE ONFINISH`);
const formData = form.getFieldsValue();
const isEmpty = Object.entries(formData).every(([key, value]) => {
if (typeof value === "boolean") {
@ -37,11 +36,9 @@ const DynamicForm: React.FC<DynamicFormProps> = ({
}
return value === "" || value === null || value === undefined;
});
console.log(`formData: ${JSON.stringify(formData)}, isEmpty: ${isEmpty}`);
if (!isEmpty) {
handleSubmit(formData);
} else {
console.log("Some form fields are empty.");
}
};

View file

@ -349,14 +349,11 @@ const BulkCreateUsersButton: React.FC<BulkCreateUsersProps> = ({
cleanUser.metadata = user.metadata.trim();
}
console.log("Sending user data:", cleanUser);
const response = await userCreateCall(accessToken, null, cleanUser);
console.log("Full response:", response);
// Check if response has key or user_id, indicating success
if (response && (response.key || response.user_id)) {
anySuccessful = true;
console.log("Success case triggered");
const user_id = response.data?.user_id || response.user_id;
// Create invitation link for the user
@ -411,9 +408,7 @@ const BulkCreateUsersButton: React.FC<BulkCreateUsersProps> = ({
);
}
} else {
console.log("Error case triggered");
const errorMessage = response?.error || "Failed to create user";
console.log("Error message:", errorMessage);
setParsedData((current) =>
current.map((u, i) => (i === index ? { ...u, status: "failed", error: errorMessage } : u)),
);

View file

@ -11,10 +11,7 @@ interface MCPEventsDisplayProps {
}
const MCPEventsDisplay: React.FC<MCPEventsDisplayProps> = ({ events, className }) => {
console.log("MCPEventsDisplay: Received events:", events);
if (!events || events.length === 0) {
console.log("MCPEventsDisplay: No events, returning null");
return null;
}
@ -32,11 +29,7 @@ const MCPEventsDisplay: React.FC<MCPEventsDisplayProps> = ({ events, className }
(event) => event.type === "response.output_item.done" && event.item?.type === "mcp_call",
);
console.log("MCPEventsDisplay: toolsEvent:", toolsEvent);
console.log("MCPEventsDisplay: mcpCallEvents:", mcpCallEvents);
if (!toolsEvent && mcpCallEvents.length === 0) {
console.log("MCPEventsDisplay: No valid events found, returning null");
return null;
}

View file

@ -46,10 +46,8 @@ export const litellmModeMapping: Record<ModelMode, EndpointType> = {
export const getEndpointType = (mode: string): EndpointType => {
// Check if the string mode exists as a key in ModelMode enum
console.log("getEndpointType:", mode);
if (Object.values(ModelMode).includes(mode as ModelMode)) {
const endpointType = litellmModeMapping[mode as ModelMode];
console.log("endpointType:", endpointType);
return endpointType;
}

View file

@ -42,7 +42,6 @@ const ModelSelector: React.FC<ModelSelectorProps> = ({
const loadModels = async () => {
try {
const uniqueModels = await fetchAvailableModels(accessToken);
console.log("Fetched models for selector:", uniqueModels);
if (uniqueModels.length > 0) {
setModelInfo(uniqueModels);

View file

@ -14,7 +14,5 @@ export const fetchTeams = async (
givenTeams = await teamListCall(accessToken, currentOrg?.organization_id || null);
}
console.log(`givenTeams: ${givenTeams}`);
setTeams(givenTeams);
};

View file

@ -32,7 +32,6 @@ const EmailSettings: React.FC<EmailSettingsProps> = ({ accessToken, premiumUser,
});
});
console.log("updatedVariables", updatedVariables);
//filter out null / undefined values for updatedVariables
const payload = {

View file

@ -57,7 +57,6 @@ const GuardrailsPanel: React.FC<GuardrailsPanelProps> = ({ accessToken, userRole
setIsLoading(true);
try {
const response: GuardrailsResponse = await getGuardrailsList(accessToken);
console.log(`guardrails: ${JSON.stringify(response)}`);
setGuardrailsList(response.guardrails);
} catch (error) {
console.error("Error fetching guardrails:", error);

View file

@ -22,9 +22,7 @@ const GuardrailSelector: React.FC<GuardrailSelectorProps> = ({ onChange, value,
setLoading(true);
try {
const response = await getGuardrailsList(accessToken);
console.log("Guardrails response:", response);
if (response.guardrails) {
console.log("Guardrails data:", response.guardrails);
setGuardrails(response.guardrails);
}
} catch (error) {
@ -38,7 +36,6 @@ const GuardrailSelector: React.FC<GuardrailSelectorProps> = ({ onChange, value,
}, [accessToken]);
const handleGuardrailChange = (selectedValues: string[]) => {
console.log("Selected guardrails:", selectedValues);
onChange(selectedValues);
};
@ -54,7 +51,6 @@ const GuardrailSelector: React.FC<GuardrailSelectorProps> = ({ onChange, value,
className={className}
allowClear
options={guardrails.map((guardrail) => {
console.log("Mapping guardrail:", guardrail);
return {
label: `${guardrail.guardrail_name}`,
value: guardrail.guardrail_name,

View file

@ -594,19 +594,14 @@ const AddGuardrailForm: React.FC<AddGuardrailFormProps> = ({ visible, onClose, a
* the selected provider and ONLY pass those recognised params.
******************************/
console.log("values: ", JSON.stringify(values));
// Use pre-fetched provider params to copy recognised params
// Skip for providers that handle their own litellm_params (llm_as_a_judge, tool_permission, content filter, PII)
if (providerParams && selectedProvider && guardrailProvider !== "llm_as_a_judge") {
const providerKey = guardrail_provider_map[selectedProvider]?.toLowerCase();
console.log("providerKey: ", providerKey);
const providerSpecificParams = providerParams[providerKey] || {};
const allowedParams = new Set<string>();
console.log("providerSpecificParams: ", JSON.stringify(providerSpecificParams));
// Add root-level parameters (like api_key, api_base, api_version)
Object.keys(providerSpecificParams).forEach((paramName) => {
if (paramName !== "optional_params") {
@ -621,7 +616,6 @@ const AddGuardrailForm: React.FC<AddGuardrailFormProps> = ({ visible, onClose, a
});
}
console.log("allowedParams: ", allowedParams);
allowedParams.forEach((paramName) => {
// Check for both direct parameter name and nested optional_params object
let paramValue = values[paramName];
@ -639,7 +633,6 @@ const AddGuardrailForm: React.FC<AddGuardrailFormProps> = ({ visible, onClose, a
throw new Error("No access token available");
}
console.log("Sending guardrail data:", JSON.stringify(guardrailData));
await createGuardrailCall(accessToken, guardrailData);
NotificationsManager.success("Guardrail created successfully");
@ -917,8 +910,6 @@ const AddGuardrailForm: React.FC<AddGuardrailFormProps> = ({ visible, onClose, a
return null;
}
console.log("guardrail_provider_map: ", guardrail_provider_map);
console.log("selectedProvider: ", selectedProvider);
const providerKey = guardrail_provider_map[selectedProvider]?.toLowerCase();
const providerFields = providerParams && providerParams[providerKey];

View file

@ -127,12 +127,8 @@ const ContentCategoryConfiguration: React.FC<ContentCategoryConfigurationProps>
// Fetch the content for preview
setLoadingPreviewYaml(true);
console.log(`Fetching content for category: ${selectedCategoryName}`, {
accessToken: accessToken ? "present" : "missing",
});
getCategoryYaml(accessToken, selectedCategoryName)
.then((data) => {
console.log(`Successfully fetched content for ${selectedCategoryName}:`, data);
let content = data.yaml_content;
// Format JSON content for better readability

View file

@ -264,9 +264,7 @@ const ContentFilterManager: React.FC<ContentFilterManagerProps> = ({
onBlockedWordUpdate={(id, field, value) =>
setBlockedWords(blockedWords.map((w) => (w.id === id ? { ...w, [field]: value } : w)))
}
onFileUpload={(content: string) => {
console.log("File uploaded:", content);
}}
onFileUpload={(content: string) => {}}
accessToken={accessToken}
contentCategories={guardrailSettings.content_filter_settings.content_categories || []}
selectedContentCategories={selectedContentCategories}

View file

@ -205,8 +205,6 @@ const EditGuardrailForm: React.FC<EditGuardrailFormProps> = ({
throw new Error("No access token available");
}
console.log("Sending guardrail update data:", JSON.stringify(guardrailData));
// Call the update endpoint
const url = `/guardrails/${guardrailId}`;
const response = await fetch(url, {

View file

@ -383,9 +383,6 @@ const GuardrailInfoView: React.FC<GuardrailInfoProps> = ({ guardrailId, onClose,
(key) => guardrail_provider_map[key] === guardrailData.litellm_params?.guardrail,
);
console.log("values: ", JSON.stringify(values));
console.log("currentProvider: ", currentProvider);
// Use pre-fetched provider params to copy recognised params
const isToolPermissionGuardrail = guardrailData.litellm_params?.guardrail === "tool_permission";
if (guardrailProviderSpecificParams && currentProvider && !isToolPermissionGuardrail) {
@ -394,8 +391,6 @@ const GuardrailInfoView: React.FC<GuardrailInfoProps> = ({ guardrailId, onClose,
const allowedParams = new Set<string>();
console.log("providerSpecificParams: ", JSON.stringify(providerSpecificParams));
// Add root-level parameters (like api_key, api_base, api_version)
Object.keys(providerSpecificParams).forEach((paramName) => {
if (paramName !== "optional_params") {
@ -410,7 +405,6 @@ const GuardrailInfoView: React.FC<GuardrailInfoProps> = ({ guardrailId, onClose,
});
}
console.log("allowedParams: ", allowedParams);
allowedParams.forEach((paramName) => {
if (paramName === "patterns" || paramName === "blocked_words" || paramName === "categories") {
return;

View file

@ -134,7 +134,6 @@ const GuardrailOptionalParams: React.FC<GuardrailOptionalParamsProps> = ({
const renderField = (fieldKey: string, field: ProviderParam) => {
const fullFieldKey = `${parentFieldKey}.${fieldKey}`;
const value = values?.[fieldKey];
console.log("value", value);
// Handle dict fields separately since they manage their own Form.Items
if (field.type === "dict" && field.dict_key_options) {
return (

View file

@ -61,7 +61,6 @@ const GuardrailProviderFields: React.FC<GuardrailProviderFieldsProps> = ({
try {
const data = await getGuardrailProviderSpecificParams(accessToken);
console.log("Provider params API response:", data);
setProviderParams(data);
// Populate dynamic providers from API response
@ -102,15 +101,10 @@ const GuardrailProviderFields: React.FC<GuardrailProviderFieldsProps> = ({
// Get parameters for the selected provider
const providerFields = providerParams && providerParams[providerKey];
console.log("Provider key:", providerKey);
console.log("Provider fields:", providerFields);
if (!providerFields || Object.keys(providerFields).length === 0) {
return <div>No configuration fields available for this provider.</div>;
}
console.log("Value:", value);
// Fields to skip for content filter provider (handled in dedicated steps)
const contentFilterFieldsToSkip = new Set([
"patterns",
@ -129,7 +123,6 @@ const GuardrailProviderFields: React.FC<GuardrailProviderFieldsProps> = ({
return Object.entries(fields).map(([fieldKey, field]) => {
const fullFieldKey = parentKey ? `${parentKey}.${fieldKey}` : fieldKey;
const fieldValue = parentValue ? parentValue[fieldKey] : value?.[fieldKey];
console.log("Field value:", fieldValue);
// Skip ui_friendly_name - it's metadata for the UI dropdown, not a user configuration field
if (fieldKey === "ui_friendly_name") {
return null;

View file

@ -49,8 +49,6 @@ export const getModelDisplayName = (model: string) => {
export const unfurlWildcardModelsInList = (teamModels: string[], allModels: string[]): string[] => {
const wildcardDisplayNames: string[] = [];
const expandedModels: string[] = [];
console.log("teamModels", teamModels);
console.log("allModels", allModels);
teamModels.forEach((teamModel) => {
if (teamModel.endsWith("/*")) {

View file

@ -166,9 +166,7 @@ const useKeyList = ({
const fetchKeys = async (params: Record<string, unknown> = {}): Promise<void> => {
try {
console.log("calling fetchKeys");
if (!accessToken) {
console.log("accessToken", accessToken);
return;
}
setIsLoading(true);
@ -189,7 +187,6 @@ const useKeyList = ({
null,
expand.join(","),
);
console.log("data", data);
setKeyData(data);
setError(null);
} catch (err) {
@ -201,16 +198,6 @@ const useKeyList = ({
useEffect(() => {
fetchKeys();
console.log(
"selectedTeam",
selectedTeam,
"currentOrg",
currentOrg,
"accessToken",
accessToken,
"selectedKeyAlias",
selectedKeyAlias,
);
}, [selectedTeam, currentOrg, accessToken, selectedKeyAlias, createClicked]);
const setKeys = (newKeysOrUpdater: KeyResponse[] | ((prevKeys: KeyResponse[]) => KeyResponse[])) => {

View file

@ -476,11 +476,6 @@ const Sidebar: React.FC<SidebarProps> = ({
// Debug logging
if (enabledPagesInternalUsers !== null && enabledPagesInternalUsers !== undefined) {
console.log("[LeftNav] Filtering with enabled pages:", {
userRole,
isAdmin,
enabledPagesInternalUsers,
});
}
return items
@ -497,7 +492,6 @@ const Sidebar: React.FC<SidebarProps> = ({
// Check enabled pages for internal users (non-admins)
if (!isAdmin && enabledPagesInternalUsers !== null && enabledPagesInternalUsers !== undefined) {
const isIncluded = enabledPagesInternalUsers.includes(item.page);
console.log(`[LeftNav] Page "${item.page}" (${item.key}): ${isIncluded ? "VISIBLE" : "HIDDEN"}`);
return isIncluded;
}
return true;
@ -535,13 +529,11 @@ const Sidebar: React.FC<SidebarProps> = ({
if (item.children && item.children.length > 0) {
const hasVisibleChildren = item.children.some((child) => enabledPagesInternalUsers.includes(child.page));
if (hasVisibleChildren) {
console.log(`[LeftNav] Parent "${item.page}" (${item.key}): VISIBLE (has visible children)`);
return true;
}
}
const isIncluded = enabledPagesInternalUsers.includes(item.page);
console.log(`[LeftNav] Page "${item.page}" (${item.key}): ${isIncluded ? "VISIBLE" : "HIDDEN"}`);
return isIncluded;
}

View file

@ -37,7 +37,6 @@ export async function makeOpenAIChatCompletionRequest(
if (isLocal !== true) {
console.log = function () {};
}
console.log("isLocal:", isLocal);
const proxyBaseUrl = customBaseUrl || getProxyBaseUrl();
// Prepare headers with tags and trace ID
const headers: Record<string, string> = {};
@ -134,25 +133,17 @@ export async function makeOpenAIChatCompletionRequest(
);
for await (const chunk of response) {
console.log("Stream chunk:", chunk);
// Process content and measure time to first token
const delta = chunk.choices[0]?.delta as any;
// Debug what's in the delta
console.log("Delta content:", chunk.choices[0]?.delta?.content);
console.log("Delta reasoning content:", delta?.reasoning_content);
// Measure time to first token for either content or reasoning_content
if (!firstTokenReceived && (chunk.choices[0]?.delta?.content || (delta && delta.reasoning_content))) {
firstTokenReceived = true;
timeToFirstToken = Date.now() - startTime;
console.log("First token received! Time:", timeToFirstToken, "ms");
if (onTimingData) {
console.log("Calling onTimingData with:", timeToFirstToken);
onTimingData(timeToFirstToken);
} else {
console.log("onTimingData callback is not defined!");
}
}
@ -165,7 +156,6 @@ export async function makeOpenAIChatCompletionRequest(
// Process image generation if present
if (delta && delta.image && onImageGenerated) {
console.log("Image generated:", delta.image);
onImageGenerated(delta.image.url, chunk.model);
}
@ -180,7 +170,6 @@ export async function makeOpenAIChatCompletionRequest(
// Check for search results in provider_specific_fields
if (delta && delta.provider_specific_fields?.search_results && onSearchResults) {
console.log("Search results found:", delta.provider_specific_fields.search_results);
onSearchResults(delta.provider_specific_fields.search_results);
}
@ -208,7 +197,6 @@ export async function makeOpenAIChatCompletionRequest(
timestamp: Date.now(),
};
onMCPEvent(toolsEvent);
console.log("MCP list_tools event sent:", toolsEvent);
}
}
@ -219,20 +207,11 @@ export async function makeOpenAIChatCompletionRequest(
if (providerFields.mcp_call_results) {
mcpMetadata.mcp_call_results = providerFields.mcp_call_results;
}
if (providerFields.mcp_list_tools || providerFields.mcp_tool_calls || providerFields.mcp_call_results) {
console.log("MCP metadata found in chunk:", {
mcp_list_tools: providerFields.mcp_list_tools ? "present" : "absent",
mcp_tool_calls: providerFields.mcp_tool_calls ? "present" : "absent",
mcp_call_results: providerFields.mcp_call_results ? "present" : "absent",
});
}
}
// Check for usage data using type assertion
const chunkWithUsage = chunk as any;
if (chunkWithUsage.usage && onUsageData) {
console.log("Usage data found:", chunkWithUsage.usage);
const usageData: TokenUsage = {
completionTokens: chunkWithUsage.usage.completion_tokens,
promptTokens: chunkWithUsage.usage.prompt_tokens,
@ -284,7 +263,6 @@ export async function makeOpenAIChatCompletionRequest(
timestamp: Date.now(),
};
onMCPEvent(callEvent);
console.log("MCP call event sent:", callEvent);
});
}
}
@ -295,9 +273,6 @@ export async function makeOpenAIChatCompletionRequest(
onTotalLatency(totalLatency);
}
} catch (error) {
if (signal?.aborted) {
console.log("Chat completion request was cancelled");
}
throw error; // Re-throw to allow the caller to handle the error
}
}

View file

@ -26,7 +26,6 @@ export interface CodeInterpreterState {
*/
export function handleCodeInterpreterCall(event: any, state: CodeInterpreterState): CodeInterpreterState {
if (event.type === "response.output_item.done" && event.item?.type === "code_interpreter_call") {
console.log("Code interpreter call completed:", event.item);
return {
code: event.item.code || "",
containerId: event.item.container_id || "",

View file

@ -13,7 +13,6 @@ export interface ModelGroup {
export const fetchAvailableModels = async (accessToken: string): Promise<ModelGroup[]> => {
try {
const fetchedModels = await modelHubCall(accessToken);
console.log("model_info:", fetchedModels);
if (fetchedModels?.data.length > 0) {
const models: ModelGroup[] = fetchedModels.data.map((item: any) => ({

View file

@ -164,8 +164,6 @@ export async function makeOpenAIResponsesRequest(
let codeInterpreterState: CodeInterpreterState = { code: "", containerId: "" };
for await (const event of response) {
console.log("Response event:", event);
// Use a type-safe approach to handle events
if (typeof event === "object" && event !== null) {
// Handle MCP events first
@ -174,8 +172,6 @@ export async function makeOpenAIResponsesRequest(
(event.type === "response.output_item.done" &&
(event.item?.type === "mcp_list_tools" || event.item?.type === "mcp_call"))
) {
console.log("MCP event received:", event);
if (onMCPEvent) {
const mcpEvent: MCPEvent = {
type: event.type,
@ -196,7 +192,6 @@ export async function makeOpenAIResponsesRequest(
// Check for MCP tool usage
if (event.type === "response.output_item.done" && event.item?.type === "mcp_call" && event.item?.name) {
mcpToolUsed = event.item.name;
console.log("MCP tool used:", mcpToolUsed);
}
// Handle code interpreter events
@ -212,7 +207,6 @@ export async function makeOpenAIResponsesRequest(
// 2) only handle actual text deltas
if (event.type === "response.output_text.delta" && typeof event.delta === "string") {
const delta = event.delta;
console.log("Text delta", delta);
if (delta.length > 0) {
updateTextUI("assistant", delta, selectedModel);
@ -220,7 +214,6 @@ export async function makeOpenAIResponsesRequest(
if (!firstTokenReceived) {
firstTokenReceived = true;
const timeToFirstToken = Date.now() - startTime;
console.log("First token received! Time:", timeToFirstToken, "ms");
if (onTimingData) {
onTimingData(timeToFirstToken);
@ -241,18 +234,13 @@ export async function makeOpenAIResponsesRequest(
if (event.type === "response.completed" && "response" in event) {
const response_obj = event.response;
const usage = response_obj.usage;
console.log("Usage data:", usage);
console.log("Response completed event:", response_obj);
// Extract response_id for session management
if (response_obj.id && onResponseId) {
console.log("Response ID for session management:", response_obj.id);
onResponseId(response_obj.id);
}
if (usage && onUsageData) {
console.log("Usage data:", usage);
// Extract usage data safely
const usageData: TokenUsage = {
completionTokens: usage.output_tokens,
@ -274,7 +262,6 @@ export async function makeOpenAIResponsesRequest(
return response;
} catch (error) {
if (signal?.aborted) {
console.log("Responses API request was cancelled");
} else {
NotificationManager.fromBackend(
`Error occurred while generating model response. Please try again. Error: ${error}`,

View file

@ -397,8 +397,6 @@ const CreateMCPServer: React.FC<CreateMCPServerProps> = ({
args: actualConfig.args,
env: actualConfig.env,
};
console.log("Parsed stdio config:", stdioFields);
} catch (error) {
NotificationsManager.fromBackend("Invalid JSON in stdio configuration");
return;
@ -456,8 +454,6 @@ const CreateMCPServer: React.FC<CreateMCPServerProps> = ({
payload.credentials = credentialsPayload;
}
console.log(`Payload: ${JSON.stringify(payload)}`);
if (accessToken != null) {
const response = isAdmin
? await createMCPServer(accessToken, payload)

View file

@ -380,7 +380,6 @@ const MCPServers: React.FC<MCPServerProps> = ({ accessToken, userRole, userID })
}, [refetch]);
if (!accessToken || !userRole || !userID) {
console.log("Missing required authentication parameters", { accessToken, userRole, userID });
return <div className="p-6 text-center text-gray-500">Missing required authentication parameters.</div>;
}

View file

@ -21,8 +21,6 @@ const ReuseCredentialsModal: React.FC<ReuseCredentialsModalProps> = ({
}) => {
const [form] = Form.useForm();
console.log(`existingCredential in add credentials tab: ${JSON.stringify(existingCredential)}`);
const handleSubmit = (values: any) => {
onAddCredential(values);
form.resetFields();

View file

@ -312,9 +312,7 @@ const HealthCheckComponent: React.FC<HealthCheckComponentProps> = ({
},
}));
}
} catch (dbError) {
console.debug("Could not fetch updated status from database (non-critical):", dbError);
}
} catch (dbError) {}
} catch (error) {
const currentTime = new Date().toLocaleString();
const rawError = error instanceof Error ? error.message : String(error);

View file

@ -57,7 +57,6 @@ const ModelGroupAliasSettings: React.FC<ModelGroupAliasSettingsProps> = ({
},
};
console.log("Saving model group alias:", aliasObject);
await setCallbacksCall(accessToken, payload);
if (onAliasUpdate) {

File diff suppressed because it is too large Load diff

View file

@ -90,8 +90,6 @@ interface UserOption {
const getPredefinedTags = (data: any[] | null) => {
let allTags = [];
console.log("data:", JSON.stringify(data));
if (data) {
for (let key of data) {
if (key["metadata"] && key["metadata"]["tags"]) {
@ -106,7 +104,6 @@ const getPredefinedTags = (data: any[] | null) => {
label: tag,
}));
console.log("uniqueTags:", uniqueTags);
return uniqueTags;
};
@ -124,7 +121,6 @@ export const fetchTeamModels = async (
if (accessToken !== null) {
const model_available = await modelAvailableCall(accessToken, userID, userRole, true, teamID, true);
let available_model_names = model_available["data"].map((element: { id: string }) => element.id);
console.log("available_model_names:", available_model_names);
return available_model_names;
}
return [];
@ -148,7 +144,6 @@ export const fetchUserModels = async (
if (accessToken !== null) {
const model_available = await modelAvailableCall(accessToken, userID, userRole);
let available_model_names = model_available["data"].map((element: { id: string }) => element.id);
console.log("available_model_names:", available_model_names);
setUserModels(available_model_names);
}
} catch (error) {
@ -554,8 +549,6 @@ const CreateKey: React.FC<CreateKeyProps> = ({ team, teams, data, addKey, autoOp
response = await keyCreateCall(accessToken, userID, formValues);
}
console.log("key create Response:", response);
// Add the data to the state in the parent component
// Also directly update the keys list in VirtualKeysTable without an API call
addKey(response);
@ -573,7 +566,6 @@ const CreateKey: React.FC<CreateKeyProps> = ({ team, teams, data, addKey, autoOp
setBudgetFallbacksKey((k) => k + 1);
localStorage.removeItem("userData" + userID);
} catch (error) {
console.log("error in create key:", error);
const simplifiedError = simplifyKeyGenerateError(error);
NotificationsManager.fromBackend(simplifiedError);
}

View file

@ -133,8 +133,6 @@ const OrganizationsTable: React.FC<OrganizationsTableProps> = ({
try {
if (!accessToken) return;
console.log(`values in organizations new create call: ${JSON.stringify(values)}`);
// Transform allowed_vector_store_ids and allowed_mcp_servers_and_groups into object_permission
if (
(values.allowed_vector_store_ids && values.allowed_vector_store_ids.length > 0) ||

View file

@ -228,8 +228,6 @@ const PassThroughSettings: React.FC<GeneralSettingsPageProps> = ({
// If a specific endpoint is selected, show the info view
if (selectedEndpointId) {
// Find the endpoint by ID to get the endpoint data for the info view
console.log("selectedEndpointId", selectedEndpointId);
console.log("generalSettings", generalSettings);
const selectedEndpoint = generalSettings.find((endpoint) => endpoint.id === selectedEndpointId);
if (!selectedEndpoint) {

View file

@ -299,7 +299,6 @@ const PoliciesPanel: React.FC<PoliciesPanelProps> = ({ accessToken, userRole })
try {
await createGuardrailCall(accessToken, guardrailDef);
createdGuardrails.push(guardrailName);
console.log(`Successfully created guardrail: ${guardrailName}`);
} catch (error) {
console.error(`Failed to create guardrail "${guardrailName}":`, error);
failedGuardrails.push(guardrailName);

View file

@ -83,9 +83,7 @@ const PriceDataReload: React.FC<PriceDataReloadProps> = ({
setLoadingStatus(true);
try {
console.log("Fetching reload status...");
const status = await getModelCostMapReloadStatus(accessToken);
console.log("Received status:", status);
setReloadStatus(status);
} catch (error) {
console.error("Failed to fetch reload status:", error);

View file

@ -217,12 +217,6 @@ describe("provider_info_helpers", () => {
});
describe("getProviderModels", () => {
const consoleSpy = vi.spyOn(console, "log").mockImplementation(() => {});
afterEach(() => {
consoleSpy.mockClear();
});
it("should return empty array when provider is not provided", () => {
const modelMap = {};
const result = getProviderModels(undefined as any, modelMap);
@ -404,13 +398,6 @@ describe("provider_info_helpers", () => {
expect(result).toEqual(["valid-model"]);
});
it("should log provider key and mapped provider when called", () => {
const modelMap = { "gpt-3.5-turbo": { litellm_provider: "openai" } };
getProviderModels(Providers.OpenAI, modelMap);
expect(consoleSpy).toHaveBeenCalledWith(`Provider key: ${Providers.OpenAI}`);
expect(consoleSpy).toHaveBeenCalledWith(`Provider mapped to: ${provider_map[Providers.OpenAI]}`);
});
it("should return empty array for provider with no matching models", () => {
const modelMap = {
"gpt-3.5-turbo": { litellm_provider: "openai" },

View file

@ -386,9 +386,7 @@ export const getPlaceholder = (selectedProvider: string): string => {
export const getProviderModels = (provider: Providers, modelMap: any): Array<string> => {
let providerKey = provider;
console.log(`Provider key: ${providerKey}`);
let custom_llm_provider = provider_map[providerKey];
console.log(`Provider mapped to: ${custom_llm_provider}`);
let providerModels: Array<string> = [];
@ -411,7 +409,6 @@ export const getProviderModels = (provider: Providers, modelMap: any): Array<str
// Special case for cohere
// we need both cohere_chat and cohere models to show on dropdown
if (providerKey == Providers.Cohere) {
console.log("Adding cohere chat models");
Object.entries(modelMap).forEach(([key, value]) => {
if (
value !== null &&
@ -427,7 +424,6 @@ export const getProviderModels = (provider: Providers, modelMap: any): Array<str
// Special case for sagemaker
// we need both sagemaker and sagemaker_chat models to show on dropdown
if (providerKey == Providers.SageMaker) {
console.log("Adding sagemaker chat models");
Object.entries(modelMap).forEach(([key, value]) => {
if (
value !== null &&

View file

@ -206,7 +206,6 @@ const PublicModelHub: React.FC<PublicModelHubProps> = ({ accessToken, isEmbedded
try {
setLoading(true);
const _modelHubData = await modelHubPublicModelsCall();
console.log("ModelHubData:", _modelHubData);
setModelHubData(Array.isArray(_modelHubData) ? _modelHubData : []);
} catch (error) {
console.error("There was an error fetching the public model data", error);
@ -220,7 +219,6 @@ const PublicModelHub: React.FC<PublicModelHubProps> = ({ accessToken, isEmbedded
try {
setAgentLoading(true);
const _agentHubData = await agentHubPublicModelsCall();
console.log("AgentHubData:", _agentHubData);
setAgentHubData(Array.isArray(_agentHubData) ? _agentHubData : []);
} catch (error) {
console.error("There was an error fetching the public agent data", error);
@ -233,7 +231,6 @@ const PublicModelHub: React.FC<PublicModelHubProps> = ({ accessToken, isEmbedded
try {
setMcpLoading(true);
const _mcpHubData = await mcpHubPublicServersCall();
console.log("MCPHubData:", _mcpHubData);
setMcpHubData(Array.isArray(_mcpHubData) ? _mcpHubData : []);
} catch (error) {
console.error("There was an error fetching the public MCP server data", error);
@ -244,7 +241,6 @@ const PublicModelHub: React.FC<PublicModelHubProps> = ({ accessToken, isEmbedded
const fetchPublicModelHubInfo = async () => {
const publicModelHubInfo = await getPublicModelHubInfo();
console.log("Public Model Hub Info:", publicModelHubInfo);
setPageTitle(publicModelHubInfo.docs_title);
setCustomDocsDescription(publicModelHubInfo.custom_docs_description);
setLitellmVersion(publicModelHubInfo.litellm_version);

View file

@ -30,7 +30,6 @@ const RouterSettings: React.FC<RouterSettingsProps> = ({ accessToken, userRole,
return;
}
getCallbacksCall(accessToken, userID, userRole).then((data) => {
console.log("callbacks", data);
let router_settings = data.router_settings;
if ("model_group_retry_policy" in router_settings) {
delete router_settings["model_group_retry_policy"];
@ -44,7 +43,6 @@ const RouterSettings: React.FC<RouterSettingsProps> = ({ accessToken, userRole,
}));
});
getRouterSettingsCall(accessToken).then((data) => {
console.log("router settings from API", data);
if (data.fields) {
// Build metadata map for easy lookup
const fieldsMap: { [key: string]: any } = {};
@ -87,7 +85,6 @@ const RouterSettings: React.FC<RouterSettingsProps> = ({ accessToken, userRole,
}
const router_settings = formValue.routerSettings;
console.log("router_settings", router_settings);
const numberKeys = new Set(["allowed_fails", "cooldown_time", "num_retries", "timeout", "retry_after"]);
const jsonKeys = new Set(["model_group_alias"]);
@ -158,14 +155,12 @@ const RouterSettings: React.FC<RouterSettingsProps> = ({ accessToken, userRole,
setRoutingStrategyArgs["ttl"] = Number(ttlElement.value);
}
console.log(`setRoutingStrategyArgs: ${setRoutingStrategyArgs}`);
return ["routing_strategy_args", setRoutingStrategyArgs];
}
return null;
})
.filter((entry) => entry !== null && entry !== undefined) as Iterable<[string, unknown]>,
);
console.log("updatedVariables", updatedVariables);
const payload = {
router_settings: updatedVariables,

View file

@ -19,7 +19,6 @@ const TagSelector: React.FC<TagSelectorProps> = ({ onChange, value, className, a
if (!accessToken) return;
try {
const response = await tagListCall(accessToken);
console.log("List tags response:", response);
setTags(Object.values(response));
} catch (error) {
console.error("Error fetching tags:", error);

View file

@ -39,7 +39,6 @@ const TagManagement: React.FC<TagProps> = ({ accessToken, userID, userRole }) =>
if (!accessToken) return;
try {
const response = await tagListCall(accessToken);
console.log("List tags response:", response);
setTags(Object.values(response));
} catch (error) {
console.error("Error fetching tags:", error);

View file

@ -51,8 +51,6 @@ const MemberModal = <T extends BaseMember>({
const [form] = Form.useForm();
const [isSubmitting, setIsSubmitting] = useState(false);
console.log("Initial Data:", initialData);
// Reset form and set initial values when modal becomes visible or initialData changes
useEffect(() => {
if (visible) {
@ -70,7 +68,6 @@ const MemberModal = <T extends BaseMember>({
// Keep array values for multi-select fields
allowed_models: (initialData as any).allowed_models || [],
};
console.log("Setting form values:", formValues);
form.setFieldsValue(formValues);
} else {
// For add mode, reset to defaults
@ -99,7 +96,6 @@ const MemberModal = <T extends BaseMember>({
return { ...acc, [key]: value };
}, {}) as T;
console.log("Submitting form data:", formData);
await Promise.resolve(onSubmit(formData));
form.resetFields();
// NotificationsManager.success(`Successfully ${mode === 'add' ? 'added' : 'updated'} member`);

View file

@ -51,7 +51,6 @@ import {
} from "./networking";
import TopKeyView from "./UsagePage/components/EntityUsage/TopKeyView";
import { formatNumberWithCommas } from "@/utils/dataUtils";
console.log("process.env.NODE_ENV", process.env.NODE_ENV);
interface UsagePageProps {
accessToken: string | null;
@ -121,7 +120,6 @@ function getTopKeys(data: Array<{ [key: string]: unknown }>): any[] {
spendKeys.sort((a, b) => Number(b.spend) - Number(a.spend));
const topKeys = spendKeys.slice(0, 5).map((k) => k.key);
console.log(`topKeys: ${Object.keys(topKeys[0])}`);
return topKeys;
}
type DataDict = { [key: string]: unknown };
@ -161,9 +159,6 @@ const UsagePage: React.FC<UsagePageProps> = ({ accessToken, token, userRole, use
let startTime = formatDate(firstDay);
let endTime = formatDate(lastDay);
console.log("keys in usage", keys);
console.log("premium user in usage", premiumUser);
function valueFormatterNumbers(number: number) {
const formatter = new Intl.NumberFormat("en-US", {
maximumFractionDigits: 0,
@ -178,7 +173,6 @@ const UsagePage: React.FC<UsagePageProps> = ({ accessToken, token, userRole, use
if (accessToken) {
try {
const proxy_settings: ProxySettings = await getProxyUISettings(accessToken);
console.log("usage tab: proxy_settings", proxy_settings);
return proxy_settings;
} catch (error) {
console.error("Error fetching proxy settings:", error);
@ -199,15 +193,12 @@ const UsagePage: React.FC<UsagePageProps> = ({ accessToken, token, userRole, use
return;
}
console.log("uiSelectedKey", uiSelectedKey);
let newTopUserData = await adminTopEndUsersCall(
accessToken,
uiSelectedKey,
startTime.toISOString(),
endTime.toISOString(),
);
console.log("End user data updated successfully", newTopUserData);
setTopUsers(newTopUserData);
};
@ -230,7 +221,6 @@ const UsagePage: React.FC<UsagePageProps> = ({ accessToken, token, userRole, use
selectedTags.length === 0 ? undefined : selectedTags,
);
setTopTagsData(top_tags.spend_per_tag);
console.log("Tag spend data updated successfully");
};
function formatDate(date: Date) {
@ -245,9 +235,6 @@ const UsagePage: React.FC<UsagePageProps> = ({ accessToken, token, userRole, use
return `${year}-${monthStr}-${dayStr}`;
}
console.log(`Start date is ${startTime}`);
console.log(`End date is ${endTime}`);
const valueFormatter = (number: number) => `$ ${formatNumberWithCommas(number, 2)}`;
const fetchAndSetData = async (
@ -515,8 +502,6 @@ const UsagePage: React.FC<UsagePageProps> = ({ accessToken, token, userRole, use
}
}
console.log("fetching data - valiue of proxySettings", proxySettings);
fetchOverallSpend();
fetchProviderSpend();
fetchTopKeys();
@ -690,7 +675,6 @@ const UsagePage: React.FC<UsagePageProps> = ({ accessToken, token, userRole, use
index="date"
colors={["cyan"]}
categories={["api_requests"]}
onValueChange={(v) => console.log(v)}
/>
</Col>
<Col>
@ -704,7 +688,6 @@ const UsagePage: React.FC<UsagePageProps> = ({ accessToken, token, userRole, use
index="date"
colors={["cyan"]}
categories={["total_tokens"]}
onValueChange={(v) => console.log(v)}
/>
</Col>
</Grid>
@ -726,7 +709,6 @@ const UsagePage: React.FC<UsagePageProps> = ({ accessToken, token, userRole, use
colors={["cyan"]}
categories={["api_requests"]}
valueFormatter={valueFormatterNumbers}
onValueChange={(v) => console.log(v)}
/>
</Col>
<Col>
@ -740,7 +722,6 @@ const UsagePage: React.FC<UsagePageProps> = ({ accessToken, token, userRole, use
colors={["cyan"]}
categories={["total_tokens"]}
valueFormatter={valueFormatterNumbers}
onValueChange={(v) => console.log(v)}
/>
</Col>
</Grid>

View file

@ -108,7 +108,6 @@ const UserDashboard: React.FC<UserDashboardProps> = ({
if (!userRole) {
return "Undefined Role";
}
console.log(`Received user role: ${userRole}`);
switch (userRole.toLowerCase()) {
case "app_owner":
return "App Owner";
@ -138,25 +137,20 @@ const UserDashboard: React.FC<UserDashboardProps> = ({
const decoded = jwtDecode(token) as { [key: string]: any };
if (decoded) {
// cast decoded to dictionary
console.log("Decoded token:", decoded);
console.log("Decoded key:", decoded.key);
// set accessToken
setAccessToken(decoded.key);
// check if userRole is defined
if (decoded.user_role) {
const formattedUserRole = formatUserRole(decoded.user_role);
console.log("Decoded user_role:", formattedUserRole);
setUserRole(formattedUserRole);
} else {
console.log("User role not defined");
}
if (decoded.user_email) {
setUserEmail(decoded.user_email);
} else {
console.log(`User Email is not set ${decoded}`);
}
}
}
@ -165,7 +159,6 @@ const UserDashboard: React.FC<UserDashboardProps> = ({
if (cachedUserModels) {
setUserModels(JSON.parse(cachedUserModels));
} else {
console.log(`currentOrg: ${JSON.stringify(currentOrg)}`);
const fetchData = async () => {
try {
const proxy_settings: ProxySettings = await getProxyUISettings(accessToken);
@ -180,11 +173,8 @@ const UserDashboard: React.FC<UserDashboardProps> = ({
const model_available = await modelAvailableCall(accessToken, userID, userRole);
// loop through model_info["data"] and create an array of element.model_name
let available_model_names = model_available["data"].map((element: { id: string }) => element.id);
console.log("available_model_names:", available_model_names);
setUserModels(available_model_names);
console.log("userModels:", userModels);
sessionStorage.setItem("userModels" + userID, JSON.stringify(available_model_names));
} catch (error: any) {
console.error("There was an error fetching the data", error);
@ -206,7 +196,6 @@ const UserDashboard: React.FC<UserDashboardProps> = ({
const fetchKeyInfo = async () => {
try {
const keyInfo = await keyInfoCall(accessToken, [accessToken]);
console.log("keyInfo: ", keyInfo);
} catch (error: any) {
if (error.message.includes("Invalid proxy server token passed")) {
gotoLogin();
@ -218,11 +207,7 @@ const UserDashboard: React.FC<UserDashboardProps> = ({
}, [accessToken]);
useEffect(() => {
console.log(
`currentOrg: ${JSON.stringify(currentOrg)}, accessToken: ${accessToken}, userID: ${userID}, userRole: ${userRole}`,
);
if (accessToken) {
console.log(`fetching teams`);
fetchTeams(accessToken, userID, userRole, currentOrg, setTeams);
}
}, [currentOrg]);
@ -231,13 +216,11 @@ const UserDashboard: React.FC<UserDashboardProps> = ({
// This code will run every time selectedTeam changes
if (keys !== null && selectedTeam !== null && selectedTeam !== undefined && selectedTeam.team_id !== null) {
let sum = 0;
console.log(`keys: ${JSON.stringify(keys)}`);
for (const key of keys) {
if (selectedTeam.hasOwnProperty("team_id") && key.team_id !== null && key.team_id === selectedTeam.team_id) {
sum += key.spend;
}
}
console.log(`sum: ${sum}`);
setTeamSpend(sum);
} else if (keys !== null) {
// sum the keys which don't have team-id set (default team)
@ -259,11 +242,8 @@ const UserDashboard: React.FC<UserDashboardProps> = ({
const baseUrl = getProxyBaseUrl();
console.log("proxyBaseUrl:", baseUrl);
const url = baseUrl ? `${baseUrl}/sso/key/generate` : `/sso/key/generate`;
console.log("Full URL:", url);
window.location.href = url;
return null;
@ -271,7 +251,6 @@ const UserDashboard: React.FC<UserDashboardProps> = ({
if (token == null) {
// user is not logged in as yet
console.log("All cookies before redirect:", document.cookie);
// Clear token cookies using the utility function
gotoLogin();
@ -280,13 +259,10 @@ const UserDashboard: React.FC<UserDashboardProps> = ({
// Check if token is expired
try {
const decoded = jwtDecode(token) as { [key: string]: any };
console.log("Decoded token:", decoded);
const expTime = decoded.exp;
const currentTime = Math.floor(Date.now() / 1000);
if (expTime && currentTime >= expTime) {
console.log("Token expired, redirecting to login");
gotoLogin();
return null;
@ -319,8 +295,6 @@ const UserDashboard: React.FC<UserDashboardProps> = ({
// other role keeps its existing ability to create keys.
const canCreateKey = userRole !== "Admin Viewer" && userRole !== "proxy_admin_viewer";
console.log("inside user dashboard, selected team", selectedTeam);
console.log("All cookies after redirect:", document.cookie);
return (
<div className="w-full mx-4 h-[75vh]">
<Grid numItems={1} className="gap-2 p-8 w-full mt-2">

View file

@ -60,10 +60,7 @@ const DocumentsTable: React.FC<DocumentsTableProps> = ({ documents, onRemove })
render: (_: any, record: DocumentUpload) => (
<div className="flex items-center space-x-2">
<Tooltip title="View details">
<EyeOutlined
className="cursor-pointer text-gray-600 hover:text-blue-500"
onClick={() => console.log("View", record)}
/>
<EyeOutlined className="cursor-pointer text-gray-600 hover:text-blue-500" onClick={() => {}} />
</Tooltip>
<Tooltip title="Copy ID">
<CopyOutlined

View file

@ -44,7 +44,6 @@ const VectorStoreManagement: React.FC<VectorStoreProps> = ({ accessToken, userID
if (!accessToken) return;
try {
const response = await vectorStoreListCall(accessToken);
console.log("List vector stores response:", response);
setVectorStores(response.data || []);
} catch (error) {
console.error("Error fetching vector stores:", error);
@ -56,7 +55,6 @@ const VectorStoreManagement: React.FC<VectorStoreProps> = ({ accessToken, userID
if (!accessToken) return;
try {
const response = await credentialListCall(accessToken);
console.log("List credentials response:", response);
setCredentials(response.credentials || []);
} catch (error) {
console.error("Error fetching credentials:", error);
@ -115,7 +113,6 @@ const VectorStoreManagement: React.FC<VectorStoreProps> = ({ accessToken, userID
};
const handleVectorStoreCreated = (vectorStoreId: string) => {
console.log("Vector store created:", vectorStoreId);
fetchVectorStores();
// Optionally switch to the manage tab
};

View file

@ -67,7 +67,6 @@ const VectorStoreInfoView: React.FC<VectorStoreInfoViewProps> = ({
if (!accessToken) return;
try {
const response = await credentialListCall(accessToken);
console.log("List credentials response:", response);
setCredentials(response.credentials || []);
} catch (error) {
console.error("Error fetching credentials:", error);

View file

@ -80,7 +80,6 @@ const ViewUserSpend: React.FC<ViewUserSpendProps> = ({ userSpend, userMaxBudget,
if (accessToken !== null) {
const model_available = await modelAvailableCall(accessToken, userID, userRole);
let available_model_names = model_available["data"].map((element: { id: string }) => element.id);
console.log("available_model_names:", available_model_names);
setUserModels(available_model_names);
}
} catch (error) {
@ -106,7 +105,6 @@ const ViewUserSpend: React.FC<ViewUserSpendProps> = ({ userSpend, userMaxBudget,
// check if "all-proxy-models" is in modelsToDisplay
if (modelsToDisplay && modelsToDisplay.includes("all-proxy-models")) {
console.log("user models:", userModels);
modelsToDisplay = userModels;
} else if (modelsToDisplay && modelsToDisplay.includes("all-team-models")) {
modelsToDisplay = selectedTeam.models;
@ -118,7 +116,6 @@ const ViewUserSpend: React.FC<ViewUserSpendProps> = ({ userSpend, userMaxBudget,
const roundedSpend = spend !== undefined ? formatNumberWithCommas(spend, 4) : null;
console.log(`spend in view user spend: ${spend}`);
return (
<div className="flex items-center">
<div className="flex justify-between gap-x-6">