MCPcopy Create free account
hub / github.com/bearlyai/OpenADE / createTask

Function createTask

projects/openade-module/src/yjsMutation.ts:494–568  ·  view source on GitHub ↗
(request)

Source from the content-addressed store, hash-verified

492 },
493
494 async createTask(request) {
495 const isolationStrategy = request.isolationStrategy ?? { type: "head" }
496 const taskId = request.taskId ?? createId()
497 const slug = request.slug ?? createSlug()
498 const createdAt = request.createdAt ?? now()
499 const title = request.title ?? "New task"
500 const reposDoc = await loadDoc(storage, "code:repos")
501 const taskDoc = await loadDoc(storage, `code:task:${taskId}`)
502
503 try {
504 const repoMap = findRepoMap(reposDoc, request.repoId)
505 if (!repoMap) throw new Error(`Repository ${request.repoId} not found`)
506
507 const meta = taskDoc.getMap("task:meta")
508 const existingMetaId = meta.get("id")
509 if (typeof existingMetaId === "string" && existingMetaId && existingMetaId !== taskId) {
510 throw new Error(`Task document ${taskId} has mismatched metadata id ${existingMetaId}`)
511 }
512
513 if (!existingMetaId) {
514 taskDoc.transact(() => {
515 setMapObject(meta, {
516 id: taskId,
517 repoId: request.repoId,
518 slug,
519 title,
520 description: request.input,
521 isolationStrategy,
522 sessionIds: {},
523 createdBy: request.createdBy,
524 createdAt,
525 updatedAt: createdAt,
526 ...(request.enabledMcpServerIds && request.enabledMcpServerIds.length > 0
527 ? { enabledMcpServerIds: request.enabledMcpServerIds }
528 : {}),
529 })
530
531 if (!hasOrderedItem(taskDoc, "task:deviceEnvironments", request.deviceId)) {
532 pushOrderedItem(taskDoc, "task:deviceEnvironments", (request.deviceEnvironment ?? {
533 id: request.deviceId,
534 deviceId: request.deviceId,
535 setupComplete: true,
536 createdAt,
537 lastUsedAt: createdAt,
538 }) as unknown as Record<string, unknown> & { id: string })
539 }
540 if (request.setupEvent) {
541 pushOrderedItem(taskDoc, "task:events", {
542 id: request.setupEvent.eventId ?? createId(),
543 type: "setup_environment",
544 status: "completed",
545 createdAt: request.setupEvent.createdAt ?? createdAt,
546 completedAt: request.setupEvent.completedAt ?? request.setupEvent.createdAt ?? createdAt,
547 userInput: "Environment setup",
548 worktreeId: request.setupEvent.worktreeId,
549 deviceId: request.setupEvent.deviceId,
550 workingDir: request.setupEvent.workingDir,
551 setupOutput: request.setupEvent.setupOutput,

Callers

nothing calls this directly

Calls 10

findRepoMapFunction · 0.85
setMapObjectFunction · 0.85
hasOrderedItemFunction · 0.85
pushOrderedItemFunction · 0.85
ensureTaskPreviewFunction · 0.85
destroyMethod · 0.80
nowFunction · 0.70
loadDocFunction · 0.70
saveDocFunction · 0.70
getMethod · 0.65

Tested by

no test coverage detected