n8n
Version:
n8n Workflow Automation Tool
53 lines (52 loc) • 2.73 kB
TypeScript
import type { AgentTaskDto, CreateAgentTaskDto, UpdateAgentTaskDto } from '@n8n/api-types';
import { Logger } from '@n8n/backend-common';
import { GlobalConfig } from '@n8n/config';
import { ProjectRelationRepository } from '@n8n/db';
import { InstanceSettings } from 'n8n-core';
import type { PubSubCommandMap } from '../../scaling/pubsub/pubsub.event-map';
import { Publisher } from '../../scaling/pubsub/publisher.service';
import { AgentsService } from './agents.service';
import { AgentRepository } from './repositories/agent.repository';
import { AgentTaskRunLockRepository } from './repositories/agent-task-run-lock.repository';
import { AgentTaskSnapshotRepository } from './repositories/agent-task-snapshot.repository';
import { AgentTaskRepository } from './repositories/agent-task.repository';
export declare class AgentTaskService {
private readonly logger;
private readonly globalConfig;
private readonly taskRepository;
private readonly taskSnapshotRepository;
private readonly taskRunLockRepository;
private readonly agentRepository;
private readonly projectRelationRepository;
private readonly agentsService;
private readonly instanceSettings;
private readonly publisher;
private readonly jobs;
constructor(logger: Logger, globalConfig: GlobalConfig, taskRepository: AgentTaskRepository, taskSnapshotRepository: AgentTaskSnapshotRepository, taskRunLockRepository: AgentTaskRunLockRepository, agentRepository: AgentRepository, projectRelationRepository: ProjectRelationRepository, agentsService: AgentsService, instanceSettings: InstanceSettings, publisher: Publisher);
list(agentId: string): Promise<AgentTaskDto[]>;
create(agentId: string, dto: CreateAgentTaskDto): Promise<AgentTaskDto>;
update(agentId: string, taskId: string, dto: UpdateAgentTaskDto): Promise<AgentTaskDto>;
delete(agentId: string, taskId: string): Promise<void>;
private attachTaskRef;
requestReconcile(agentId: string): Promise<void>;
registerEnabledForAgent(agentId: string): Promise<void>;
handleTasksChanged(payload: PubSubCommandMap['agent-tasks-changed']): Promise<void>;
private broadcastTasksChanged;
deregisterAgentTasks(agentId: string): void;
reconnectAll(): Promise<void>;
stopAll(): void;
private reconcileAgent;
private registerOrRefresh;
private deregister;
private runScheduledTask;
private startTaskRunLockRenewal;
private runTask;
private buildTaskRunMessage;
private consumeTaskRun;
runNow(agentId: string, taskId: string, userId: string): Promise<void>;
private executeNow;
private resolveExecutionUserId;
private getOrThrow;
private assertValidCron;
private toDto;
}