Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
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
13 changes: 10 additions & 3 deletions packages/server/src/server/agent/provider-registry.ts
Original file line number Diff line number Diff line change
Expand Up @@ -108,11 +108,12 @@ export interface BuildProviderRegistryOptions {
managedProcesses?: ManagedProcessRegistry;
isDev?: boolean;
ompRuntime?: OmpRuntime;
hermesSharedProcessScope?: object;
}

interface ProviderClientFactoryOptions extends Pick<
BuildProviderRegistryOptions,
"workspaceGitService" | "managedProcesses" | "ompRuntime"
"workspaceGitService" | "managedProcesses" | "ompRuntime" | "hermesSharedProcessScope"
> {
providerParams?: unknown;
customProvider?: {
Expand Down Expand Up @@ -700,7 +701,7 @@ function buildResolvedBuiltinProviders(
runtimeSettings: AgentProviderRuntimeSettingsMap | undefined,
options: Pick<
BuildProviderRegistryOptions,
"workspaceGitService" | "managedProcesses" | "ompRuntime"
"workspaceGitService" | "managedProcesses" | "ompRuntime" | "hermesSharedProcessScope"
>,
isDev: boolean,
): Map<string, ResolvedProvider> {
Expand Down Expand Up @@ -732,6 +733,7 @@ function buildResolvedBuiltinProviders(
workspaceGitService: options.workspaceGitService,
managedProcesses: options.managedProcesses,
ompRuntime: options.ompRuntime,
hermesSharedProcessScope: options.hermesSharedProcessScope,
providerParams: override?.params,
}),
contract: PROVIDER_CONTRACTS[definition.id] ?? UNSUPPORTED_PROVIDER_CONTRACT,
Expand All @@ -744,7 +746,7 @@ function buildResolvedBuiltinProviders(
function addDerivedProviders(
resolvedProviders: Map<string, ResolvedProvider>,
providerOverrides: Record<string, ProviderOverride>,
options: Pick<BuildProviderRegistryOptions, "managedProcesses">,
options: Pick<BuildProviderRegistryOptions, "managedProcesses" | "hermesSharedProcessScope">,
): void {
for (const [providerId, override] of Object.entries(providerOverrides)) {
if (resolvedProviders.has(providerId) || BUILTIN_PROVIDER_IDS.includes(providerId)) {
Expand Down Expand Up @@ -789,6 +791,8 @@ function addDerivedProviders(
providerId,
label: override.label ?? providerId,
providerParams: override.params,
sharedProcessScope:
providerId === "hermes" ? options.hermesSharedProcessScope : undefined,
};
if (providerId === "cursor") {
return new CursorACPAgentClient(acpOptions);
Expand Down Expand Up @@ -840,6 +844,7 @@ function addDerivedProviders(
createBaseClient: (logger) =>
baseFactory(logger, mergedRuntimeSettings, {
managedProcesses: options.managedProcesses,
hermesSharedProcessScope: options.hermesSharedProcessScope,
providerParams,
customProvider: {
id: providerId,
Expand All @@ -865,11 +870,13 @@ export function buildProviderRegistry(
workspaceGitService: options?.workspaceGitService,
managedProcesses: options?.managedProcesses,
ompRuntime: options?.ompRuntime,
hermesSharedProcessScope: options?.hermesSharedProcessScope,
},
options?.isDev === true,
);
addDerivedProviders(resolvedProviders, providerOverrides, {
managedProcesses: options?.managedProcesses,
hermesSharedProcessScope: options?.hermesSharedProcessScope,
});

return Object.fromEntries(
Expand Down
2 changes: 2 additions & 0 deletions packages/server/src/server/agent/provider-snapshot-manager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,7 @@ export class ProviderSnapshotManager {
private readonly managedProcesses?: ManagedProcessRegistry;
private readonly isDev: boolean;
private readonly extraClients: Partial<Record<AgentProvider, AgentClient>>;
private readonly hermesSharedProcessScope = {};
private runtimeSettings: AgentProviderRuntimeSettingsMap | undefined;
private providerOverrides: Record<string, ProviderOverride> | undefined;
private baseProviderOverrides: Record<string, ProviderOverride> | undefined;
Expand Down Expand Up @@ -511,6 +512,7 @@ export class ProviderSnapshotManager {
workspaceGitService: this.workspaceGitService,
managedProcesses: this.managedProcesses,
isDev: this.isDev,
hermesSharedProcessScope: this.hermesSharedProcessScope,
});

for (const [provider, client] of Object.entries(this.extraClients) as Array<
Expand Down
Loading