Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
133 commits
Select commit Hold shift + click to select a range
60a01a3
Clean/simple implementation of multi-provider feature
zakstam Aug 25, 2025
1307f91
Clean up providers feature implementation
zakstam Aug 25, 2025
270f8cf
Fix duplicate /api/ prefix in cleanProviderService URLs
zakstam Aug 25, 2025
4c6edf4
Add full RLS with service key only access to provider schema
zakstam Aug 25, 2025
0ac5bd1
Remove KPIs/usage summary from agents page
zakstam Aug 25, 2025
def85d6
Fix timing issue in test_concurrency_limit test
zakstam Aug 25, 2025
f9a3b9f
Integrate providers_clean feature with agents service
zakstam Aug 25, 2025
48e7e33
Integrate providers_clean with main server and all services
zakstam Aug 25, 2025
bd46d28
Update all services to use provider integration
zakstam Aug 25, 2025
50a58df
Fix indentation error in source_management_service.py
zakstam Aug 25, 2025
7d7fe02
Fix async context manager scope in generate_source_title_and_metadata
zakstam Aug 25, 2025
218484b
Add ModelStatusBar component to show active models
zakstam Aug 25, 2025
629fb2a
Make ModelStatusBar more compact and ensure content isn't hidden
zakstam Aug 25, 2025
66c94e2
Add usage statistics to ModelStatusBar
zakstam Aug 25, 2025
ea21a2d
Remove obsolete provider integration layer
zakstam Aug 25, 2025
7ea3004
Introduce new provider manager system
zakstam Aug 25, 2025
9c2032e
Refactor LLM provider service for direct provider access
zakstam Aug 25, 2025
5c48a13
Refactor embedding services with extracted helper functions
zakstam Aug 25, 2025
282f2b6
Update backend services for new provider system
zakstam Aug 25, 2025
055d5b3
Update provider API and configuration
zakstam Aug 25, 2025
e346d19
Update main server and API routes
zakstam Aug 25, 2025
a0398f5
Update frontend types and components for new provider system
zakstam Aug 25, 2025
e538916
Enhance Docker Compose and add VSCode settings
zakstam Sep 3, 2025
d1c0d4d
Save models in the database
zakstam Sep 3, 2025
d266e4c
feat: Enhance OpenRouterService with cache loading and error handling
zakstam Sep 5, 2025
07849b1
Merge upstream/main into clean-multi-provider-feature
zakstam Sep 5, 2025
3aa110e
feat: Implement agents feature with hooks and service layer
zakstam Sep 5, 2025
2ce8f10
Enhance ModelSyncService with essential embedding models and streamli…
zakstam Sep 5, 2025
28b7a6e
feat: Implement multi-dimensional embedding support with dimension-sp…
zakstam Sep 6, 2025
21df803
Implement provider-agnostic embedding service with optimized configur…
zakstam Sep 6, 2025
c908aa9
Add performance and functionality tests for provider services
zakstam Sep 8, 2025
f27b270
feat: Implement optimistic updates for provider management
zakstam Sep 8, 2025
c9eb01a
Refactor code for consistency and readability
zakstam Sep 8, 2025
eeba397
chore: Remove OPTIMISTIC_UPDATES_README.md as part of documentation c…
zakstam Sep 8, 2025
bd1010d
Refactor code structure for improved readability and maintainability
zakstam Sep 9, 2025
ddd400b
chore: remove unused .mcp.json configuration file
zakstam Sep 9, 2025
ce53205
fix: update import alias for BoxIcon in GroupedKnowledgeItemCard comp…
zakstam Sep 9, 2025
092fe2c
fix: update key prop for AgentCard to include activeTab for better un…
zakstam Sep 9, 2025
60d0d3e
fix: update useOptimisticUpdate hook to improve timeout handling and …
zakstam Sep 9, 2025
bcd42ac
fix: update ModalFooter styles and button attributes for improved acc…
zakstam Sep 9, 2025
69c9109
fix: add button type and aria-label for improved accessibility in Mod…
zakstam Sep 9, 2025
617b748
fix: update SearchInput button to use aria-label for improved accessi…
zakstam Sep 9, 2025
fa14110
fix: clear animation flag after optimistic list item animations complete
zakstam Sep 9, 2025
3c946da
fix: improve scrollbar styles for better visibility and consistency
zakstam Sep 9, 2025
dfbfd9d
fix: remove auto-generated API route definitions file
zakstam Sep 9, 2025
c0fa5f8
fix: add type conversion utilities for safe value handling with fallb…
zakstam Sep 9, 2025
2771a6e
fix: format code for improved readability in credentialsService and t…
zakstam Sep 9, 2025
9acb568
fix: update setCredential method to accept unknown type for value
zakstam Sep 9, 2025
378be47
fix: standardize string quotes in agent configuration types
zakstam Sep 9, 2025
0bdd01d
fix: improve logging formatting and enhance runtime mode handling in …
zakstam Sep 9, 2025
899085d
fix: enhance sync status endpoint with response model and improved er…
zakstam Sep 9, 2025
1e17825
fix: update get_providers_list to use async fetching and improve erro…
zakstam Sep 9, 2025
318be48
fix: improve code formatting and enhance error handling in get_provid…
zakstam Sep 9, 2025
fd24ce7
fix: enhance error handling in get_providers_metadata by re-raising H…
zakstam Sep 9, 2025
b41d44f
fix: add service registry dependency and improve code formatting in b…
zakstam Sep 9, 2025
5a84149
fix: improve code formatting in get_agents_registry function
zakstam Sep 9, 2025
6796a1f
fix: normalize provider names and improve safe access to configuratio…
zakstam Sep 9, 2025
a9174ef
fix: improve input validation for daily costs endpoint
zakstam Sep 9, 2025
16dd8f1
fix: add response model to daily costs endpoint for improved type safety
zakstam Sep 9, 2025
d890d24
fix: add input validation for start_date and end_date in get_usage_su…
zakstam Sep 9, 2025
4926f2e
feat: add complete provider-agnostic schema for multi-provider embedd…
zakstam Sep 10, 2025
b49300d
fix: remove deprecated post_migrate_model_config route and update imp…
zakstam Sep 10, 2025
26f5fc3
fix: update route parameter to support path variables in deactivate_m…
zakstam Sep 10, 2025
a226f73
fix: refactor sync_models_from_sources to run model sync in background
zakstam Sep 10, 2025
94e68f5
fix: improve error handling and logging in sync_registry_with_configs…
zakstam Sep 10, 2025
663a3e5
feat: implement UsageTrackRequest schema and refactor track_usage end…
zakstam Sep 10, 2025
6637f2f
chore: remove outdated PROVIDER_INTEGRATION_CLEAN.md documentation
zakstam Sep 10, 2025
65338bc
chore: remove outdated README files for providers_clean and migrations
zakstam Sep 10, 2025
b617139
fix: improve handling of latest update timestamps in groupItemsByDoma…
zakstam Sep 10, 2025
13f6448
fix: update type for refreshTimeout to improve type safety in ModelSt…
zakstam Sep 10, 2025
13e8401
fix: update cost indicator visibility based on responsive values in M…
zakstam Sep 10, 2025
631588c
fix: refactor Badge component to use type definitions for color and v…
zakstam Sep 10, 2025
6ed9e3d
fix: enhance service loading with cancellation support in ServiceRegi…
zakstam Sep 10, 2025
53ba6a9
fix: filter service configurations to include only agents in ServiceR…
zakstam Sep 10, 2025
34bc16c
fix: update timeout reference type for improved type safety in AgentC…
zakstam Sep 10, 2025
b4702ae
fix: improve type safety for isActive calculation in AgentCard component
zakstam Sep 10, 2025
e1582e2
fix: improve auto-expand logic in CollapsibleSection component
zakstam Sep 10, 2025
9be6314
fix: enhance type safety in formatProviderMetadata function
zakstam Sep 10, 2025
0c1a301
fix: remove unused common components from agent features index
zakstam Sep 10, 2025
639dd60
fix: clamp temperature value in AdvancedSettings component to ensure …
zakstam Sep 10, 2025
92af8ec
fix: refactor range slider styles to use getRangeSliderStyle function
zakstam Sep 10, 2025
cffff83
fix: update import path for AgentConfig type in AdvancedSettings comp…
zakstam Sep 10, 2025
e56fd77
fix: validate maxTokens input value to ensure it falls within the all…
zakstam Sep 10, 2025
8110f2f
fix: update range slider styles to use object for background property
zakstam Sep 10, 2025
f30e79a
fix: update cost estimation to use per 1M tokens across models and sc…
zakstam Sep 10, 2025
914cfbe
fix: adjust onSave logic for 'ollama' provider to handle empty API key
zakstam Sep 10, 2025
8bf8050
fix: update API key input label and visibility logic for 'ollama' pro…
zakstam Sep 10, 2025
b1c0bcc
fix: improve provider search functionality by ensuring safe access to…
zakstam Sep 10, 2025
f0ebe80
fix: enhance error handling and user feedback in provider management …
zakstam Sep 10, 2025
20ac4bd
fix: improve metadata handling in provider settings and clean provide…
zakstam Sep 10, 2025
d9fca7d
fix: add 'info' status handling in OptimisticToast component
zakstam Sep 10, 2025
bba5555
fix: ensure safe access to services data in useAgents hook
zakstam Sep 10, 2025
11376bf
fix: remove optimistic update for placeholder models in useAddProvide…
zakstam Sep 10, 2025
aaa39af
fix: enhance optimistic update handling in useRemoveProvider hook by …
zakstam Sep 10, 2025
c67dfc8
fix: enhance useTestProvider hook by adding previous models and provi…
zakstam Sep 10, 2025
1ea6328
fix: update useSmartPolling to define refetchInterval as a function f…
zakstam Sep 10, 2025
a25208c
fix: refactor agentService to improve type safety and remove legacy r…
zakstam Sep 10, 2025
1f1d06a
fix: standardize string quotes and improve formatting in serviceRegis…
zakstam Sep 10, 2025
6091f3b
fix: add LegacyAgentConfig interface and improve type safety in servi…
zakstam Sep 10, 2025
7743f25
fix: enhance error handling in get_all_model_configs by logging excep…
zakstam Sep 10, 2025
0e194fb
fix: ensure HTTPException is re-raised in get_available_models for co…
zakstam Sep 10, 2025
ee05acb
fix: improve error handling and clean up route definition in get_prov…
zakstam Sep 10, 2025
272e6b9
fix: enhance service category handling in get_service_registry by usi…
zakstam Sep 10, 2025
e2ba9e7
fix: improve error handling in get_service_registry by refining excep…
zakstam Sep 10, 2025
645a77c
fix: enhance type safety and improve provider handling in initialize_…
zakstam Sep 10, 2025
5daf0fc
fix: improve code readability by formatting the provider casting logic
zakstam Sep 10, 2025
e613342
fix: refactor deprecate_service to use a Pydantic model for request p…
zakstam Sep 10, 2025
f102cae
fix: improve error handling in register_service by refining exception…
zakstam Sep 10, 2025
7f28b81
Merge upstream main into clean-multi-provider-feature
zakstam Sep 10, 2025
1601024
feat: implement Credential Service for managing application credentia…
zakstam Sep 10, 2025
cbaf0ad
fix: update embedding service to use provider configuration and optim…
zakstam Sep 10, 2025
c8292a6
Refactor code structure for improved readability and maintainability
zakstam Sep 10, 2025
dc8ca47
style: format code for improved readability in ProjectCard component …
zakstam Sep 10, 2025
bdc4371
feat: add code extraction settings endpoint and service method for fe…
zakstam Sep 10, 2025
4952e89
Refactor update_app_setting to first attempt an update before inserti…
zakstam Sep 10, 2025
e03283c
refactor: optimize provider data fetching in ProviderSettings compone…
zakstam Sep 10, 2025
581d5da
refactor: Improve code formatting and readability in CodeExtractionSe…
zakstam Sep 10, 2025
a022ef1
feat: implement permanent deletion of API keys across services and up…
zakstam Sep 10, 2025
592f30d
Fix: content versioning
zakstam Sep 10, 2025
fa4f711
refactor: enhance error responses with structured validation details …
zakstam Sep 10, 2025
6cd16a8
refactor: enhance error handling in API key deactivation with logging
zakstam Sep 10, 2025
f3db484
refactor: remove unnecessary caching of Unit of Work in DependencyCon…
zakstam Sep 10, 2025
2aa799c
refactor: update timestamp handling to use timezone-aware datetime an…
zakstam Sep 10, 2025
00acded
refactor: improve error handling in SupabaseApiKeyRepository with str…
zakstam Sep 10, 2025
f023689
refactor: update state management in APIKeysSection for improved type…
zakstam Sep 10, 2025
8442517
refactor: add loading state and UI feedback for provider bootstrappin…
zakstam Sep 10, 2025
0e82e81
refactor: enforce API key requirement for non-ollama providers in use…
zakstam Sep 10, 2025
1c21565
refactor: ensure safe merging of old agent configurations in useUpdat…
zakstam Sep 10, 2025
d48e5df
refactor: update API key requirement logic for providers in useAddPro…
zakstam Sep 10, 2025
17ff6de
refactor: replace inline parsing with utility functions for code extr…
zakstam Sep 10, 2025
3abcf5e
refactor: update ServiceStatus interface to include model and API key…
zakstam Sep 10, 2025
574dfe9
Merge upstream/main into clean-multi-provider-feature
zakstam Sep 10, 2025
4ee6194
refactor: remove GOOGLE_API_KEY references and update related logic f…
zakstam Sep 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .vite/deps/_metadata.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"hash": "31879506",
"configHash": "061878e6",
"lockfileHash": "e3b0c442",
"browserHash": "b3c26281",
"optimized": {},
"chunks": {}
}
3 changes: 3 additions & 0 deletions .vite/deps/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"type": "module"
}
6 changes: 6 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"cSpell.words": [
"Fernet",
"supabase"
]
}
37 changes: 23 additions & 14 deletions archon-ui-main/src/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,13 @@ import { KnowledgeBasePage } from './pages/KnowledgeBasePage';
import { SettingsPage } from './pages/SettingsPage';
import { MCPPage } from './pages/MCPPage';
import { OnboardingPage } from './pages/OnboardingPage';
import { AgentsPage } from './features/agents/components';
import { MainLayout } from './components/layout/MainLayout';
import { ThemeProvider } from './contexts/ThemeContext';
import { ToastProvider } from './contexts/ToastContext';
import { ToastProvider as FeaturesToastProvider } from './features/ui/components/ToastProvider';
import { SettingsProvider, useSettings } from './contexts/SettingsContext';
import { ServiceRegistryProvider } from './contexts/ServiceRegistryContext';
import { TooltipProvider } from './features/ui/primitives/tooltip';
import { ProjectPage } from './pages/ProjectPage';
import { DisconnectScreenOverlay } from './components/DisconnectScreenOverlay';
Expand Down Expand Up @@ -41,14 +43,15 @@ const queryClient = new QueryClient({
},
});

