trigger.dev 3.0.0-beta.9 → 3.0.1

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 (231) hide show
  1. package/dist/esm/apiClient.d.ts +190 -0
  2. package/dist/esm/apiClient.js +239 -0
  3. package/dist/esm/apiClient.js.map +1 -0
  4. package/dist/esm/build/buildWorker.d.ts +68 -0
  5. package/dist/esm/build/buildWorker.js +159 -0
  6. package/dist/esm/build/buildWorker.js.map +1 -0
  7. package/dist/esm/build/bundle.d.ts +36 -0
  8. package/dist/esm/build/bundle.js +197 -0
  9. package/dist/esm/build/bundle.js.map +1 -0
  10. package/dist/esm/build/extensions.d.ts +15 -0
  11. package/dist/esm/build/extensions.js +158 -0
  12. package/dist/esm/build/extensions.js.map +1 -0
  13. package/dist/esm/build/externals.d.ts +15 -0
  14. package/dist/esm/build/externals.js +285 -0
  15. package/dist/esm/build/externals.js.map +1 -0
  16. package/dist/esm/build/manifests.d.ts +2 -0
  17. package/dist/esm/build/manifests.js +22 -0
  18. package/dist/esm/build/manifests.js.map +1 -0
  19. package/dist/esm/build/packageModules.d.ts +18 -0
  20. package/dist/esm/build/packageModules.js +84 -0
  21. package/dist/esm/build/packageModules.js.map +1 -0
  22. package/dist/esm/build/plugins.d.ts +6 -0
  23. package/dist/esm/build/plugins.js +67 -0
  24. package/dist/esm/build/plugins.js.map +1 -0
  25. package/dist/esm/build/resolveModule.d.ts +1 -0
  26. package/dist/esm/build/resolveModule.js +9 -0
  27. package/dist/esm/build/resolveModule.js.map +1 -0
  28. package/dist/esm/cli/common.d.ts +30 -0
  29. package/dist/esm/cli/common.js +85 -0
  30. package/dist/esm/cli/common.js.map +1 -0
  31. package/dist/esm/cli/index.d.ts +2 -0
  32. package/dist/esm/cli/index.js +27 -0
  33. package/dist/esm/cli/index.js.map +1 -0
  34. package/dist/esm/commands/deploy.d.ts +5 -0
  35. package/dist/esm/commands/deploy.js +402 -0
  36. package/dist/esm/commands/deploy.js.map +1 -0
  37. package/dist/esm/commands/dev.d.ts +37 -0
  38. package/dist/esm/commands/dev.js +128 -0
  39. package/dist/esm/commands/dev.js.map +1 -0
  40. package/dist/esm/commands/init.d.ts +3 -0
  41. package/dist/esm/commands/init.js +427 -0
  42. package/dist/esm/commands/init.js.map +1 -0
  43. package/dist/esm/commands/list-profiles.d.ts +23 -0
  44. package/dist/esm/commands/list-profiles.js +40 -0
  45. package/dist/esm/commands/list-profiles.js.map +1 -0
  46. package/dist/esm/commands/login.d.ts +28 -0
  47. package/dist/esm/commands/login.js +275 -0
  48. package/dist/esm/commands/login.js.map +1 -0
  49. package/dist/esm/commands/logout.d.ts +23 -0
  50. package/dist/esm/commands/logout.js +28 -0
  51. package/dist/esm/commands/logout.js.map +1 -0
  52. package/dist/esm/commands/update.d.ts +24 -0
  53. package/dist/esm/commands/update.js +243 -0
  54. package/dist/esm/commands/update.js.map +1 -0
  55. package/dist/esm/commands/whoami.d.ts +34 -0
  56. package/dist/esm/commands/whoami.js +70 -0
  57. package/dist/esm/commands/whoami.js.map +1 -0
  58. package/dist/esm/config.d.ts +22 -0
  59. package/dist/esm/config.js +204 -0
  60. package/dist/esm/config.js.map +1 -0
  61. package/dist/esm/consts.d.ts +4 -0
  62. package/dist/esm/consts.js +5 -0
  63. package/dist/esm/consts.js.map +1 -0
  64. package/dist/esm/deploy/buildImage.d.ts +69 -0
  65. package/dist/esm/deploy/buildImage.js +472 -0
  66. package/dist/esm/deploy/buildImage.js.map +1 -0
  67. package/dist/esm/deploy/logs.d.ts +19 -0
  68. package/dist/esm/deploy/logs.js +96 -0
  69. package/dist/esm/deploy/logs.js.map +1 -0
  70. package/dist/esm/dev/backgroundWorker.d.ts +114 -0
  71. package/dist/esm/dev/backgroundWorker.js +412 -0
  72. package/dist/esm/dev/backgroundWorker.js.map +1 -0
  73. package/dist/esm/dev/devOutput.d.ts +9 -0
  74. package/dist/esm/dev/devOutput.js +137 -0
  75. package/dist/esm/dev/devOutput.js.map +1 -0
  76. package/dist/esm/dev/devSession.d.ts +17 -0
  77. package/dist/esm/dev/devSession.js +156 -0
  78. package/dist/esm/dev/devSession.js.map +1 -0
  79. package/dist/esm/dev/workerRuntime.d.ts +16 -0
  80. package/dist/esm/dev/workerRuntime.js +258 -0
  81. package/dist/esm/dev/workerRuntime.js.map +1 -0
  82. package/dist/esm/entryPoints/deploy-index-controller.d.ts +1 -0
  83. package/dist/esm/entryPoints/deploy-index-controller.js +85 -0
  84. package/dist/esm/entryPoints/deploy-index-controller.js.map +1 -0
  85. package/dist/esm/entryPoints/deploy-index-worker.d.ts +1 -0
  86. package/dist/esm/entryPoints/deploy-index-worker.js +104 -0
  87. package/dist/esm/entryPoints/deploy-index-worker.js.map +1 -0
  88. package/dist/esm/entryPoints/deploy-run-controller.d.ts +1 -0
  89. package/dist/esm/entryPoints/deploy-run-controller.js +996 -0
  90. package/dist/esm/entryPoints/deploy-run-controller.js.map +1 -0
  91. package/dist/esm/entryPoints/deploy-run-worker.d.ts +1 -0
  92. package/dist/esm/entryPoints/deploy-run-worker.js +297 -0
  93. package/dist/esm/entryPoints/deploy-run-worker.js.map +1 -0
  94. package/dist/esm/entryPoints/dev-index-worker.d.ts +1 -0
  95. package/dist/esm/entryPoints/dev-index-worker.js +104 -0
  96. package/dist/esm/entryPoints/dev-index-worker.js.map +1 -0
  97. package/dist/esm/entryPoints/dev-run-worker.d.ts +1 -0
  98. package/dist/esm/entryPoints/dev-run-worker.js +254 -0
  99. package/dist/esm/entryPoints/dev-run-worker.js.map +1 -0
  100. package/dist/esm/entryPoints/loader.d.ts +1 -0
  101. package/dist/esm/entryPoints/loader.js +16 -0
  102. package/dist/esm/entryPoints/loader.js.map +1 -0
  103. package/dist/esm/executions/taskRunProcess.d.ts +115 -0
  104. package/dist/esm/executions/taskRunProcess.js +254 -0
  105. package/dist/esm/executions/taskRunProcess.js.map +1 -0
  106. package/dist/esm/imports/magicast.d.ts +2 -0
  107. package/dist/esm/imports/magicast.js +5 -0
  108. package/dist/esm/imports/magicast.js.map +1 -0
  109. package/dist/esm/imports/xdg-app-paths.d.ts +2 -0
  110. package/dist/esm/imports/xdg-app-paths.js +3 -0
  111. package/dist/esm/imports/xdg-app-paths.js.map +1 -0
  112. package/dist/{index.d.ts → esm/index.d.ts} +1 -0
  113. package/dist/esm/index.js +17 -0
  114. package/dist/esm/index.js.map +1 -0
  115. package/dist/esm/indexing/indexWorkerManifest.d.ts +85 -0
  116. package/dist/esm/indexing/indexWorkerManifest.js +76 -0
  117. package/dist/esm/indexing/indexWorkerManifest.js.map +1 -0
  118. package/dist/esm/indexing/registerTasks.d.ts +2 -0
  119. package/dist/esm/indexing/registerTasks.js +62 -0
  120. package/dist/esm/indexing/registerTasks.js.map +1 -0
  121. package/dist/esm/package.json +3 -0
  122. package/dist/esm/runtimes/bun.d.ts +2 -0
  123. package/dist/esm/runtimes/bun.js +11 -0
  124. package/dist/esm/runtimes/bun.js.map +1 -0
  125. package/dist/esm/shims/esm.d.ts +1 -0
  126. package/dist/esm/shims/esm.js +9 -0
  127. package/dist/esm/shims/esm.js.map +1 -0
  128. package/dist/esm/sourceDir.d.ts +1 -0
  129. package/dist/esm/sourceDir.js +4 -0
  130. package/dist/esm/sourceDir.js.map +1 -0
  131. package/dist/esm/telemetry/tracing.d.ts +3 -0
  132. package/dist/esm/telemetry/tracing.js +58 -0
  133. package/dist/esm/telemetry/tracing.js.map +1 -0
  134. package/dist/esm/types.d.ts +6 -0
  135. package/dist/esm/types.js +2 -0
  136. package/dist/esm/types.js.map +1 -0
  137. package/dist/esm/utilities/assertExhaustive.d.ts +1 -0
  138. package/dist/esm/utilities/assertExhaustive.js +4 -0
  139. package/dist/esm/utilities/assertExhaustive.js.map +1 -0
  140. package/dist/esm/utilities/buildManifest.d.ts +2 -0
  141. package/dist/esm/utilities/buildManifest.js +9 -0
  142. package/dist/esm/utilities/buildManifest.js.map +1 -0
  143. package/dist/esm/utilities/cliOutput.d.ts +20 -0
  144. package/dist/esm/utilities/cliOutput.js +88 -0
  145. package/dist/esm/utilities/cliOutput.js.map +1 -0
  146. package/dist/esm/utilities/configFiles.d.ts +29 -0
  147. package/dist/esm/utilities/configFiles.js +65 -0
  148. package/dist/esm/utilities/configFiles.js.map +1 -0
  149. package/dist/esm/utilities/createFileFromTemplate.d.ts +16 -0
  150. package/dist/esm/utilities/createFileFromTemplate.js +50 -0
  151. package/dist/esm/utilities/createFileFromTemplate.js.map +1 -0
  152. package/dist/esm/utilities/deployErrors.d.ts +19 -0
  153. package/dist/esm/utilities/deployErrors.js +117 -0
  154. package/dist/esm/utilities/deployErrors.js.map +1 -0
  155. package/dist/esm/utilities/dotEnv.d.ts +4 -0
  156. package/dist/esm/utilities/dotEnv.js +28 -0
  157. package/dist/esm/utilities/dotEnv.js.map +1 -0
  158. package/dist/esm/utilities/eventBus.d.ts +14 -0
  159. package/dist/esm/utilities/eventBus.js +3 -0
  160. package/dist/esm/utilities/eventBus.js.map +1 -0
  161. package/dist/esm/utilities/fileSystem.d.ts +12 -0
  162. package/dist/esm/utilities/fileSystem.js +81 -0
  163. package/dist/esm/utilities/fileSystem.js.map +1 -0
  164. package/dist/esm/utilities/getApiKeyType.d.ts +13 -0
  165. package/dist/esm/utilities/getApiKeyType.js +44 -0
  166. package/dist/esm/utilities/getApiKeyType.js.map +1 -0
  167. package/dist/esm/utilities/initialBanner.d.ts +4 -0
  168. package/dist/esm/utilities/initialBanner.js +82 -0
  169. package/dist/esm/utilities/initialBanner.js.map +1 -0
  170. package/dist/esm/utilities/keyValueBy.d.ts +8 -0
  171. package/dist/esm/utilities/keyValueBy.js +19 -0
  172. package/dist/esm/utilities/keyValueBy.js.map +1 -0
  173. package/dist/esm/utilities/links.d.ts +9 -0
  174. package/dist/esm/utilities/links.js +10 -0
  175. package/dist/esm/utilities/links.js.map +1 -0
  176. package/dist/esm/utilities/linux.d.ts +1 -0
  177. package/dist/esm/utilities/linux.js +24 -0
  178. package/dist/esm/utilities/linux.js.map +1 -0
  179. package/dist/esm/utilities/logger.d.ts +40 -0
  180. package/dist/esm/utilities/logger.js +109 -0
  181. package/dist/esm/utilities/logger.js.map +1 -0
  182. package/dist/esm/utilities/normalizeImportPath.d.ts +1 -0
  183. package/dist/esm/utilities/normalizeImportPath.js +5 -0
  184. package/dist/esm/utilities/normalizeImportPath.js.map +1 -0
  185. package/dist/esm/utilities/obfuscateApiKey.d.ts +1 -0
  186. package/dist/esm/utilities/obfuscateApiKey.js +5 -0
  187. package/dist/esm/utilities/obfuscateApiKey.js.map +1 -0
  188. package/dist/esm/utilities/parseNameAndPath.d.ts +2 -0
  189. package/dist/esm/utilities/parseNameAndPath.js +10 -0
  190. package/dist/esm/utilities/parseNameAndPath.js.map +1 -0
  191. package/dist/esm/utilities/resolveInternalFilePath.d.ts +1 -0
  192. package/dist/esm/utilities/resolveInternalFilePath.js +8 -0
  193. package/dist/esm/utilities/resolveInternalFilePath.js.map +1 -0
  194. package/dist/esm/utilities/runtimeCheck.d.ts +8 -0
  195. package/dist/esm/utilities/runtimeCheck.js +52 -0
  196. package/dist/esm/utilities/runtimeCheck.js.map +1 -0
  197. package/dist/esm/utilities/safeJsonParse.d.ts +1 -0
  198. package/dist/esm/utilities/safeJsonParse.js +12 -0
  199. package/dist/esm/utilities/safeJsonParse.js.map +1 -0
  200. package/dist/esm/utilities/sanitizeEnvVars.d.ts +3 -0
  201. package/dist/esm/utilities/sanitizeEnvVars.js +4 -0
  202. package/dist/esm/utilities/sanitizeEnvVars.js.map +1 -0
  203. package/dist/esm/utilities/session.d.ts +33 -0
  204. package/dist/esm/utilities/session.js +82 -0
  205. package/dist/esm/utilities/session.js.map +1 -0
  206. package/dist/esm/utilities/sourceFiles.d.ts +12 -0
  207. package/dist/esm/utilities/sourceFiles.js +76 -0
  208. package/dist/esm/utilities/sourceFiles.js.map +1 -0
  209. package/dist/esm/utilities/taskFiles.d.ts +6 -0
  210. package/dist/esm/utilities/taskFiles.js +69 -0
  211. package/dist/esm/utilities/taskFiles.js.map +1 -0
  212. package/dist/esm/utilities/tempDirectories.d.ts +16 -0
  213. package/dist/esm/utilities/tempDirectories.js +27 -0
  214. package/dist/esm/utilities/tempDirectories.js.map +1 -0
  215. package/dist/esm/utilities/windows.d.ts +7 -0
  216. package/dist/esm/utilities/windows.js +21 -0
  217. package/dist/esm/utilities/windows.js.map +1 -0
  218. package/dist/esm/version.d.ts +1 -0
  219. package/dist/esm/version.js +2 -0
  220. package/dist/esm/version.js.map +1 -0
  221. package/package.json +85 -82
  222. package/dist/Containerfile.prod +0 -39
  223. package/dist/index.js +0 -6115
  224. package/dist/index.js.map +0 -1
  225. package/dist/templates/examples/simple.ts.template +0 -14
  226. package/dist/templates/trigger.config.ts.template +0 -16
  227. package/dist/workers/dev/worker-facade.js +0 -187
  228. package/dist/workers/dev/worker-setup.js +0 -40
  229. package/dist/workers/prod/entry-point.js +0 -1146
  230. package/dist/workers/prod/worker-facade.js +0 -193
  231. package/dist/workers/prod/worker-setup.js +0 -35
