|
|
const prisma = require("../utils/prisma");const { v4: uuidv4 } = require("uuid");
const WorkspaceAgentInvocation = { // returns array of strings with their @ handle.
// must start with @agent for now.
parseAgents: function (promptString) { if (!promptString.startsWith("@agent")) return []; return promptString.split(/\s+/).filter((v) => v.startsWith("@")); },
close: async function (uuid) { if (!uuid) return; try { await prisma.workspace_agent_invocations.update({ where: { uuid: String(uuid) }, data: { closed: true }, }); } catch {} },
new: async function ({ prompt, workspace, user = null, thread = null }) { try { const invocation = await prisma.workspace_agent_invocations.create({ data: { uuid: uuidv4(), workspace_id: workspace.id, prompt: String(prompt), user_id: user?.id, thread_id: thread?.id, }, });
return { invocation, message: null }; } catch (error) { console.error(error.message); return { invocation: null, message: error.message }; } },
get: async function (clause = {}) { try { const invocation = await prisma.workspace_agent_invocations.findFirst({ where: clause, });
return invocation || null; } catch (error) { console.error(error.message); return null; } },
getWithWorkspace: async function (clause = {}) { try { const invocation = await prisma.workspace_agent_invocations.findFirst({ where: clause, include: { workspace: true, }, });
return invocation || null; } catch (error) { console.error(error.message); return null; } },
delete: async function (clause = {}) { try { await prisma.workspace_agent_invocations.delete({ where: clause, }); return true; } catch (error) { console.error(error.message); return false; } },
where: async function (clause = {}, limit = null, orderBy = null) { try { const results = await prisma.workspace_agent_invocations.findMany({ where: clause, ...(limit !== null ? { take: limit } : {}), ...(orderBy !== null ? { orderBy } : {}), }); return results; } catch (error) { console.error(error.message); return []; } },};
module.exports = { WorkspaceAgentInvocation };
|