n8n 2.33.2 → 2.33.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/dist/build.tsbuildinfo +1 -1
  2. package/dist/controllers/oauth/oauth2-credential.controller.js +4 -1
  3. package/dist/controllers/oauth/oauth2-credential.controller.js.map +1 -1
  4. package/dist/controllers/role.controller.d.ts +1 -0
  5. package/dist/controllers/role.controller.js +10 -1
  6. package/dist/controllers/role.controller.js.map +1 -1
  7. package/dist/events/maps/relay.event-map.d.ts +4 -0
  8. package/dist/events/relays/telemetry.event-relay.d.ts +1 -0
  9. package/dist/events/relays/telemetry.event-relay.js +5 -0
  10. package/dist/events/relays/telemetry.event-relay.js.map +1 -1
  11. package/dist/modules/agents/agent-runtime-reconstruction.service.js +2 -0
  12. package/dist/modules/agents/agent-runtime-reconstruction.service.js.map +1 -1
  13. package/dist/modules/agents/builder/get-resource-locator-options.tool.d.ts +2 -2
  14. package/dist/modules/agents/json-config/from-json-config.d.ts +1 -0
  15. package/dist/modules/agents/json-config/from-json-config.js +3 -3
  16. package/dist/modules/agents/json-config/from-json-config.js.map +1 -1
  17. package/dist/modules/mcp/tools/workflow-builder/credential-validation.js +4 -0
  18. package/dist/modules/mcp/tools/workflow-builder/credential-validation.js.map +1 -1
  19. package/dist/modules/sso-oidc/oidc.controller.ee.d.ts +1 -1
  20. package/dist/modules/sso-oidc/oidc.service.ee.d.ts +2 -1
  21. package/dist/modules/sso-oidc/oidc.service.ee.js +9 -0
  22. package/dist/modules/sso-oidc/oidc.service.ee.js.map +1 -1
  23. package/dist/oauth/oauth.service.d.ts +4 -1
  24. package/dist/oauth/oauth.service.js +10 -3
  25. package/dist/oauth/oauth.service.js.map +1 -1
  26. package/dist/public-api/v1/handlers/sso-oidc/sso-oidc.mapper.d.ts +5 -0
  27. package/dist/public-api/v1/handlers/sso-oidc/sso-oidc.mapper.js +13 -0
  28. package/dist/public-api/v1/handlers/sso-oidc/sso-oidc.mapper.js.map +1 -0
  29. package/dist/security-audit/security-audit.service.js +1 -1
  30. package/dist/security-audit/security-audit.service.js.map +1 -1
  31. package/dist/task-runners/errors/task-request-timeout.error.d.ts +2 -2
  32. package/dist/task-runners/errors/task-request-timeout.error.js +3 -3
  33. package/dist/task-runners/errors/task-request-timeout.error.js.map +1 -1
  34. package/dist/task-runners/task-broker/errors/task-requester-accept-timeout.error.d.ts +4 -0
  35. package/dist/task-runners/task-broker/errors/task-requester-accept-timeout.error.js +11 -0
  36. package/dist/task-runners/task-broker/errors/task-requester-accept-timeout.error.js.map +1 -0
  37. package/dist/task-runners/task-broker/errors/task-runner-unreachable.error.d.ts +4 -0
  38. package/dist/task-runners/task-broker/errors/task-runner-unreachable.error.js +11 -0
  39. package/dist/task-runners/task-broker/errors/task-runner-unreachable.error.js.map +1 -0
  40. package/dist/task-runners/task-broker/task-broker-types.d.ts +1 -1
  41. package/dist/task-runners/task-broker/task-broker-ws-server.d.ts +13 -2
  42. package/dist/task-runners/task-broker/task-broker-ws-server.js +77 -33
  43. package/dist/task-runners/task-broker/task-broker-ws-server.js.map +1 -1
  44. package/dist/task-runners/task-broker/task-broker.service.d.ts +23 -1
  45. package/dist/task-runners/task-broker/task-broker.service.js +182 -64
  46. package/dist/task-runners/task-broker/task-broker.service.js.map +1 -1
  47. package/dist/task-runners/task-managers/task-requester.d.ts +1 -0
  48. package/dist/task-runners/task-managers/task-requester.js +4 -1
  49. package/dist/task-runners/task-managers/task-requester.js.map +1 -1
  50. package/dist/task-runners/task-runner-lifecycle-events.d.ts +8 -3
  51. package/dist/task-runners/task-runner-lifecycle-events.js.map +1 -1
  52. package/dist/task-runners/task-runner-process-base.d.ts +8 -3
  53. package/dist/task-runners/task-runner-process-base.js +84 -25
  54. package/dist/task-runners/task-runner-process-base.js.map +1 -1
  55. package/dist/task-runners/task-runner-process-js.d.ts +3 -7
  56. package/dist/task-runners/task-runner-process-js.js +4 -8
  57. package/dist/task-runners/task-runner-process-js.js.map +1 -1
  58. package/dist/task-runners/task-runner-process-py.d.ts +2 -6
  59. package/dist/task-runners/task-runner-process-py.js +3 -7
  60. package/dist/task-runners/task-runner-process-py.js.map +1 -1
  61. package/dist/utils/ai-proxy-fetch.d.ts +1 -0
  62. package/dist/utils/ai-proxy-fetch.js +9 -0
  63. package/dist/utils/ai-proxy-fetch.js.map +1 -1
  64. package/dist/workflows/workflow.service.ee.d.ts +1 -1
  65. package/dist/workflows/workflow.service.ee.js +14 -20
  66. package/dist/workflows/workflow.service.ee.js.map +1 -1
  67. package/package.json +31 -31
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-requester-accept-timeout.error.js","sourceRoot":"","sources":["../../../../src/task-runners/task-broker/errors/task-requester-accept-timeout.error.ts"],"names":[],"mappings":";;;AAAA,+CAAgD;AAEhD,qCAA6C,SAAQ,+BAAgB;IACpE,YAAY,MAAc,EAAE,WAAmB;QAC9C,KAAK,CAAC,cAAc,WAAW,wCAAwC,MAAM,GAAG,CAAC,CAAC;IACnF,CAAC;CACD"}
@@ -0,0 +1,4 @@
1
+ import { OperationalError } from 'n8n-workflow';
2
+ export declare class TaskRunnerUnreachableError extends OperationalError {
3
+ constructor(taskId: string, runnerId: string);
4
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TaskRunnerUnreachableError = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ class TaskRunnerUnreachableError extends n8n_workflow_1.OperationalError {
6
+ constructor(taskId, runnerId) {
7
+ super(`Runner (${runnerId}) became unreachable while processing task (${taskId})`);
8
+ }
9
+ }
10
+ exports.TaskRunnerUnreachableError = TaskRunnerUnreachableError;
11
+ //# sourceMappingURL=task-runner-unreachable.error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-runner-unreachable.error.js","sourceRoot":"","sources":["../../../../src/task-runners/task-broker/errors/task-runner-unreachable.error.ts"],"names":[],"mappings":";;;AAAA,+CAAgD;AAEhD,gCAAwC,SAAQ,+BAAgB;IAC/D,YAAY,MAAc,EAAE,QAAgB;QAC3C,KAAK,CAAC,WAAW,QAAQ,+CAA+C,MAAM,GAAG,CAAC,CAAC;IACpF,CAAC;CACD"}
@@ -15,7 +15,7 @@ export interface TaskBrokerServerInitRequest extends AuthlessRequest<{}, {}, {},
15
15
  export type TaskBrokerServerInitResponse = Response & {
16
16
  req: TaskBrokerServerInitRequest;
17
17
  };
18
- export type DisconnectReason = 'shutting-down' | 'failed-heartbeat-check' | 'unknown';
18
+ export type DisconnectReason = 'shutting-down' | 'failed-heartbeat-check' | 'runner-unresponsive' | 'unknown';
19
19
  export type DisconnectErrorOptions = {
20
20
  runnerId?: TaskRunner['id'];
21
21
  reason?: DisconnectReason;
@@ -3,11 +3,17 @@ import { GlobalConfig, TaskRunnersConfig } from '@n8n/config';
3
3
  import type { BrokerMessage } from '@n8n/task-runner';
4
4
  import type WebSocket from 'ws';
5
5
  import { WsStatusCodes } from '../../constants';
6
+ import { EventService } from '../../events/event.service';
6
7
  import { DefaultTaskRunnerDisconnectAnalyzer } from '../../task-runners/default-task-runner-disconnect-analyzer';
7
8
  import type { DisconnectAnalyzer, DisconnectReason, TaskBrokerServerInitRequest, TaskBrokerServerInitResponse } from '../../task-runners/task-broker/task-broker-types';
8
9
  import { TaskRunnerLifecycleEvents } from '../../task-runners/task-runner-lifecycle-events';
9
10
  import { TaskBroker, type TaskRunner } from './task-broker.service';
10
11
  type WsStatusCode = (typeof WsStatusCodes)[keyof typeof WsStatusCodes];
12
+ type RemoveConnectionOptions = {
13
+ reason?: DisconnectReason;
14
+ code?: WsStatusCode;
15
+ expectedConnection?: WebSocket;
16
+ };
11
17
  export declare class TaskBrokerWsServer {
12
18
  private readonly logger;
13
19
  private readonly taskBroker;
@@ -15,18 +21,23 @@ export declare class TaskBrokerWsServer {
15
21
  private readonly taskRunnersConfig;
16
22
  private readonly runnerLifecycleEvents;
17
23
  private readonly globalConfig;
24
+ private readonly eventService;
18
25
  runnerConnections: Map<TaskRunner['id'], WebSocket>;
19
26
  private heartbeatTimer;
20
- constructor(logger: Logger, taskBroker: TaskBroker, disconnectAnalyzer: DefaultTaskRunnerDisconnectAnalyzer, taskRunnersConfig: TaskRunnersConfig, runnerLifecycleEvents: TaskRunnerLifecycleEvents, globalConfig: GlobalConfig);
27
+ constructor(logger: Logger, taskBroker: TaskBroker, disconnectAnalyzer: DefaultTaskRunnerDisconnectAnalyzer, taskRunnersConfig: TaskRunnersConfig, runnerLifecycleEvents: TaskRunnerLifecycleEvents, globalConfig: GlobalConfig, eventService: EventService);
21
28
  start(): void;
29
+ private readonly onRunnerUnresponsive;
22
30
  private startHeartbeatChecks;
31
+ private checkConnectionLiveness;
23
32
  stop(): Promise<void>;
24
33
  setDisconnectAnalyzer(disconnectAnalyzer: DisconnectAnalyzer): void;
25
34
  getDisconnectAnalyzer(): DefaultTaskRunnerDisconnectAnalyzer;
26
35
  sendMessage(id: TaskRunner['id'], message: BrokerMessage.ToRunner.All): void;
27
36
  add(id: TaskRunner['id'], connection: WebSocket): void;
28
- removeConnection(id: TaskRunner['id'], reason?: DisconnectReason, code?: WsStatusCode): Promise<void>;
37
+ removeConnection(id: TaskRunner['id'], { reason, code, expectedConnection, }?: RemoveConnectionOptions): Promise<void>;
29
38
  handleRequest(req: TaskBrokerServerInitRequest, _res: TaskBrokerServerInitResponse): void;
39
+ private isCurrentConnection;
40
+ private isRunnerReachable;
30
41
  private stopConnectedRunners;
31
42
  private drainActiveTasks;
32
43
  }
@@ -16,6 +16,7 @@ const constants_1 = require("@n8n/constants");
16
16
  const di_1 = require("@n8n/di");
17
17
  const n8n_workflow_1 = require("n8n-workflow");
18
18
  const constants_2 = require("../../constants");
19
+ const event_service_1 = require("../../events/event.service");
19
20
  const default_task_runner_disconnect_analyzer_1 = require("../../task-runners/default-task-runner-disconnect-analyzer");
20
21
  const task_runner_lifecycle_events_1 = require("../../task-runners/task-runner-lifecycle-events");
21
22
  const task_broker_service_1 = require("./task-broker.service");
@@ -23,36 +24,55 @@ function heartbeat() {
23
24
  this.isAlive = true;
24
25
  }
25
26
  let TaskBrokerWsServer = class TaskBrokerWsServer {
26
- constructor(logger, taskBroker, disconnectAnalyzer, taskRunnersConfig, runnerLifecycleEvents, globalConfig) {
27
+ constructor(logger, taskBroker, disconnectAnalyzer, taskRunnersConfig, runnerLifecycleEvents, globalConfig, eventService) {
27
28
  this.logger = logger;
28
29
  this.taskBroker = taskBroker;
29
30
  this.disconnectAnalyzer = disconnectAnalyzer;
30
31
  this.taskRunnersConfig = taskRunnersConfig;
31
32
  this.runnerLifecycleEvents = runnerLifecycleEvents;
32
33
  this.globalConfig = globalConfig;
34
+ this.eventService = eventService;
33
35
  this.runnerConnections = new Map();
36
+ this.onRunnerUnresponsive = ({ runnerId, }) => {
37
+ void this.removeConnection(runnerId, {
38
+ reason: 'runner-unresponsive',
39
+ code: constants_2.WsStatusCodes.CloseProtocolError,
40
+ });
41
+ };
34
42
  }
35
43
  start() {
36
44
  this.startHeartbeatChecks();
45
+ this.runnerLifecycleEvents.on('runner:unresponsive', this.onRunnerUnresponsive);
37
46
  }
38
47
  startHeartbeatChecks() {
39
48
  const { heartbeatInterval } = this.taskRunnersConfig;
40
49
  if (heartbeatInterval <= 0) {
41
50
  throw new n8n_workflow_1.UserError('Heartbeat interval must be greater than 0');
42
51
  }
43
- this.heartbeatTimer = setInterval(() => {
44
- for (const [runnerId, connection] of this.runnerConnections.entries()) {
45
- if (!connection.isAlive) {
46
- void this.removeConnection(runnerId, 'failed-heartbeat-check', constants_2.WsStatusCodes.CloseProtocolError);
47
- this.runnerLifecycleEvents.emit('runner:failed-heartbeat-check');
48
- return;
49
- }
52
+ this.heartbeatTimer = setInterval(() => this.checkConnectionLiveness(), heartbeatInterval * constants_1.Time.seconds.toMilliseconds);
53
+ }
54
+ checkConnectionLiveness() {
55
+ for (const [runnerId, connection] of this.runnerConnections) {
56
+ if (connection.isAlive) {
50
57
  connection.isAlive = false;
51
58
  connection.ping();
52
59
  }
53
- }, heartbeatInterval * constants_1.Time.seconds.toMilliseconds);
60
+ else {
61
+ const taskTypes = this.taskBroker.getKnownRunners().get(runnerId)?.runner.taskTypes ?? [];
62
+ void this.removeConnection(runnerId, {
63
+ reason: 'failed-heartbeat-check',
64
+ code: constants_2.WsStatusCodes.CloseProtocolError,
65
+ expectedConnection: connection,
66
+ });
67
+ this.runnerLifecycleEvents.emit('runner:failed-heartbeat-check', {
68
+ runnerId,
69
+ taskTypes,
70
+ });
71
+ }
72
+ }
54
73
  }
55
74
  async stop() {
75
+ this.runnerLifecycleEvents.off('runner:unresponsive', this.onRunnerUnresponsive);
56
76
  if (this.heartbeatTimer) {
57
77
  clearInterval(this.heartbeatTimer);
58
78
  this.heartbeatTimer = undefined;
@@ -80,23 +100,23 @@ let TaskBrokerWsServer = class TaskBrokerWsServer {
80
100
  ? Buffer.from(data)
81
101
  : data;
82
102
  const message = JSON.parse(buffer.toString('utf8'));
83
- if (!isConnected && message.type !== 'runner:info') {
84
- return;
103
+ if (!isConnected) {
104
+ if (message.type === 'runner:info') {
105
+ await this.removeConnection(id);
106
+ isConnected = true;
107
+ this.runnerConnections.set(id, connection);
108
+ this.taskBroker.registerRunner({
109
+ id,
110
+ taskTypes: message.types,
111
+ lastSeen: new Date(),
112
+ name: message.name,
113
+ }, this.sendMessage.bind(this, id), () => this.isRunnerReachable(id, connection));
114
+ this.logger.info(`Registered runner "${message.name}" (${id}) `);
115
+ }
85
116
  }
86
- else if (!isConnected && message.type === 'runner:info') {
87
- await this.removeConnection(id);
88
- isConnected = true;
89
- this.runnerConnections.set(id, connection);
90
- this.taskBroker.registerRunner({
91
- id,
92
- taskTypes: message.types,
93
- lastSeen: new Date(),
94
- name: message.name,
95
- }, this.sendMessage.bind(this, id));
96
- this.logger.info(`Registered runner "${message.name}" (${id}) `);
97
- return;
117
+ else if (this.isCurrentConnection(id, connection)) {
118
+ void this.taskBroker.onRunnerMessage(id, message);
98
119
  }
99
- void this.taskBroker.onRunnerMessage(id, message);
100
120
  }
101
121
  catch (error) {
102
122
  this.logger.error(`Couldn't parse message from runner "${id}"`, {
@@ -109,31 +129,55 @@ let TaskBrokerWsServer = class TaskBrokerWsServer {
109
129
  connection.once('close', async () => {
110
130
  connection.off('pong', heartbeat);
111
131
  connection.off('message', onMessage);
112
- await this.removeConnection(id);
132
+ await this.removeConnection(id, { expectedConnection: connection });
113
133
  });
114
134
  connection.on('message', onMessage);
115
135
  connection.send(JSON.stringify({ type: 'broker:inforequest' }));
116
136
  }
117
- async removeConnection(id, reason = 'unknown', code = constants_2.WsStatusCodes.CloseNormal) {
137
+ async removeConnection(id, { reason = 'unknown', code = constants_2.WsStatusCodes.CloseNormal, expectedConnection, } = {}) {
118
138
  const connection = this.runnerConnections.get(id);
119
- if (connection) {
139
+ const isStaleRemoval = expectedConnection !== undefined && !this.isCurrentConnection(id, expectedConnection);
140
+ if (connection && !isStaleRemoval) {
141
+ this.runnerConnections.delete(id);
142
+ connection.close(code);
143
+ if (reason === 'failed-heartbeat-check' || reason === 'runner-unresponsive') {
144
+ this.eventService.emit('runner-disconnected', {
145
+ reason,
146
+ mode: this.taskRunnersConfig.mode,
147
+ });
148
+ }
149
+ const inFlightTaskIds = this.taskBroker.getInFlightTaskIds(id);
120
150
  const disconnectError = await this.disconnectAnalyzer.toDisconnectError({
121
151
  runnerId: id,
122
152
  reason,
123
153
  heartbeatInterval: this.taskRunnersConfig.heartbeatInterval,
124
154
  });
125
- this.taskBroker.deregisterRunner(id, disconnectError);
126
- this.logger.debug(`Deregistered runner "${id}"`);
127
- connection.close(code);
128
- this.runnerConnections.delete(id);
155
+ const hasReconnected = this.runnerConnections.has(id);
156
+ if (hasReconnected) {
157
+ this.taskBroker.failTasks(inFlightTaskIds, disconnectError);
158
+ }
159
+ else {
160
+ this.taskBroker.deregisterRunner(id, disconnectError);
161
+ this.logger.debug(`Deregistered runner "${id}"`);
162
+ }
129
163
  }
130
164
  }
131
165
  handleRequest(req, _res) {
132
166
  this.add(req.query.id, req.ws);
133
167
  }
168
+ isCurrentConnection(id, connection) {
169
+ return this.runnerConnections.get(id) === connection;
170
+ }
171
+ isRunnerReachable(id, connection) {
172
+ return this.isCurrentConnection(id, connection) && connection.readyState === connection.OPEN;
173
+ }
134
174
  async stopConnectedRunners() {
135
175
  await this.drainActiveTasks();
136
- await Promise.all(Array.from(this.runnerConnections.keys()).map(async (id) => await this.removeConnection(id, 'shutting-down', constants_2.WsStatusCodes.CloseGoingAway)));
176
+ await Promise.all(Array.from(this.runnerConnections.entries()).map(async ([id, connection]) => await this.removeConnection(id, {
177
+ reason: 'shutting-down',
178
+ code: constants_2.WsStatusCodes.CloseGoingAway,
179
+ expectedConnection: connection,
180
+ })));
137
181
  }
138
182
  async drainActiveTasks() {
139
183
  const drainTimeout = Math.floor(this.globalConfig.generic.gracefulShutdownTimeout * 0.8);
@@ -158,6 +202,6 @@ let TaskBrokerWsServer = class TaskBrokerWsServer {
158
202
  exports.TaskBrokerWsServer = TaskBrokerWsServer;
159
203
  exports.TaskBrokerWsServer = TaskBrokerWsServer = __decorate([
160
204
  (0, di_1.Service)(),
161
- __metadata("design:paramtypes", [backend_common_1.Logger, task_broker_service_1.TaskBroker, default_task_runner_disconnect_analyzer_1.DefaultTaskRunnerDisconnectAnalyzer, config_1.TaskRunnersConfig, task_runner_lifecycle_events_1.TaskRunnerLifecycleEvents, config_1.GlobalConfig])
205
+ __metadata("design:paramtypes", [backend_common_1.Logger, task_broker_service_1.TaskBroker, default_task_runner_disconnect_analyzer_1.DefaultTaskRunnerDisconnectAnalyzer, config_1.TaskRunnersConfig, task_runner_lifecycle_events_1.TaskRunnerLifecycleEvents, config_1.GlobalConfig, event_service_1.EventService])
162
206
  ], TaskBrokerWsServer);
163
207
  //# sourceMappingURL=task-broker-ws-server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"task-broker-ws-server.js","sourceRoot":"","sources":["../../../src/task-runners/task-broker/task-broker-ws-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-broker-ws-server.js","sourceRoot":"","sources":["../../../src/task-runners/task-broker/task-broker-ws-server.ts"],"names":[],"mappings":"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"}
@@ -30,11 +30,14 @@ export interface TaskRequest {
30
30
  taskType: string;
31
31
  timeout?: NodeJS.Timeout;
32
32
  acceptInProgress?: boolean;
33
+ timeoutRefreshes?: number;
33
34
  }
34
35
  export type MessageCallback = (message: BrokerMessage.ToRunner.All) => Promise<void> | void;
35
36
  export type RequesterMessageCallback = (message: BrokerMessage.ToRequester.All) => Promise<void> | void;
36
37
  type RunnerAcceptCallback = () => void;
38
+ type RequesterAcceptCallback = (settings: RequesterMessage.ToBroker.TaskSettings['settings']) => void;
37
39
  type TaskRejectCallback = (reason: TaskRejectError | TaskDeferredError) => void;
40
+ export type RunnerReachabilityCheck = () => boolean;
38
41
  export declare class TaskBroker {
39
42
  private readonly logger;
40
43
  private readonly taskRunnersConfig;
@@ -46,15 +49,22 @@ export declare class TaskBroker {
46
49
  private isDraining;
47
50
  private runnerAcceptRejects;
48
51
  private requesterAcceptRejects;
52
+ private consecutiveAcceptTimeouts;
49
53
  private pendingTaskOffers;
50
54
  private pendingTaskRequests;
51
55
  private mismatchWarned;
52
56
  constructor(logger: Logger, taskRunnersConfig: TaskRunnersConfig, taskRunnerLifecycleEvents: TaskRunnerLifecycleEvents, globalConfig: GlobalConfig);
53
57
  private createRequestTimeout;
58
+ private refreshRequestTimeout;
54
59
  private handleRequestTimeout;
60
+ private discardOffers;
55
61
  expireTasks(): void;
56
- registerRunner(runner: TaskRunner, messageCallback: MessageCallback): void;
62
+ private discardOffersFrom;
63
+ private discardOffersFromUnreachableRunners;
64
+ registerRunner(runner: TaskRunner, messageCallback: MessageCallback, isRunnerReachable?: RunnerReachabilityCheck): void;
57
65
  deregisterRunner(runnerId: string, error: Error): void;
66
+ getInFlightTaskIds(runnerId: TaskRunner['id']): Array<Task['id']>;
67
+ failTasks(taskIds: Array<Task['id']>, error: Error): void;
58
68
  registerRequester(requesterId: string, messageCallback: RequesterMessageCallback): void;
59
69
  deregisterRequester(requesterId: string): void;
60
70
  private messageRunner;
@@ -73,6 +83,7 @@ export declare class TaskBroker {
73
83
  handleRequesterNodeTypesResponse(taskId: Task['id'], requestId: RequesterMessage.ToBroker.NodeTypesResponse['requestId'], nodeTypes: RequesterMessage.ToBroker.NodeTypesResponse['nodeTypes']): Promise<void>;
74
84
  handleRequesterAccept(taskId: Task['id'], settings: RequesterMessage.ToBroker.TaskSettings['settings']): void;
75
85
  handleRequesterReject(taskId: Task['id'], reason: string): void;
86
+ private untrackTask;
76
87
  private cancelTask;
77
88
  private failTask;
78
89
  private getRunnerOrFailTask;
@@ -81,6 +92,10 @@ export declare class TaskBroker {
81
92
  taskDoneHandler(taskId: Task['id'], data: TaskResultData): Promise<void>;
82
93
  taskErrorHandler(taskId: Task['id'], error: unknown): Promise<void>;
83
94
  acceptOffer(offer: TaskOffer, request: TaskRequest): Promise<void>;
95
+ private flagRunnerIfUnresponsive;
96
+ private flagSilentRunners;
97
+ private reportUnresponsive;
98
+ private isSilent;
84
99
  settleTasks(): void;
85
100
  private warnOnTaskTypeMismatch;
86
101
  taskRequested(request: TaskRequest): void;
@@ -94,11 +109,17 @@ export declare class TaskBroker {
94
109
  getKnownRunners(): Map<string, {
95
110
  runner: TaskRunner;
96
111
  messageCallback: MessageCallback;
112
+ isRunnerReachable: RunnerReachabilityCheck;
97
113
  }>;
98
114
  getKnownRequesters(): Map<string, RequesterMessageCallback>;
99
115
  getRunnerAcceptRejects(): Map<string, {
100
116
  accept: RunnerAcceptCallback;
101
117
  reject: TaskRejectCallback;
118
+ runnerId: TaskRunner['id'];
119
+ }>;
120
+ getRequesterAcceptRejects(): Map<string, {
121
+ accept: RequesterAcceptCallback;
122
+ reject: TaskRejectCallback;
102
123
  }>;
103
124
  setTasks(tasks: Record<string, Task>): void;
104
125
  setPendingTaskOffers(pendingTaskOffers: TaskOffer[]): void;
@@ -106,6 +127,7 @@ export declare class TaskBroker {
106
127
  setRunnerAcceptRejects(runnerAcceptRejects: Record<string, {
107
128
  accept: RunnerAcceptCallback;
108
129
  reject: TaskRejectCallback;
130
+ runnerId: TaskRunner['id'];
109
131
  }>): void;
110
132
  }
111
133
  export {};