@@ -0,0 +1,114 @@
1
+ import { BuildManifest, CreateBackgroundWorkerResponse, ServerBackgroundWorker, TaskRunExecution, TaskRunExecutionPayload, TaskRunExecutionResult, TaskRunFailedExecutionResult, WorkerManifest } from "@trigger.dev/core/v3";
2
+ import { Evt } from "evt";
3
+ import { TaskRunProcess } from "../executions/taskRunProcess.js";
4
+ export type CurrentWorkers = BackgroundWorkerCoordinator["currentWorkers"];
5
+ export declare class BackgroundWorkerCoordinator {
6
+ #private;
7
+ onTaskCompleted: Evt<{
8
+ backgroundWorkerId: string;
9
+ completion: TaskRunExecutionResult;
10
+ worker: BackgroundWorker;
11
+ execution: TaskRunExecution;
12
+ }>;
13
+ onTaskFailedToRun: Evt<{
14
+ backgroundWorkerId: string;
15
+ worker: BackgroundWorker;
16
+ completion: TaskRunFailedExecutionResult;
17
+ }>;
18
+ onWorkerRegistered: Evt<{
19
+ worker: BackgroundWorker;
20
+ id: string;
21
+ record: CreateBackgroundWorkerResponse;
22
+ }>;
23
+ /**
24
+ * @deprecated use onWorkerTaskRunHeartbeat instead
25
+ */
26
+ onWorkerTaskHeartbeat: Evt<{
27
+ id: string;
28
+ backgroundWorkerId: string;
29
+ worker: BackgroundWorker;
30
+ }>;
31
+ onWorkerTaskRunHeartbeat: Evt<{
32
+ id: string;
33
+ backgroundWorkerId: string;
34
+ worker: BackgroundWorker;
35
+ }>;
36
+ onWorkerDeprecated: Evt<{
37
+ worker: BackgroundWorker;
38
+ id: string;
39
+ }>;
40
+ private _backgroundWorkers;
41
+ constructor();
42
+ get currentWorkers(): {
43
+ id: string;
44
+ worker: BackgroundWorker;
45
+ }[];
46
+ cancelRun(id: string, taskRunId: string): Promise<void>;
47
+ registerWorker(worker: BackgroundWorker): Promise<void>;
48
+ close(): void;
49
+ executeTaskRun(id: string, payload: TaskRunExecutionPayload, messageId: string): Promise<{
50
+ id: string;
51
+ error: {
52
+ message: string;
53
+ type: "BUILT_IN_ERROR";
54
+ name: string;
55
+ stackTrace: string;
56
+ } | {
57
+ type: "CUSTOM_ERROR";
58
+ raw: string;
59
+ } | {
60
+ type: "STRING_ERROR";
61
+ raw: string;
62
+ } | {
63
+ code: "COULD_NOT_FIND_EXECUTOR" | "COULD_NOT_FIND_TASK" | "COULD_NOT_IMPORT_TASK" | "CONFIGURED_INCORRECTLY" | "TASK_ALREADY_RUNNING" | "TASK_EXECUTION_FAILED" | "TASK_EXECUTION_ABORTED" | "TASK_PROCESS_EXITED_WITH_NON_ZERO_CODE" | "TASK_PROCESS_SIGKILL_TIMEOUT" | "TASK_RUN_CANCELLED" | "TASK_OUTPUT_ERROR" | "HANDLE_ERROR_ERROR" | "GRACEFUL_EXIT_TIMEOUT" | "TASK_RUN_CRASHED" | "TASK_RUN_HEARTBEAT_TIMEOUT";
64
+ type: "INTERNAL_ERROR";
65
+ message?: string | undefined;
66
+ stackTrace?: string | undefined;
67
+ };
68
+ ok: false;
69
+ retry?: {
70
+ timestamp: number;
71
+ delay: number;
72
+ error?: unknown;
73
+ } | undefined;
74
+ skippedRetrying?: boolean | undefined;
75
+ usage?: {
76
+ durationMs: number;
77
+ } | undefined;
78
+ } | {
79
+ id: string;
80
+ ok: true;
81
+ outputType: string;
82
+ output?: string | undefined;
83
+ usage?: {
84
+ durationMs: number;
85
+ } | undefined;
86
+ } | undefined>;
87
+ }
88
+ export type BackgroundWorkerOptions = {
89
+ env: Record<string, string>;
90
+ cwd: string;
91
+ };
92
+ export declare class BackgroundWorker {
93
+ #private;
94
+ build: BuildManifest;
95
+ params: BackgroundWorkerOptions;
96
+ onTaskRunHeartbeat: Evt<string>;
97
+ private _onClose;
98
+ deprecated: boolean;
99
+ manifest: WorkerManifest | undefined;
100
+ serverWorker: ServerBackgroundWorker | undefined;
101
+ _taskRunProcesses: Map<string, TaskRunProcess>;
102
+ private _taskRunProcessesBeingKilled;
103
+ private _closed;
104
+ constructor(build: BuildManifest, params: BackgroundWorkerOptions);
105
+ deprecate(): void;
106
+ close(): void;
107
+ get inProgressRuns(): Array<string>;
108
+ get workerManifestPath(): string;
109
+ get buildManifestPath(): string;
110
+ initialize(): Promise<void>;
111
+ taskRunCompletedNotification(completion: TaskRunExecutionResult): Promise<void>;
112
+ cancelRun(taskRunId: string): Promise<void>;
113
+ executeTaskRun(payload: TaskRunExecutionPayload, messageId: string): Promise<TaskRunExecutionResult>;
114
+ }
@@ -0,0 +1,412 @@
1
+ import { TaskRunErrorCodes, correctErrorStackTrace, } from "@trigger.dev/core/v3";
2
+ import { Evt } from "evt";
3
+ import { join } from "node:path";
4
+ import { CancelledProcessError, CleanupProcessError, SigKillTimeoutProcessError, UnexpectedExitError, getFriendlyErrorMessage, } from "@trigger.dev/core/v3/errors";
5
+ import { TaskRunProcess } from "../executions/taskRunProcess.js";
6
+ import { indexWorkerManifest } from "../indexing/indexWorkerManifest.js";
7
+ import { prettyError } from "../utilities/cliOutput.js";
8
+ import { eventBus } from "../utilities/eventBus.js";
9
+ import { writeJSONFile } from "../utilities/fileSystem.js";
10
+ import { logger } from "../utilities/logger.js";
11
+ import { execOptionsForRuntime } from "@trigger.dev/core/v3/build";
12
+ import { sanitizeEnvVars } from "../utilities/sanitizeEnvVars.js";
13
+ export class BackgroundWorkerCoordinator {
14
+ onTaskCompleted = new Evt();
15
+ onTaskFailedToRun = new Evt();
16
+ onWorkerRegistered = new Evt();
17
+ /**
18
+ * @deprecated use onWorkerTaskRunHeartbeat instead
19
+ */
20
+ onWorkerTaskHeartbeat = new Evt();
21
+ onWorkerTaskRunHeartbeat = new Evt();
22
+ onWorkerDeprecated = new Evt();
23
+ _backgroundWorkers = new Map();
24
+ constructor() {
25
+ this.onTaskCompleted.attach(async ({ completion }) => {
26
+ if (!completion.ok && typeof completion.retry !== "undefined") {
27
+ return;
28
+ }
29
+ await this.#notifyWorkersOfTaskCompletion(completion);
30
+ });
31
+ this.onTaskFailedToRun.attach(async ({ completion }) => {
32
+ await this.#notifyWorkersOfTaskCompletion(completion);
33
+ });
34
+ }
35
+ async #notifyWorkersOfTaskCompletion(completion) {
36
+ for (const worker of this._backgroundWorkers.values()) {
37
+ await worker.taskRunCompletedNotification(completion);
38
+ }
39
+ }
40
+ get currentWorkers() {
41
+ return Array.from(this._backgroundWorkers.entries()).map(([id, worker]) => ({
42
+ id,
43
+ worker,
44
+ }));
45
+ }
46
+ async cancelRun(id, taskRunId) {
47
+ const worker = this._backgroundWorkers.get(id);
48
+ if (!worker) {
49
+ logger.error(`Could not find worker ${id}`);
50
+ return;
51
+ }
52
+ await worker.cancelRun(taskRunId);
53
+ }
54
+ async registerWorker(worker) {
55
+ if (!worker.serverWorker) {
56
+ return;
57
+ }
58
+ for (const [workerId, existingWorker] of this._backgroundWorkers.entries()) {
59
+ if (workerId === worker.serverWorker.id) {
60
+ continue;
61
+ }
62
+ existingWorker.deprecate();
63
+ this.onWorkerDeprecated.post({ worker: existingWorker, id: workerId });
64
+ }
65
+ this._backgroundWorkers.set(worker.serverWorker.id, worker);
66
+ this.onWorkerRegistered.post({
67
+ worker,
68
+ id: worker.serverWorker.id,
69
+ record: worker.serverWorker,
70
+ });
71
+ worker.onTaskRunHeartbeat.attach((id) => {
72
+ this.onWorkerTaskRunHeartbeat.post({
73
+ id,
74
+ backgroundWorkerId: worker.serverWorker.id,
75
+ worker,
76
+ });
77
+ });
78
+ }
79
+ close() {
80
+ for (const worker of this._backgroundWorkers.values()) {
81
+ worker.close();
82
+ }
83
+ this._backgroundWorkers.clear();
84
+ }
85
+ async executeTaskRun(id, payload, messageId) {
86
+ const worker = this._backgroundWorkers.get(id);
87
+ if (!worker) {
88
+ logger.error(`Could not find worker ${id}`);
89
+ return;
90
+ }
91
+ try {
92
+ const completion = await worker.executeTaskRun(payload, messageId);
93
+ this.onTaskCompleted.post({
94
+ completion,
95
+ execution: payload.execution,
96
+ worker,
97
+ backgroundWorkerId: id,
98
+ });
99
+ return completion;
100
+ }
101
+ catch (error) {
102
+ this.onTaskFailedToRun.post({
103
+ backgroundWorkerId: id,
104
+ worker,
105
+ completion: {
106
+ ok: false,
107
+ id: payload.execution.run.id,
108
+ retry: undefined,
109
+ error: error instanceof Error
110
+ ? {
111
+ type: "BUILT_IN_ERROR",
112
+ name: error.name,
113
+ message: error.message,
114
+ stackTrace: error.stack ?? "",
115
+ }
116
+ : {
117
+ type: "BUILT_IN_ERROR",
118
+ name: "UnknownError",
119
+ message: String(error),
120
+ stackTrace: "",
121
+ },
122
+ },
123
+ });
124
+ }
125
+ return;
126
+ }
127
+ }
128
+ export class BackgroundWorker {
129
+ build;
130
+ params;
131
+ onTaskRunHeartbeat = new Evt();
132
+ _onClose = new Evt();
133
+ deprecated = false;
134
+ manifest;
135
+ serverWorker;
136
+ _taskRunProcesses = new Map();
137
+ _taskRunProcessesBeingKilled = new Map();
138
+ _closed = false;
139
+ constructor(build, params) {
140
+ this.build = build;
141
+ this.params = params;
142
+ }
143
+ deprecate() {
144
+ this.deprecated = true;
145
+ }
146
+ close() {
147
+ if (this._closed) {
148
+ return;
149
+ }
150
+ this._closed = true;
151
+ this.onTaskRunHeartbeat.detach();
152
+ // We need to close all the task run processes
153
+ for (const taskRunProcess of this._taskRunProcesses.values()) {
154
+ taskRunProcess.cleanup(true);
155
+ }
156
+ // Delete worker files
157
+ this._onClose.post();
158
+ }
159
+ get inProgressRuns() {
160
+ return Array.from(this._taskRunProcesses.keys());
161
+ }
162
+ get workerManifestPath() {
163
+ return join(this.build.outputPath, "index.json");
164
+ }
165
+ get buildManifestPath() {
166
+ return join(this.build.outputPath, "build.json");
167
+ }
168
+ async initialize() {
169
+ if (this.manifest) {
170
+ throw new Error("Worker already initialized");
171
+ }
172
+ // Write the build manifest to this.build.outputPath/build.json
173
+ await writeJSONFile(this.buildManifestPath, this.build, true);
174
+ logger.debug("indexing worker manifest", { build: this.build, params: this.params });
175
+ this.manifest = await indexWorkerManifest({
176
+ runtime: this.build.runtime,
177
+ indexWorkerPath: this.build.indexWorkerEntryPoint,
178
+ buildManifestPath: this.buildManifestPath,
179
+ nodeOptions: execOptionsForRuntime(this.build.runtime, this.build),
180
+ env: this.params.env,
181
+ cwd: this.params.cwd,
182
+ otelHookInclude: this.build.otelImportHook?.include,
183
+ otelHookExclude: this.build.otelImportHook?.exclude,
184
+ handleStdout(data) {
185
+ logger.debug(data);
186
+ },
187
+ handleStderr(data) {
188
+ if (!data.includes("Debugger attached")) {
189
+ prettyError(data.toString());
190
+ }
191
+ },
192
+ });
193
+ // Write the build manifest to this.build.outputPath/worker.json
194
+ await writeJSONFile(this.workerManifestPath, this.manifest, true);
195
+ logger.debug("worker manifest indexed", { path: this.build.outputPath });
196
+ }
197
+ // We need to notify all the task run processes that a task run has completed,
198
+ // in case they are waiting for it through triggerAndWait
199
+ async taskRunCompletedNotification(completion) {
200
+ for (const taskRunProcess of this._taskRunProcesses.values()) {
201
+ taskRunProcess.taskRunCompletedNotification(completion);
202
+ }
203
+ }
204
+ #prefixedMessage(payload, message = "") {
205
+ return `[${payload.execution.run.id}.${payload.execution.attempt.number}] ${message}`;
206
+ }
207
+ async #getFreshTaskRunProcess(payload, messageId) {
208
+ logger.debug(this.#prefixedMessage(payload, "getFreshTaskRunProcess()"));
209
+ if (!this.serverWorker) {
210
+ throw new Error("Worker not registered");
211
+ }
212
+ if (!this.manifest) {
213
+ throw new Error("Worker not initialized");
214
+ }
215
+ this._closed = false;
216
+ logger.debug(this.#prefixedMessage(payload, "killing current task run process before attempt"));
217
+ await this.#killCurrentTaskRunProcessBeforeAttempt(payload.execution.run.id);
218
+ logger.debug(this.#prefixedMessage(payload, "creating new task run process"));
219
+ const processOptions = {
220
+ payload,
221
+ env: {
222
+ ...sanitizeEnvVars(this.params.env),
223
+ // TODO: this needs the stripEmptyValues stuff too
224
+ ...sanitizeEnvVars(payload.environment ?? {}),
225
+ TRIGGER_WORKER_MANIFEST_PATH: this.workerManifestPath,
226
+ },
227
+ serverWorker: this.serverWorker,
228
+ workerManifest: this.manifest,
229
+ messageId,
230
+ };
231
+ const taskRunProcess = new TaskRunProcess(processOptions);
232
+ taskRunProcess.onExit.attach(({ pid }) => {
233
+ logger.debug(this.#prefixedMessage(payload, "onExit()"), { pid });
234
+ const taskRunProcess = this._taskRunProcesses.get(payload.execution.run.id);
235
+ // Only delete the task run process if the pid matches
236
+ if (taskRunProcess?.pid === pid) {
237
+ this._taskRunProcesses.delete(payload.execution.run.id);
238
+ }
239
+ if (pid) {
240
+ this._taskRunProcessesBeingKilled.delete(pid);
241
+ }
242
+ });
243
+ taskRunProcess.onIsBeingKilled.attach((taskRunProcess) => {
244
+ if (taskRunProcess.pid) {
245
+ this._taskRunProcessesBeingKilled.set(taskRunProcess.pid, taskRunProcess);
246
+ }
247
+ });
248
+ taskRunProcess.onTaskRunHeartbeat.attach((id) => {
249
+ this.onTaskRunHeartbeat.post(id);
250
+ });
251
+ taskRunProcess.onReadyToDispose.attach(async () => {
252
+ await taskRunProcess.kill();
253
+ });
254
+ await taskRunProcess.initialize();
255
+ this._taskRunProcesses.set(payload.execution.run.id, taskRunProcess);
256
+ return taskRunProcess;
257
+ }
258
+ async #killCurrentTaskRunProcessBeforeAttempt(runId) {
259
+ const taskRunProcess = this._taskRunProcesses.get(runId);
260
+ if (!taskRunProcess) {
261
+ logger.debug(`[${runId}] no current task process to kill`);
262
+ return;
263
+ }
264
+ logger.debug(`[${runId}] killing current task process`, {
265
+ pid: taskRunProcess.pid,
266
+ });
267
+ if (taskRunProcess.isBeingKilled) {
268
+ if (this._taskRunProcessesBeingKilled.size > 1) {
269
+ await this.#tryGracefulExit(taskRunProcess);
270
+ }
271
+ else {
272
+ // If there's only one or none being killed, don't do anything so we can create a fresh one in parallel
273
+ }
274
+ }
275
+ else {
276
+ // It's not being killed, so kill it
277
+ if (this._taskRunProcessesBeingKilled.size > 0) {
278
+ await this.#tryGracefulExit(taskRunProcess);
279
+ }
280
+ else {
281
+ // There's none being killed yet, so we can kill it without waiting. We still set a timeout to kill it forcefully just in case it sticks around.
282
+ taskRunProcess.kill("SIGTERM", 5_000).catch(() => { });
283
+ }
284
+ }
285
+ }
286
+ async #tryGracefulExit(taskRunProcess, kill = false, initialSignal = "SIGTERM") {
287
+ try {
288
+ const initialExit = taskRunProcess.onExit.waitFor(5_000);
289
+ if (kill) {
290
+ taskRunProcess.kill(initialSignal);
291
+ }
292
+ await initialExit;
293
+ }
294
+ catch (error) {
295
+ logger.error("TaskRunProcess graceful kill timeout exceeded", error);
296
+ this.#tryForcefulExit(taskRunProcess);
297
+ }
298
+ }
299
+ async #tryForcefulExit(taskRunProcess) {
300
+ try {
301
+ const forcedKill = taskRunProcess.onExit.waitFor(5_000);
302
+ taskRunProcess.kill("SIGKILL");
303
+ await forcedKill;
304
+ }
305
+ catch (error) {
306
+ logger.error("TaskRunProcess forced kill timeout exceeded", error);
307
+ throw new SigKillTimeoutProcessError();
308
+ }
309
+ }
310
+ async cancelRun(taskRunId) {
311
+ const taskRunProcess = this._taskRunProcesses.get(taskRunId);
312
+ if (!taskRunProcess) {
313
+ return;
314
+ }
315
+ await taskRunProcess.cancel();
316
+ }
317
+ // We need to fork the process before we can execute any tasks
318
+ async executeTaskRun(payload, messageId) {
319
+ if (this._closed) {
320
+ throw new Error("Worker is closed");
321
+ }
322
+ if (!this.manifest) {
323
+ throw new Error("Worker not initialized");
324
+ }
325
+ if (!this.serverWorker) {
326
+ throw new Error("Worker not registered");
327
+ }
328
+ eventBus.emit("runStarted", this, payload);
329
+ const now = performance.now();
330
+ const completion = await this.#doExecuteTaskRun(payload, messageId);
331
+ const elapsed = performance.now() - now;
332
+ eventBus.emit("runCompleted", this, payload, completion, elapsed);
333
+ return completion;
334
+ }
335
+ async #doExecuteTaskRun(payload, messageId) {
336
+ try {
337
+ const taskRunProcess = await this.#getFreshTaskRunProcess(payload, messageId);
338
+ logger.debug(this.#prefixedMessage(payload, "executing task run"), {
339
+ pid: taskRunProcess.pid,
340
+ });
341
+ const result = await taskRunProcess.execute();
342
+ // Always kill the worker
343
+ await taskRunProcess.cleanup(true);
344
+ if (result.ok) {
345
+ return result;
346
+ }
347
+ const error = result.error;
348
+ if (error.type === "BUILT_IN_ERROR") {
349
+ const mappedError = await this.#correctError(error, payload.execution);
350
+ return {
351
+ ...result,
352
+ error: mappedError,
353
+ };
354
+ }
355
+ return result;
356
+ }
357
+ catch (e) {
358
+ if (e instanceof CancelledProcessError) {
359
+ return {
360
+ id: payload.execution.run.id,
361
+ ok: false,
362
+ retry: undefined,
363
+ error: {
364
+ type: "INTERNAL_ERROR",
365
+ code: TaskRunErrorCodes.TASK_RUN_CANCELLED,
366
+ },
367
+ };
368
+ }
369
+ if (e instanceof CleanupProcessError) {
370
+ return {
371
+ id: payload.execution.run.id,
372
+ ok: false,
373
+ retry: undefined,
374
+ error: {
375
+ type: "INTERNAL_ERROR",
376
+ code: TaskRunErrorCodes.TASK_EXECUTION_ABORTED,
377
+ },
378
+ };
379
+ }
380
+ if (e instanceof UnexpectedExitError) {
381
+ return {
382
+ id: payload.execution.run.id,
383
+ ok: false,
384
+ retry: undefined,
385
+ error: {
386
+ type: "INTERNAL_ERROR",
387
+ code: TaskRunErrorCodes.TASK_PROCESS_EXITED_WITH_NON_ZERO_CODE,
388
+ message: getFriendlyErrorMessage(e.code, e.signal, e.stderr),
389
+ stackTrace: e.stderr,
390
+ },
391
+ };
392
+ }
393
+ return {
394
+ id: payload.execution.run.id,
395
+ ok: false,
396
+ retry: undefined,
397
+ error: {
398
+ type: "INTERNAL_ERROR",
399
+ code: TaskRunErrorCodes.TASK_EXECUTION_FAILED,
400
+ message: String(e),
401
+ },
402
+ };
403
+ }
404
+ }
405
+ async #correctError(error, execution) {
406
+ return {
407
+ ...error,
408
+ stackTrace: correctErrorStackTrace(error.stackTrace, this.params.cwd),
409
+ };
410
+ }
411
+ }
412
+ //# sourceMappingURL=backgroundWorker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backgroundWorker.js","sourceRoot":"","sources":["../../../src/dev/backgroundWorker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { ResolvedConfig } from "@trigger.dev/core/v3/build";
2
+ import { DevCommandOptions } from "../commands/dev.js";
3
+ export type DevOutputOptions = {
4
+ name: string | undefined;
5
+ dashboardUrl: string;
6
+ config: ResolvedConfig;
7
+ args: DevCommandOptions;
8
+ };
9
+ export declare function startDevOutput(options: DevOutputOptions): () => void;