MCPcopy Create free account
hub / github.com/HKUDS/AgentSpace / prepareDaemonTaskContext

Function prepareDaemonTaskContext

packages/daemon/src/task-context.ts:388–473  ·  view source on GitHub ↗
(input: {
  runtime: AgentRuntimeRecord;
  task: QueuedTaskRecord;
  workDir: string;
  agentProfile?: ActiveEmployee;
  channelDocuments?: ChannelDocument[];
  agentDocumentContexts?: AgentDocumentContext[];
  contactContext?: ContactAgentContext;
  payloadOverride?: Partial<ParsedTaskPayload>;
  routerSessionContext?: RouterSessionPromptContext;
  feishuLarkCliResourceGrants?: FeishuLarkCliResourceGrant[];
})

Source from the content-addressed store, hash-verified

386}
387
388export function prepareDaemonTaskContext(input: {
389 runtime: AgentRuntimeRecord;
390 task: QueuedTaskRecord;
391 workDir: string;
392 agentProfile?: ActiveEmployee;
393 channelDocuments?: ChannelDocument[];
394 agentDocumentContexts?: AgentDocumentContext[];
395 contactContext?: ContactAgentContext;
396 payloadOverride?: Partial<ParsedTaskPayload>;
397 routerSessionContext?: RouterSessionPromptContext;
398 feishuLarkCliResourceGrants?: FeishuLarkCliResourceGrant[];
399}): PreparedDaemonTaskContext {
400 const payload = {
401 ...parseTaskPayload(input.task),
402 ...(input.payloadOverride ?? {}),
403 } satisfies ParsedTaskPayload;
404 const attachmentLines = materializeAttachments(payload.attachments, input.workDir);
405 const workspaceState = readWorkspaceStateSync(input.task.workspaceId);
406 const runtimeApps = listRuntimeAppContextEntriesForRuntimeSync({
407 workspaceId: input.task.workspaceId,
408 runtimeId: input.runtime.id,
409 });
410 const agentDocumentContexts = input.agentDocumentContexts ?? contextsFromLegacyDocuments(input.channelDocuments ?? []);
411 const feishuLarkCliResourceGrants = input.feishuLarkCliResourceGrants ?? [];
412 const agentName = payload.assignee ?? input.task.agentId;
413 const agentNotifications = resolveAgentNotificationsForTask({
414 workspaceId: input.task.workspaceId,
415 agentName,
416 task: input.task,
417 payload,
418 agentDocumentContexts,
419 });
420 const documentPermissionRequests = listDocumentPermissionRequestsSync({
421 workspaceId: input.task.workspaceId,
422 requestedByAgentName: agentName,
423 }).filter((request) => request.status === "pending" || request.status === "rejected");
424 const visibleDocuments = agentDocumentContexts.map((context) => context.document);
425 let agentSkills = resolveAgentSkills(workspaceState, input.agentProfile, input.task.workspaceId);
426 agentSkills = includeGoogleWorkspaceCliSkill(agentSkills, workspaceState.skills, visibleDocuments, {
427 workspaceId: input.task.workspaceId,
428 agentName,
429 channelName: payload.channelName ?? payload.channel,
430 });
431 agentSkills = filterRuntimeAppSkillsByRuntimeAvailability(agentSkills, runtimeApps);
432 const agentKnowledgePages = resolveAgentKnowledgePages(workspaceState, input.agentProfile, input.task.workspaceId);
433 const skillDirectories = materializeAgentSkills(agentSkills, input.workDir, input.runtime.provider);
434 const knowledgeContextDir = materializeAgentKnowledgePages(agentKnowledgePages, input.workDir);
435 const channelDocumentsContextDir =
436 agentDocumentContexts.length > 0
437 ? materializeChannelDocuments(agentDocumentContexts, input.workDir, input.task.workspaceId)
438 : undefined;
439
440 return {
441 prompt: buildTaskPromptWithDocumentContexts(
442 input.runtime,
443 payload,
444 attachmentLines,
445 input.agentProfile,

Callers 3

executeQueuedTaskFunction · 0.90
GETFunction · 0.85

Tested by

no test coverage detected