@@ -2,6 +2,7 @@ import { useEffect } from "react";
22import { useAgentStore } from "@/features/agents/stores/agentStore" ;
33import { useChatSessionStore } from "@/features/chat/stores/chatSessionStore" ;
44import { useProviderInventoryStore } from "@/features/providers/stores/providerInventoryStore" ;
5+ import { discoverAcpProvidersFromEntries } from "@/shared/api/acp" ;
56import { setNotificationHandler , getClient } from "@/shared/api/acpConnection" ;
67import notificationHandler from "@/shared/api/acpNotificationHandler" ;
78import { perfLog } from "@/shared/lib/perfLog" ;
@@ -47,46 +48,41 @@ export function useAppStartup() {
4748 }
4849 } ;
4950
50- const loadProviders = async ( ) => {
51+ const loadProvidersAndInventory = async ( ) => {
5152 const t0 = performance . now ( ) ;
5253 store . setProvidersLoading ( true ) ;
53- try {
54- const { discoverAcpProviders } = await import ( "@/shared/api/acp" ) ;
55- const providers = await discoverAcpProviders ( ) ;
56- store . setProviders ( providers ) ;
57- perfLog (
58- `[perf:startup] loadProviders done in ${ ( performance . now ( ) - t0 ) . toFixed ( 1 ) } ms (n=${ providers . length } )` ,
59- ) ;
60- } catch ( err ) {
61- console . error ( "Failed to load ACP providers on startup:" , err ) ;
62- } finally {
63- store . setProvidersLoading ( false ) ;
64- }
65- } ;
66-
67- const loadProviderInventory = async ( ) => {
68- const t0 = performance . now ( ) ;
6954 inventoryStore . setLoading ( true ) ;
7055 try {
7156 const { getProviderInventory } = await import (
7257 "@/features/providers/api/inventory"
7358 ) ;
7459 const entries = await getProviderInventory ( ) ;
60+
61+ // Populate inventory store
7562 inventoryStore . setEntries ( entries ) ;
63+
64+ // Derive ACP providers from the same response
65+ const providers = discoverAcpProvidersFromEntries ( entries ) ;
66+ store . setProviders ( providers ) ;
67+
7668 perfLog (
77- `[perf:startup] loadProviderInventory done in ${ ( performance . now ( ) - t0 ) . toFixed ( 1 ) } ms (n =${ entries . length } )` ,
69+ `[perf:startup] loadProvidersAndInventory done in ${ ( performance . now ( ) - t0 ) . toFixed ( 1 ) } ms (entries =${ entries . length } , providers= ${ providers . length } )` ,
7870 ) ;
7971 return entries ;
8072 } catch ( err ) {
81- console . error ( "Failed to load provider inventory on startup:" , err ) ;
73+ console . error (
74+ "Failed to load providers and inventory on startup:" ,
75+ err ,
76+ ) ;
8277 return [ ] ;
8378 } finally {
79+ store . setProvidersLoading ( false ) ;
8480 inventoryStore . setLoading ( false ) ;
8581 }
8682 } ;
8783
8884 const refreshConfiguredProviderInventory = async (
89- initialEntries ?: Awaited < ReturnType < typeof loadProviderInventory > > ,
85+ initialEntries ?: Awaited < ReturnType < typeof loadProvidersAndInventory > > ,
9086 ) => {
9187 try {
9288 const entries =
@@ -146,15 +142,14 @@ export function useAppStartup() {
146142 setActiveSession ( null ) ;
147143 } ;
148144
149- const inventoryLoad = loadProviderInventory ( ) ;
145+ const providersAndInventoryLoad = loadProvidersAndInventory ( ) ;
150146
151147 await Promise . allSettled ( [
152148 loadPersonas ( ) ,
153- loadProviders ( ) ,
154- inventoryLoad ,
149+ providersAndInventoryLoad ,
155150 loadSessionState ( ) ,
156151 ] ) ;
157- void inventoryLoad . then ( ( entries ) =>
152+ void providersAndInventoryLoad . then ( ( entries ) =>
158153 refreshConfiguredProviderInventory ( entries ) ,
159154 ) ;
160155 perfLog (
0 commit comments