170 lines
5.1 KiB
JavaScript
170 lines
5.1 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 { createMindSpaceChatSaveService } from './mindspace-chat-save-service.mjs';
|
|
import { createMindSpaceConversationArtifactService } from './mindspace-conversation-package-artifact-service.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 { createPageSyncService } from './mindspace-page-sync-service.mjs';
|
|
import { createPublicationService } from './mindspace-publications.mjs';
|
|
import { createMindSpacePublicFinishService } from './mindspace-public-finish-service.mjs';
|
|
import { createMindSpaceLocalRuntime } from './mindspace-runtime-config.mjs';
|
|
import { createMindSpaceWorkspacePublicationDeliveryService } from './mindspace-workspace-publication-delivery-service.mjs';
|
|
import { createMindSpaceWorkspaceToolService } from './mindspace-workspace-tool-service.mjs';
|
|
import { createWorkspacePageDeliverService } from './mindspace-workspace-page-deliver.mjs';
|
|
import {
|
|
ensurePageDataHtmlPagesBound,
|
|
} from './page-data-workspace-ensure.mjs';
|
|
|
|
export function createMindSpaceLocalRuntimeServices({
|
|
pool,
|
|
h5Root,
|
|
env = process.env,
|
|
maxFileBytes,
|
|
publicPageLimit,
|
|
resolveUserIdForAgentSession,
|
|
resolveWorkspaceRoot,
|
|
conversationPackageBackfill,
|
|
conversationPackagePublicHtmlHydrator,
|
|
logger = console,
|
|
syncWorkspaceAssets = null,
|
|
} = {}) {
|
|
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 pageSyncService = createPageSyncService({
|
|
pool,
|
|
pageService,
|
|
assetService,
|
|
h5Root,
|
|
syncWorkspaceAssets,
|
|
logger,
|
|
});
|
|
const chatSaveService = createMindSpaceChatSaveService({
|
|
pool,
|
|
h5Root,
|
|
storageRoot: runtime.storageRoot,
|
|
});
|
|
const conversationArtifactService =
|
|
createMindSpaceConversationArtifactService({
|
|
conversationPackageRegistry,
|
|
h5Root,
|
|
env,
|
|
});
|
|
const publicFinishService =
|
|
createMindSpacePublicFinishService({
|
|
pool,
|
|
h5Root,
|
|
storageRoot: runtime.storageRoot,
|
|
env,
|
|
syncWorkspaceAssets,
|
|
conversationArtifactService,
|
|
});
|
|
const workspacePublicationDeliveryService =
|
|
createMindSpaceWorkspacePublicationDeliveryService({
|
|
pool,
|
|
h5Root,
|
|
storageRoot: runtime.storageRoot,
|
|
logger,
|
|
});
|
|
const publicationService = createPublicationService(pool, {
|
|
h5Root,
|
|
storageRoot: runtime.storageRoot,
|
|
publicPageLimit,
|
|
conversationPackageRegistry,
|
|
});
|
|
const workspacePageDeliveryService =
|
|
createWorkspacePageDeliverService({
|
|
pool,
|
|
pageService,
|
|
publicationService,
|
|
pageSyncService,
|
|
pageDataEnsure: {
|
|
ensurePageDataHtmlPagesBound,
|
|
},
|
|
h5Root,
|
|
storageRoot: runtime.storageRoot,
|
|
findPageByRelativePath:
|
|
pageService.findPageByRelativePath.bind(
|
|
pageService,
|
|
),
|
|
logger,
|
|
});
|
|
const workspaceToolService =
|
|
createMindSpaceWorkspaceToolService({
|
|
h5Root,
|
|
env,
|
|
syncWorkspaceAssets,
|
|
conversationArtifactService,
|
|
workspacePageDeliveryService,
|
|
});
|
|
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,
|
|
resolveWorkspaceRoot,
|
|
});
|
|
|
|
return {
|
|
...runtime,
|
|
conversationPackageRegistry,
|
|
assetService,
|
|
pageService,
|
|
pageSyncService,
|
|
chatSaveService,
|
|
conversationArtifactService,
|
|
publicFinishService,
|
|
workspacePublicationDeliveryService,
|
|
publicationService,
|
|
workspacePageDeliveryService,
|
|
workspaceToolService,
|
|
cleanupService,
|
|
agentJobService,
|
|
pageLiveEditService,
|
|
assetAgentService,
|
|
};
|
|
}
|