51 lines
1.6 KiB
TypeScript
51 lines
1.6 KiB
TypeScript
const dir = process.env.OPENCODE_E2E_PROJECT_DIR ?? process.cwd()
|
|
const title = process.env.OPENCODE_E2E_SESSION_TITLE ?? "E2E Session"
|
|
const text = process.env.OPENCODE_E2E_MESSAGE ?? "Seeded for UI e2e"
|
|
const model = process.env.OPENCODE_E2E_MODEL ?? "opencode/gpt-5-nano"
|
|
const parts = model.split("/")
|
|
const providerID = parts[0] ?? "opencode"
|
|
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()
|