const AppRoutes = () => {
const AppRoutes = (): JSX.Element => {
const { projectsEnabled } = useSettings();

return (
<Routes>
<Route path="/" element={<KnowledgeBasePage />} />
<Route path="/onboarding" element={<OnboardingPage />} />
<Route path="/settings" element={<SettingsPage />} />
<Route path="/agents" element={<AgentsPage />} />
<Route path="/mcp" element={<MCPPage />} />
{projectsEnabled ? (
<>
Expand All @@ -62,20 +65,22 @@ const AppRoutes = () => {
);
};

const AppContent = () => {
const AppContent = (): JSX.Element => {
const [disconnectScreenActive, setDisconnectScreenActive] = useState(false);
const [disconnectScreenDismissed, setDisconnectScreenDismissed] = useState(false);
const [disconnectScreenDismissed, setDisconnectScreenDismissed] =
useState(false);
const [disconnectScreenSettings, setDisconnectScreenSettings] = useState({
enabled: true,
delay: 10000
delay: 10000,
});
const [migrationBannerDismissed, setMigrationBannerDismissed] = useState(false);
const [migrationBannerDismissed, setMigrationBannerDismissed] =
useState(false);
const migrationStatus = useMigrationStatus();

useEffect(() => {
// Load initial settings
const settings = serverHealthService.getSettings();
setDisconnectScreenSettings(settings);
setDisconnectScreenSettings((prev) => ({ ...prev, ...settings }));

// Stop any existing monitoring before starting new one to prevent multiple intervals
serverHealthService.stopMonitoring();
Expand All @@ -92,15 +97,15 @@ const AppContent = () => {
setDisconnectScreenDismissed(false);
// Refresh the page to ensure all data is fresh
window.location.reload();
}
},
});

return () => {
serverHealthService.stopMonitoring();
};
}, [disconnectScreenDismissed]);

const handleDismissDisconnectScreen = () => {
const handleDismissDisconnectScreen = (): void => {
setDisconnectScreenActive(false);
setDisconnectScreenDismissed(true);
};
Expand All @@ -113,7 +118,9 @@ const AppContent = () => {
{/* Migration Banner - shows when backend is up but DB schema needs work */}
{migrationStatus.migrationRequired && !migrationBannerDismissed && (
<MigrationBanner
message={migrationStatus.message || "Database migration required"}
message={
migrationStatus.message || "Database migration required"
}
onDismiss={() => setMigrationBannerDismissed(true)}
/>
)}
Expand All @@ -129,23 +136,25 @@ const AppContent = () => {
);
};

export function App() {
export function App(): JSX.Element {
return (
<QueryClientProvider client={queryClient}>
<ThemeProvider>
<ToastProvider>
<FeaturesToastProvider>
<TooltipProvider>
<SettingsProvider>
<AppContent />
<ServiceRegistryProvider>
<AppContent />
</ServiceRegistryProvider>
</SettingsProvider>
</TooltipProvider>
</FeaturesToastProvider>
</ToastProvider>
</ThemeProvider>
{import.meta.env.VITE_SHOW_DEVTOOLS === 'true' && (
{import.meta.env.VITE_SHOW_DEVTOOLS === "true" && (
<ReactQueryDevtools initialIsOpen={false} />
)}
</QueryClientProvider>
);
}
}
28 changes: 12 additions & 16 deletions archon-ui-main/src/components/DisconnectScreenOverlay.tsx
Original file line number Diff line number Diff line change
@@ -1,23 +1,22 @@
import React, { useState } from 'react';
import { X, Wifi, WifiOff } from 'lucide-react';
import { DisconnectScreen } from './animations/DisconnectScreenAnimations';
import { NeonButton } from './ui/NeonButton';
import React, { useState } from "react";
import { X } from "lucide-react";
import { DisconnectScreen } from "./animations/DisconnectScreenAnimations";
import { NeonButton } from "./ui/NeonButton";

interface DisconnectScreenOverlayProps {
isActive: boolean;
onDismiss?: () => void;
}

export const DisconnectScreenOverlay: React.FC<DisconnectScreenOverlayProps> = ({
isActive,
onDismiss
}) => {
export const DisconnectScreenOverlay: React.FC<
DisconnectScreenOverlayProps
> = ({ isActive, onDismiss }) => {
const [showControls, setShowControls] = useState(false);

if (!isActive) return null;

return (
<div
<div
className="fixed inset-0 z-[9999] bg-black"
onMouseMove={() => setShowControls(true)}
onMouseEnter={() => setShowControls(true)}
Expand All @@ -27,21 +26,18 @@ export const DisconnectScreenOverlay: React.FC<DisconnectScreenOverlayProps> = (
<DisconnectScreen />

{/* Override Button */}
<div
<div
className={`absolute bottom-8 right-8 transition-opacity duration-500 ${
showControls ? 'opacity-100' : 'opacity-0'
showControls ? "opacity-100" : "opacity-0"
}`}
>
{onDismiss && (
<NeonButton
onClick={onDismiss}
className="flex items-center gap-2"
>
<NeonButton onClick={onDismiss} className="flex items-center gap-2">
<X className="w-4 h-4" />
Dismiss
</NeonButton>
)}
</div>
</div>
);
};
};
Loading