trigger.dev 3.0.0-beta.37 → 3.0.0-beta.38

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.
@@ -9,7 +9,9 @@ import {
9
9
  getEnvVar,
10
10
  logLevels,
11
11
  OtelTaskLogger,
12
- ConsoleInterceptor
12
+ ConsoleInterceptor,
13
+ usage,
14
+ DevUsageManager
13
15
  } from "@trigger.dev/core/v3/workers";
14
16
  import {
15
17
  TaskRunErrorCodes,
@@ -27,6 +29,7 @@ __WORKER_SETUP__;
27
29
  __IMPORTED_PROJECT_CONFIG__;
28
30
  var durableClock = new DurableClock();
29
31
  clock.setGlobalClock(durableClock);
32
+ usage.setGlobalUsageManager(new DevUsageManager());
30
33
  var tracer = new TriggerTracer({ tracer: otelTracer, logger: otelLogger });
31
34
  var consoleInterceptor = new ConsoleInterceptor(
32
35
  otelLogger,
@@ -76,6 +79,9 @@ var handler = new ZodMessageHandler({
76
79
  error: {
77
80
  type: "INTERNAL_ERROR",
78
81
  code: TaskRunErrorCodes.TASK_ALREADY_RUNNING
82
+ },
83
+ usage: {
84
+ durationMs: 0
79
85
  }
80
86
  }
81
87
  });
@@ -93,6 +99,9 @@ var handler = new ZodMessageHandler({
93
99
  error: {
94
100
  type: "INTERNAL_ERROR",
95
101
  code: TaskRunErrorCodes.COULD_NOT_FIND_EXECUTOR
102
+ },
103
+ usage: {
104
+ durationMs: 0
96
105
  }
97
106
  }
98
107
  });
