trigger.dev 3.0.0-beta.5 → 3.0.0-beta.50

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.
@@ -4,7 +4,7 @@ export const config: TriggerConfig = {
4
4
  project: "${projectRef}",
5
5
  logLevel: "log",
6
6
  retries: {
7
- enabledInDev: false,
7
+ enabledInDev: true,
8
8
  default: {
9
9
  maxAttempts: 3,
10
10
  minTimeoutInMs: 1000,
@@ -1,36 +1,40 @@
1
1
  // src/workers/dev/worker-facade.ts
2
2
  import {
3
- TaskExecutor,
4
- DurableClock,
5
3
  clock,
6
- logLevels,
7
- getEnvVar,
8
- ZodSchemaParsedError
4
+ taskCatalog
9
5
  } from "@trigger.dev/core/v3";
10
6
  import {
11
- ConsoleInterceptor,
12
- DevRuntimeManager,
7
+ TaskExecutor,
8
+ DurableClock,
9
+ getEnvVar,
10
+ logLevels,
13
11
  OtelTaskLogger,
12
+ ConsoleInterceptor,
13
+ usage,
14
+ DevUsageManager
15
+ } from "@trigger.dev/core/v3/workers";
16
+ import {
14
17
  TaskRunErrorCodes,
15
18
  TriggerTracer,
16
- ZodMessageHandler,
17
19
  logger,
18
20
  runtime,
19
21
  workerToChildMessages
20
22
  } from "@trigger.dev/core/v3";
21
-
22
- // package.json
23
- var version = "3.0.0-beta.5";
24
-
25
- // src/workers/dev/worker-facade.ts
23
+ import { DevRuntimeManager } from "@trigger.dev/core/v3/dev";
24
+ import {
25
+ ZodMessageHandler,
26
+ ZodSchemaParsedError
27
+ } from "@trigger.dev/core/v3/zodMessageHandler";
26
28
  __WORKER_SETUP__;
27
29
  __IMPORTED_PROJECT_CONFIG__;
28
- var otelTracer = tracingSDK.getTracer("trigger-dev-worker", version);
29
- var otelLogger = tracingSDK.getLogger("trigger-dev-worker", version);
30
30
  var durableClock = new DurableClock();
31
31
  clock.setGlobalClock(durableClock);
32
+ usage.setGlobalUsageManager(new DevUsageManager());
32
33
  var tracer = new TriggerTracer({ tracer: otelTracer, logger: otelLogger });
33
- var consoleInterceptor = new ConsoleInterceptor(otelLogger);
34
+ var consoleInterceptor = new ConsoleInterceptor(
35
+ otelLogger,
36
+ typeof __PROJECT_CONFIG__.enableConsoleLogging === "boolean" ? __PROJECT_CONFIG__.enableConsoleLogging : true
37
+ );
34
38
  var devRuntimeManager = new DevRuntimeManager();
35
39
  runtime.setGlobalRuntimeManager(devRuntimeManager);
36
40
  var triggerLogLevel = getEnvVar("TRIGGER_LOG_LEVEL");
@@ -38,56 +42,27 @@ var configLogLevel = triggerLogLevel ? triggerLogLevel : importedConfig ? import
38
42
  var otelTaskLogger = new OtelTaskLogger({
39
43
  logger: otelLogger,
40
44
  tracer,
41
- level: logLevels.includes(configLogLevel) ? configLogLevel : "log"
45
+ level: logLevels.includes(configLogLevel) ? configLogLevel : "info"
42
46
  });
43
47
  logger.setGlobalTaskLogger(otelTaskLogger);
44
48
  var TaskFileImports = {};
45
49
  var TaskFiles = {};
46
50
  __TASKS__;
47
- function getTasks() {
48
- const result = [];
51
+ (() => {
49
52
  for (const [importName, taskFile] of Object.entries(TaskFiles)) {
50
53
  const fileImports = TaskFileImports[importName];
51
54
  for (const [exportName, task] of Object.entries(fileImports ?? {})) {
52
- if (task.__trigger) {
53
- result.push({
54
- id: task.__trigger.id,
55
- exportName,
56
- packageVersion: task.__trigger.packageVersion,
57
- filePath: taskFile.filePath,
58
- queue: task.__trigger.queue,
59
- retry: task.__trigger.retry,
60
- machine: task.__trigger.machine,
61
- fns: task.__trigger.fns
62
- });
55
+ if (typeof task === "object" && task !== null && "id" in task && typeof task.id === "string") {
56
+ if (taskCatalog.taskExists(task.id)) {
57
+ taskCatalog.registerTaskFileMetadata(task.id, {
58
+ exportName,
59
+ filePath: taskFile.filePath
60
+ });
61
+ }
63
62
  }
64
63
  }
65
64
  }
66
- return result;
67
- }
68
- function getTaskMetadata() {
69
- const result = getTasks();
70
- return result.map((task) => {
71
- const { fns, ...metadata } = task;
72
- return metadata;
73
- });
74
- }
75
- var tasks = getTasks();
76
- runtime.registerTasks(tasks);
77
- var taskExecutors = /* @__PURE__ */ new Map();
78
- for (const task of tasks) {
79
- taskExecutors.set(
80
- task.id,
81
- new TaskExecutor(task, {
82
- tracer,
83
- tracingSDK,
84
- consoleInterceptor,
85
- projectConfig: __PROJECT_CONFIG__,
86
- importedConfig,
87
- handleErrorFn: handleError
88
- })
89
- );
90
- }
65
+ })();
91
66
  var _execution;
92
67
  var _isRunning = false;
93
68
  var handler = new ZodMessageHandler({
@@ -100,47 +75,77 @@ var handler = new ZodMessageHandler({
100
75
  execution,
101
76
  result: {
102
77
  ok: false,
103
- id: execution.attempt.id,
78
+ id: execution.run.id,
104
79
  error: {
105
80
  type: "INTERNAL_ERROR",
106
81
  code: TaskRunErrorCodes.TASK_ALREADY_RUNNING
82
+ },
83
+ usage: {
84
+ durationMs: 0
107
85
  }
108
86
  }
109
87
  });
110
88
  return;
111
89
  }
112
90
  process.title = `trigger-dev-worker: ${execution.task.id} ${execution.run.id}`;
113
- const executor = taskExecutors.get(execution.task.id);
114
- if (!executor) {
115
- console.error(`Could not find executor for task ${execution.task.id}`);
91
+ const task = taskCatalog.getTask(execution.task.id);
92
+ if (!task) {
93
+ console.error(`Could not find task ${execution.task.id}`);
116
94
  await sender.send("TASK_RUN_COMPLETED", {
117
95
  execution,
118
96
  result: {
119
97
  ok: false,
120
- id: execution.attempt.id,
98
+ id: execution.run.id,
121
99
  error: {
122
100
  type: "INTERNAL_ERROR",
123
101
  code: TaskRunErrorCodes.COULD_NOT_FIND_EXECUTOR
102
+ },
103
+ usage: {
104
+ durationMs: 0
124
105
  }
125
106
  }
126
107
  });
127
108
  return;
128
109
  }
110
+ const executor = new TaskExecutor(task, {
111
+ tracer,
112
+ tracingSDK,
113
+ consoleInterceptor,
114
+ projectConfig: __PROJECT_CONFIG__,
115
+ importedConfig,
116
+ handleErrorFn: handleError
117
+ });
129
118
  try {
130
119
  _execution = execution;
131
120
  _isRunning = true;
132
- const result = await executor.execute(execution, metadata, traceContext);
121
+ const measurement = usage.start();
122
+ const { result } = await executor.execute(execution, metadata, traceContext, measurement);
123
+ const usageSample = usage.stop(measurement);
133
124
  return sender.send("TASK_RUN_COMPLETED", {
134
125
  execution,
135
- result
126
+ result: {
127
+ ...result,
128
+ usage: {
129
+ durationMs: usageSample.cpuTime
130
+ }
131
+ }
136
132
  });
137
133
  } finally {
138
134
  _execution = void 0;
139
135
  _isRunning = false;
140
136
  }
141
137
  },
142
- TASK_RUN_COMPLETED_NOTIFICATION: async ({ completion, execution }) => {
143
- devRuntimeManager.resumeTask(completion, execution);
138
+ TASK_RUN_COMPLETED_NOTIFICATION: async (payload) => {
139
+ switch (payload.version) {
140
+ case "v1": {
141
+ devRuntimeManager.resumeTask(payload.completion, payload.execution.run.id);
142
+ break;
143
+ }
144
+ case "v2": {
145
+ devRuntimeManager.resumeTask(payload.completion, payload.completion.id);
146
+ break;
147
+ }
148
+ }
144
149
  },
145
150
  CLEANUP: async ({ flush, kill }) => {
146
151
  if (kill) {
@@ -157,7 +162,7 @@ var handler = new ZodMessageHandler({
157
162
  process.on("message", async (msg) => {
158
163
  await handler.handleMessage(msg);
159
164
  });
160
- var TASK_METADATA = getTaskMetadata();
165
+ var TASK_METADATA = taskCatalog.getAllTaskMetadata();
161
166
  sender.send("TASKS_READY", { tasks: TASK_METADATA }).catch((err) => {
162
167
  if (err instanceof ZodSchemaParsedError) {
163
168
  sender.send("TASKS_FAILED_TO_PARSE", { zodIssues: err.error.issues, tasks: TASK_METADATA });
@@ -166,7 +171,7 @@ sender.send("TASKS_READY", { tasks: TASK_METADATA }).catch((err) => {
166
171
  }
167
172
  });
168
173
  process.title = "trigger-dev-worker";
169
- async function asyncHeartbeat(initialDelayInSeconds = 30, intervalInSeconds = 5) {
174
+ async function asyncHeartbeat(initialDelayInSeconds = 30, intervalInSeconds = 30) {
170
175
  async function _doHeartbeat() {
171
176
  while (true) {
172
177
  if (_isRunning && _execution) {
@@ -1,40 +1,35 @@
1
1
  // src/workers/dev/worker-setup.ts
2
- import "source-map-support/register.js";
3
- import { Resource } from "@opentelemetry/resources";
2
+ import { childToWorkerMessages, taskCatalog } from "@trigger.dev/core/v3";
4
3
  import {
5
- SemanticInternalAttributes,
6
- TracingSDK,
7
- ZodMessageSender,
8
- childToWorkerMessages
9
- } from "@trigger.dev/core/v3";
4
+ StandardTaskCatalog,
5
+ TracingSDK
6
+ } from "@trigger.dev/core/v3/workers";
7
+ import { ZodMessageSender } from "@trigger.dev/core/v3/zodMessageHandler";
8
+ import "source-map-support/register.js";
9
+
10
+ // package.json
11
+ var version = "3.0.0-beta.50";
12
+
13
+ // src/workers/dev/worker-setup.ts
10
14
  __SETUP_IMPORTED_PROJECT_CONFIG__;
11
15
  var tracingSDK = new TracingSDK({
12
16
  url: process.env.OTEL_EXPORTER_OTLP_ENDPOINT ?? "http://0.0.0.0:4318",
13
- resource: new Resource({
14
- [SemanticInternalAttributes.CLI_VERSION]: "3.0.0"
15
- }),
16
17
  instrumentations: setupImportedConfig?.instrumentations ?? [],
17
- diagLogLevel: process.env.OTEL_LOG_LEVEL ?? "none"
18
+ diagLogLevel: process.env.OTEL_LOG_LEVEL ?? "none",
19
+ forceFlushTimeoutMillis: 5e3
18
20
  });
21
+ var otelTracer = tracingSDK.getTracer("trigger-dev-worker", version);
22
+ var otelLogger = tracingSDK.getLogger("trigger-dev-worker", version);
19
23
  var sender = new ZodMessageSender({
20
24
  schema: childToWorkerMessages,
21
25
  sender: async (message) => {
22
26
  process.send?.(message);
23
27
  }
24
28
  });
25
- process.on("uncaughtException", (error, origin) => {
26
- sender.send("UNCAUGHT_EXCEPTION", {
27
- error: {
28
- name: error.name,
29
- message: error.message,
30
- stack: error.stack
31
- },
32
- origin
33
- }).catch((err) => {
34
- console.error("Failed to send UNCAUGHT_EXCEPTION message", err);
35
- });
36
- });
29
+ taskCatalog.setGlobalTaskCatalog(new StandardTaskCatalog());
37
30
  export {
31
+ otelLogger,
32
+ otelTracer,
38
33
  sender,
39
34
  tracingSDK
40
35
  };