Expose conversation package manifests
This commit is contained in:
+27
-4
@@ -253,6 +253,7 @@ let conversationMemoryService = null;
|
||||
let mindSpace = null;
|
||||
let mindSpaceAssets = null;
|
||||
let mindSpaceAudit = null;
|
||||
let mindSpaceConversationPackageRegistry = null;
|
||||
let mindSpacePages = null;
|
||||
let mindSpacePageLiveEdit = null;
|
||||
let mindSpaceAssetAgent = null;
|
||||
@@ -303,7 +304,7 @@ async function bootstrapUserAuth() {
|
||||
});
|
||||
const mindSpaceStorageRoot =
|
||||
process.env.MINDSPACE_STORAGE_ROOT ?? path.join(__dirname, 'data', 'mindspace');
|
||||
const conversationPackageRegistry = createConversationPackageRegistry({
|
||||
mindSpaceConversationPackageRegistry = createConversationPackageRegistry({
|
||||
store: createConversationPackageStore(pool),
|
||||
service: createMindSpaceServiceFacade({
|
||||
storageAdapter: createLocalMindSpaceStorageAdapter(mindSpaceStorageRoot),
|
||||
@@ -314,12 +315,12 @@ async function bootstrapUserAuth() {
|
||||
h5Root: __dirname,
|
||||
storageRoot: mindSpaceStorageRoot,
|
||||
maxFileBytes: Number(process.env.MINDSPACE_MAX_FILE_BYTES ?? DEFAULT_MAX_FILE_BYTES),
|
||||
conversationPackageRegistry,
|
||||
conversationPackageRegistry: mindSpaceConversationPackageRegistry,
|
||||
});
|
||||
mindSpacePages = createPageService(pool, {
|
||||
h5Root: __dirname,
|
||||
storageRoot: mindSpaceStorageRoot,
|
||||
conversationPackageRegistry,
|
||||
conversationPackageRegistry: mindSpaceConversationPackageRegistry,
|
||||
});
|
||||
const resolveUserIdForAgentSession = async (sessionId) => {
|
||||
const [rows] = await pool.query(
|
||||
@@ -340,7 +341,7 @@ async function bootstrapUserAuth() {
|
||||
h5Root: __dirname,
|
||||
storageRoot: mindSpaceStorageRoot,
|
||||
publicPageLimit: Number(process.env.MINDSPACE_FREE_PUBLIC_PAGE_LIMIT ?? 5),
|
||||
conversationPackageRegistry,
|
||||
conversationPackageRegistry: mindSpaceConversationPackageRegistry,
|
||||
});
|
||||
setInterval(async () => {
|
||||
try {
|
||||
@@ -2486,6 +2487,28 @@ api.post('/internal/agent/jobs/:jobId/complete', async (req, res) => {
|
||||
}
|
||||
});
|
||||
|
||||
api.get('/mindspace/v1/conversation-packages/:sessionId', async (req, res) => {
|
||||
if (!mindSpaceConversationPackageRegistry || !ensureMindSpaceEnabled(res, req)) {
|
||||
if (res.headersSent) return;
|
||||
return res.status(503).json({ message: 'MindSpace 对话包未启用' });
|
||||
}
|
||||
const sessionId = String(req.params.sessionId ?? '').trim();
|
||||
if (!sessionId) return res.status(400).json({ message: '缺少 sessionId' });
|
||||
if (!(await userAuth.ownsSession(req.currentUser.id, sessionId))) {
|
||||
return res.status(403).json({ message: '无权访问该会话' });
|
||||
}
|
||||
try {
|
||||
const manifest = await mindSpaceConversationPackageRegistry.readManifestForSession({
|
||||
userId: req.currentUser.id,
|
||||
sessionId,
|
||||
});
|
||||
if (!manifest) return res.status(404).json({ message: '对话包不存在' });
|
||||
return sendData(res, req, manifest);
|
||||
} catch (error) {
|
||||
return mindSpaceError(res, req, error);
|
||||
}
|
||||
});
|
||||
|
||||
api.post('/mindspace/v1/uploads', async (req, res) => {
|
||||
if (!mindSpaceAssets || !ensureMindSpaceEnabled(res, req, { upload: true })) return;
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user