import { inject, injectable } from "@codemation/core"; import type { ExecutionTelemetry } from "@codemation/core"; import type { HumanTaskStore } from "@codemation/core"; import { HumanTaskStoreToken } from "@codemation/core"; import { OtelExecutionTelemetryFactory } from "./OtelExecutionTelemetryFactory"; @injectable() export class ResumeTelemetryContextForRun { private readonly taskStore: HumanTaskStore | undefined; constructor( @inject(OtelExecutionTelemetryFactory) private readonly telemetryFactory: OtelExecutionTelemetryFactory, @inject(HumanTaskStoreToken) taskStore: HumanTaskStore | undefined, ) { this.taskStore = taskStore; } async forTask(taskId: string): Promise { if (!this.taskStore) { return undefined; } const task = await this.taskStore.findById(taskId); if (!task) { return undefined; } return this.telemetryFactory.create({ runId: task.runId, workflowId: task.workflowId, }); } }