Files
memind/mindspace-local-runtime-services.mjs
T

90 lines
2.7 KiB
JavaScript

import { createAssetService } from './mindspace-assets.mjs';
import { createConversationPackageRegistry } from './mindspace-conversation-package-registry.mjs';
import { createConversationPackageStore } from './mindspace-conversation-package-store.mjs';
import { createCleanupService } from './mindspace-cleanup.mjs';
import { createAgentJobService } from './mindspace-agent-jobs.mjs';
import { createAssetAgentService } from './mindspace-asset-agent.mjs';
import { createPageLiveEditService } from './mindspace-page-live-edit.mjs';
import { createPageService } from './mindspace-pages.mjs';
import { createPublicationService } from './mindspace-publications.mjs';
import { createMindSpaceLocalRuntime } from './mindspace-runtime-config.mjs';
export function createMindSpaceLocalRuntimeServices({
pool,
h5Root,
env = process.env,
maxFileBytes,
publicPageLimit,
resolveUserIdForAgentSession,
conversationPackageBackfill,
conversationPackagePublicHtmlHydrator,
logger = console,
} = {}) {
let conversationPackageRegistry = null;
const runtime = createMindSpaceLocalRuntime({
h5Root,
env,
logger,
conversationPackageBackfill: ({ user, sessionId }) =>
conversationPackageBackfill?.({
user,
sessionId,
storageRoot: runtime.storageRoot,
registry: conversationPackageRegistry,
}),
conversationPackagePublicHtmlHydrator,
});
conversationPackageRegistry = createConversationPackageRegistry({
store: createConversationPackageStore(pool),
service: runtime.serviceFacade,
});
const assetService = createAssetService(pool, {
h5Root,
storageRoot: runtime.storageRoot,
maxFileBytes,
conversationPackageRegistry,
});
const pageService = createPageService(pool, {
h5Root,
storageRoot: runtime.storageRoot,
conversationPackageRegistry,
});
const publicationService = createPublicationService(pool, {
h5Root,
storageRoot: runtime.storageRoot,
publicPageLimit,
conversationPackageRegistry,
});
const cleanupService = createCleanupService(pool, {
storageRoot: runtime.storageRoot,
h5Root,
});
const agentJobService = createAgentJobService(pool, {
pageService,
storageRoot: runtime.storageRoot,
maxOutputBytes: maxFileBytes,
});
const pageLiveEditService = createPageLiveEditService({
pageService,
resolveUserIdForAgentSession,
});
const assetAgentService = createAssetAgentService({
assetService,
resolveUserIdForAgentSession,
});
return {
...runtime,
conversationPackageRegistry,
assetService,
pageService,
publicationService,
cleanupService,
agentJobService,
pageLiveEditService,
assetAgentService,
};
}