120
}
121
}
123
>
const entry: { promise: Promise<boolean>; resolved: boolean } = {
124
>
promise: Promise.race([
125
>
this._ensureServerReady(server),
126
>
new Promise<boolean>(resolve => setTimeout(() => resolve(false), this._startupGracePeriodMs)),
127
>
]),
128
>
resolved: false,
129
>
};
130
>
entry.promise.then(() => { entry.resolved = true; });
131
>
this._startupGrace.set(id, entry);
132
>
}
133
>
return this._startupGrace.get(id)!.promise;
134
>
}
135
136
private async _shouldUseCachedData(server: IMcpServer): Promise<boolean> {
137
const cacheState = server.cacheState.get();
138
if (cacheState === McpServerCacheState.Unknown || cacheState === McpServerCacheState.Outdated) {
140
>
const newState = server.cacheState.get();
141
>
return newState === McpServerCacheState.Live
142
|| newState === McpServerCacheState.Cached
143
|| newState === McpServerCacheState.RefreshingFromCached;
145
return cacheState === McpServerCacheState.Live
146
|| cacheState === McpServerCacheState.Cached