47 lines
1.8 KiB
TypeScript
47 lines
1.8 KiB
TypeScript
import type { CustomWorldProfileCapability, CustomWorldSessionCapability } from './runtimeCapabilities.js';
|
|
import { CustomWorldAgentOrchestrator } from './customWorldAgentOrchestrator.js';
|
|
import { CustomWorldAgentSessionStore } from './customWorldAgentSessionStore.js';
|
|
import { CustomWorldSessionStore } from './customWorldSessionStore.js';
|
|
import type { UpstreamLlmClient } from './llmClient.js';
|
|
|
|
export type CustomWorldRuntimeProvider = {
|
|
customWorldSessions: CustomWorldSessionStore;
|
|
customWorldAgentSessions: CustomWorldAgentSessionStore;
|
|
customWorldAgentOrchestrator: CustomWorldAgentOrchestrator;
|
|
customWorldWorkSummaryDependencies: {
|
|
runtimeRepository: CustomWorldProfileCapability;
|
|
customWorldAgentSessions: CustomWorldAgentSessionStore;
|
|
};
|
|
};
|
|
|
|
export function createCustomWorldRuntimeProvider(params: {
|
|
customWorldSessionCapability: CustomWorldSessionCapability;
|
|
customWorldProfileCapability: CustomWorldProfileCapability;
|
|
llmClient: UpstreamLlmClient | null;
|
|
runtimeLlmClient?: UpstreamLlmClient | null;
|
|
singleTurnLlmClient?: UpstreamLlmClient | null;
|
|
}) {
|
|
const customWorldSessions = new CustomWorldSessionStore(
|
|
params.customWorldSessionCapability,
|
|
);
|
|
const customWorldAgentSessions = new CustomWorldAgentSessionStore(
|
|
params.customWorldSessionCapability,
|
|
);
|
|
|
|
return {
|
|
customWorldSessions,
|
|
customWorldAgentSessions,
|
|
customWorldAgentOrchestrator: new CustomWorldAgentOrchestrator(
|
|
customWorldAgentSessions,
|
|
params.runtimeLlmClient ?? params.llmClient,
|
|
{
|
|
singleTurnLlmClient: params.singleTurnLlmClient,
|
|
},
|
|
),
|
|
customWorldWorkSummaryDependencies: {
|
|
runtimeRepository: params.customWorldProfileCapability,
|
|
customWorldAgentSessions,
|
|
},
|
|
} satisfies CustomWorldRuntimeProvider;
|
|
}
|