@@ -109,10 +118,17 @@ var handler = new ZodMessageHandler({
109
118
  try {
110
119
  _execution = execution;
111
120
  _isRunning = true;
112
- 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);
113
124
  return sender.send("TASK_RUN_COMPLETED", {
114
125
  execution,
115
- result
126
+ result: {
127
+ ...result,
128
+ usage: {
129
+ durationMs: usageSample.cpuTime
130
+ }
131
+ }
116
132
  });
117
133
  } finally {
118
134
  _execution = void 0;
@@ -8,7 +8,7 @@ import { ZodMessageSender } from "@trigger.dev/core/v3/zodMessageHandler";
8
8
  import "source-map-support/register.js";
9
9
 
10
10
  // package.json
11
- var version = "3.0.0-beta.37";
11
+ var version = "3.0.0-beta.38";
12
12
 
13
13
  // src/workers/dev/worker-setup.ts
14
14
  __SETUP_IMPORTED_PROJECT_CONFIG__;
@@ -686,7 +686,10 @@ var TaskRunProcess = class {
686
686
  const killParentProcess = kill && !killChildProcess;
687
687
  console.log("Cleaning up task run process", {
688
688
  killChildProcess,
689
- killParentProcess
689
+ killParentProcess,
690
+ ipc: this._ipc,
691
+ childPid: this._childPid,
692
+ realChildPid: this._child?.pid
690
693
  });
691
694
  await this._ipc?.sendWithAck(
692
695
  "CLEANUP",
@@ -6,12 +6,15 @@ import {
6
6
  taskCatalog
7
7
  } from "@trigger.dev/core/v3";
8
8
  import {
9
- TaskExecutor,
9
+ ConsoleInterceptor,
10
+ DevUsageManager,
10
11
  DurableClock,
12
+ OtelTaskLogger,
13
+ ProdUsageManager,
14
+ TaskExecutor,
11
15
  getEnvVar,
12
16
  logLevels,
13
- OtelTaskLogger,
14
- ConsoleInterceptor
17
+ usage
15
18
  } from "@trigger.dev/core/v3/workers";
16
19
  import { ZodIpcConnection } from "@trigger.dev/core/v3/zodIpc";
17
20
  import { ZodSchemaParsedError } from "@trigger.dev/core/v3/zodMessageHandler";
@@ -25,6 +28,15 @@ import {
25
28
  import { ProdRuntimeManager } from "@trigger.dev/core/v3/prod";
26
29
  __WORKER_SETUP__;
27
30
  __IMPORTED_PROJECT_CONFIG__;
31
+ var heartbeatIntervalMs = getEnvVar("USAGE_HEARTBEAT_INTERVAL_MS");
32
+ var usageEventUrl = getEnvVar("USAGE_EVENT_URL");
33
+ var triggerJWT = getEnvVar("TRIGGER_JWT");
34
+ var prodUsageManager = new ProdUsageManager(new DevUsageManager(), {
35
+ heartbeatIntervalMs: heartbeatIntervalMs ? parseInt(heartbeatIntervalMs, 10) : void 0,
36
+ url: usageEventUrl,
37
+ jwt: triggerJWT
38
+ });
39
+ usage.setGlobalUsageManager(prodUsageManager);
28
40
  var durableClock = new DurableClock();
29
41
  clock.setGlobalClock(durableClock);
30
42
  var tracer = new TriggerTracer({ tracer: otelTracer, logger: otelLogger });
@@ -106,10 +118,17 @@ var zodIpc = new ZodIpcConnection({
106
118
  try {
107
119
  _execution = execution;
108
120
  _isRunning = true;
109
- const result = await executor.execute(execution, metadata, traceContext);
110
- return sender.send("TASK_RUN_COMPLETED", {
121
+ const measurement = usage.start();
122
+ const { result } = await executor.execute(execution, metadata, traceContext, measurement);
123
+ const usageSample = usage.stop(measurement);
124
+ return await sender.send("TASK_RUN_COMPLETED", {
111
125
  execution,
112
- result
126
+ result: {
127
+ ...result,
128
+ usage: {
129
+ durationMs: usageSample.cpuTime
130
+ }
131
+ }
113
132
  });
114
133
  } finally {
115
134
  _execution = void 0;
@@ -124,11 +143,11 @@ var zodIpc = new ZodIpcConnection({
124
143
  },
125
144
  CLEANUP: async ({ flush, kill }, sender) => {
126
145
  if (kill) {
127
- await tracingSDK.flush();
146
+ await Promise.all([prodUsageManager.flush(), tracingSDK.flush()]);
128
147
  await sender.send("READY_TO_DISPOSE", void 0);
129
148
  } else {
130
149
  if (flush) {
131
- await tracingSDK.flush();
150
+ await Promise.all([prodUsageManager.flush(), tracingSDK.flush()]);
132
151
  }
133
152
  }
134
153
  }
@@ -140,10 +159,23 @@ var prodRuntimeManager = new ProdRuntimeManager(zodIpc, {
140
159
  waitThresholdInMs: parseInt(process.env.TRIGGER_RUNTIME_WAIT_THRESHOLD_IN_MS ?? "30000", 10)
141
160
  });
142
161
  runtime.setGlobalRuntimeManager(prodRuntimeManager);
143
- var TASK_METADATA = taskCatalog.getAllTaskMetadata();
144
- zodIpc.send("TASKS_READY", { tasks: TASK_METADATA }).catch((err) => {
162
+ var taskMetadata = taskCatalog.getAllTaskMetadata();
163
+ if (typeof importedConfig?.machine === "string") {
164
+ taskMetadata = taskMetadata.map((task) => {
165
+ if (typeof task.machine?.preset !== "string") {
166
+ return {
167
+ ...task,
168
+ machine: {
169
+ preset: importedConfig.machine
170
+ }
171
+ };
172
+ }
173
+ return task;
174
+ });
175
+ }
176
+ zodIpc.send("TASKS_READY", { tasks: taskMetadata }).catch((err) => {
145
177
  if (err instanceof ZodSchemaParsedError) {
146
- zodIpc.send("TASKS_FAILED_TO_PARSE", { zodIssues: err.error.issues, tasks: TASK_METADATA });
178
+ zodIpc.send("TASKS_FAILED_TO_PARSE", { zodIssues: err.error.issues, tasks: taskMetadata });
147
179
  } else {
148
180
  console.error("Failed to send TASKS_READY message", err);
149
181
  }
@@ -1,5 +1,5 @@
1
1
  // package.json
2
- var version = "3.0.0-beta.37";
2
+ var version = "3.0.0-beta.38";
3
3
 
4
4
  // src/workers/prod/worker-setup.ts
5
5
  import { taskCatalog } from "@trigger.dev/core/v3";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "trigger.dev",
3
- "version": "3.0.0-beta.37",
3
+ "version": "3.0.0-beta.38",
4
4
  "description": "A Command-Line Interface for Trigger.dev (v3) projects",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -51,9 +51,9 @@
51
51
  "tsup": "^8.0.1",
52
52
  "type-fest": "^3.6.0",
53
53
  "typescript": "^5.3.3",
54
- "vitest": "^0.34.4",
54
+ "vitest": "^1.6.0",
55
55
  "xdg-app-paths": "^8.3.0",
56
- "@trigger.dev/core-apps": "3.0.0-beta.37",
56
+ "@trigger.dev/core-apps": "3.0.0-beta.38",
57
57
  "@trigger.dev/tsconfig": "0.0.0"
58
58
  },
59
59
  "dependencies": {
@@ -72,7 +72,7 @@
72
72
  "@opentelemetry/sdk-trace-base": "^1.22.0",
73
73
  "@opentelemetry/sdk-trace-node": "^1.22.0",
74
74
  "@opentelemetry/semantic-conventions": "^1.22.0",
75
- "@trigger.dev/core": "3.0.0-beta.37",
75
+ "@trigger.dev/core": "3.0.0-beta.38",
76
76
  "@types/degit": "^2.8.3",
77
77
  "chalk": "^5.2.0",
78
78
  "chokidar": "^3.5.3",
@@ -129,6 +129,7 @@
129
129
  "dev:test": "nodemon -w src/Containerfile.prod -x npm run build:prod-containerfile",
130
130
  "clean": "rimraf dist",
131
131
  "start": "node dist/index.js",
132
- "test": "vitest"
132
+ "test": "vitest",
133
+ "test:e2e": "vitest --run -c e2e/vite.config.js"
133
134
  }
134
135
  }