50 lines · 1.6 KB · TypeScript
RawDownload
const dir = process.env.OPENSCIENCE_E2E_PROJECT_DIR ?? process.cwd()const title = process.env.OPENSCIENCE_E2E_SESSION_TITLE ?? "E2E Session"const text = process.env.OPENSCIENCE_E2E_MESSAGE ?? "Seeded for UI e2e"const model = process.env.OPENSCIENCE_E2E_MODEL ?? "synsci/gpt-5-nano"const parts = model.split("/")const providerID = parts[0] ?? "synsci"const modelID = parts[1] ?? "gpt-5-nano"const now = Date.now() const seed = async () => {  const { Instance } = await import("../src/project/instance")  const { InstanceBootstrap } = await import("../src/project/bootstrap")  const { Session } = await import("../src/session")  const { Identifier } = await import("../src/id/id")  const { Project } = await import("../src/project/project")   await Instance.provide({    directory: dir,    init: InstanceBootstrap,    fn: async () => {      const session = await Session.create({ title })      const messageID = Identifier.descending("message")      const partID = Identifier.descending("part")      const message = {        id: messageID,        sessionID: session.id,        role: "user" as const,        time: { created: now },        agent: "build",        model: {          providerID,          modelID,        },      }      const part = {        id: partID,        sessionID: session.id,        messageID,        type: "text" as const,        text,        time: { start: now },      }      await Session.updateMessage(message)      await Session.updatePart(part)      await Project.update({ projectID: Instance.project.id, name: "E2E Project" })    },  })} await seed()