trigger.dev 0.0.0-prerelease-20240219135254 → 0.0.0-v3-canary-20240321115026

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.
@@ -0,0 +1,179 @@
1
+ // src/workers/prod/worker-facade.ts
2
+ import {
3
+ ProdChildToWorkerMessages,
4
+ ProdWorkerToChildMessages,
5
+ TaskExecutor,
6
+ ZodIpcConnection,
7
+ preciseDateOriginNow
8
+ } from "@trigger.dev/core/v3";
9
+ import "source-map-support/register.js";
10
+ import {
11
+ ConsoleInterceptor,
12
+ OtelTaskLogger,
13
+ ProdRuntimeManager,
14
+ TaskRunErrorCodes,
15
+ TriggerTracer,
16
+ logger,
17
+ runtime
18
+ } from "@trigger.dev/core/v3";
19
+
20
+ // package.json
21
+ var version = "0.0.0-v3-canary-20240321115026";
22
+
23
+ // src/workers/prod/worker-facade.ts
24
+ __WORKER_SETUP__;
25
+ __IMPORTED_PROJECT_CONFIG__;
26
+ var otelTracer = tracingSDK.getTracer("trigger-prod-worker", version);
27
+ var otelLogger = tracingSDK.getLogger("trigger-prod-worker", version);
28
+ var preciseDateOrigin = preciseDateOriginNow();
29
+ var tracer = new TriggerTracer({ tracer: otelTracer, logger: otelLogger });
30
+ var consoleInterceptor = new ConsoleInterceptor(otelLogger, preciseDateOrigin);
31
+ var otelTaskLogger = new OtelTaskLogger({
32
+ logger: otelLogger,
33
+ tracer,
34
+ level: "info",
35
+ preciseDateOrigin
36
+ });
37
+ logger.setGlobalTaskLogger(otelTaskLogger);
38
+ var TaskFileImports = {};
39
+ var TaskFiles = {};
40
+ __TASKS__;
41
+ function getTasks() {
42
+ const result = [];
43
+ for (const [importName, taskFile] of Object.entries(TaskFiles)) {
44
+ const fileImports = TaskFileImports[importName];
45
+ for (const [exportName, task] of Object.entries(fileImports ?? {})) {
46
+ if (task.__trigger) {
47
+ result.push({
48
+ id: task.__trigger.id,
49
+ exportName,
50
+ packageVersion: task.__trigger.packageVersion,
51
+ filePath: taskFile.filePath,
52
+ queue: task.__trigger.queue,
53
+ retry: task.__trigger.retry,
54
+ fns: task.__trigger.fns
55
+ });
56
+ }
57
+ }
58
+ }
59
+ return result;
60
+ }
61
+ function getTaskMetadata() {
62
+ const result = getTasks();
63
+ return result.map((task) => {
64
+ const { fns, ...metadata } = task;
65
+ return metadata;
66
+ });
67
+ }
68
+ var tasks = getTasks();
69
+ runtime.registerTasks(tasks);
70
+ var taskExecutors = /* @__PURE__ */ new Map();
71
+ for (const task of tasks) {
72
+ taskExecutors.set(
73
+ task.id,
74
+ new TaskExecutor(task, {
75
+ tracer,
76
+ tracingSDK,
77
+ consoleInterceptor,
78
+ projectConfig: __PROJECT_CONFIG__,
79
+ importedConfig,
80
+ handleErrorFn: handleError
81
+ })
82
+ );
83
+ }
84
+ var _execution;
85
+ var _isRunning = false;
86
+ var zodIpc = new ZodIpcConnection({
87
+ listenSchema: ProdWorkerToChildMessages,
88
+ emitSchema: ProdChildToWorkerMessages,
89
+ process,
90
+ handlers: {
91
+ EXECUTE_TASK_RUN: async ({ execution, traceContext, metadata }, sender) => {
92
+ if (_isRunning) {
93
+ console.error("Worker is already running a task");
94
+ await sender.send("TASK_RUN_COMPLETED", {
95
+ execution,
96
+ result: {
97
+ ok: false,
98
+ id: execution.attempt.id,
99
+ error: {
100
+ type: "INTERNAL_ERROR",
101
+ code: TaskRunErrorCodes.TASK_ALREADY_RUNNING
102
+ }
103
+ }
104
+ });
105
+ return;
106
+ }
107
+ process.title = `trigger-prod-worker: ${execution.task.id} ${execution.run.id}`;
108
+ const executor = taskExecutors.get(execution.task.id);
109
+ if (!executor) {
110
+ console.error(`Could not find executor for task ${execution.task.id}`);
111
+ await sender.send("TASK_RUN_COMPLETED", {
112
+ execution,
113
+ result: {
114
+ ok: false,
115
+ id: execution.attempt.id,
116
+ error: {
117
+ type: "INTERNAL_ERROR",
118
+ code: TaskRunErrorCodes.COULD_NOT_FIND_EXECUTOR
119
+ }
120
+ }
121
+ });
122
+ return;
123
+ }
124
+ try {
125
+ _execution = execution;
126
+ _isRunning = true;
127
+ const result = await executor.execute(execution, metadata, traceContext);
128
+ return sender.send("TASK_RUN_COMPLETED", {
129
+ execution,
130
+ result
131
+ });
132
+ } finally {
133
+ _execution = void 0;
134
+ _isRunning = false;
135
+ }
136
+ },
137
+ TASK_RUN_COMPLETED_NOTIFICATION: async ({ completion, execution }) => {
138
+ prodRuntimeManager.resumeTask(completion, execution);
139
+ },
140
+ WAIT_COMPLETED_NOTIFICATION: async () => {
141
+ prodRuntimeManager.resumeAfterRestore();
142
+ },
143
+ CLEANUP: async ({ flush, kill }, sender) => {
144
+ if (kill) {
145
+ await tracingSDK.flush();
146
+ await sender.send("READY_TO_DISPOSE", void 0);
147
+ } else {
148
+ if (flush) {
149
+ await tracingSDK.flush();
150
+ }
151
+ }
152
+ }
153
+ }
154
+ });
155
+ var prodRuntimeManager = new ProdRuntimeManager(zodIpc);
156
+ runtime.setGlobalRuntimeManager(prodRuntimeManager);
157
+ zodIpc.send("TASKS_READY", { tasks: getTaskMetadata() }).catch((err) => {
158
+ console.error("Failed to send TASKS_READY message", err);
159
+ });
160
+ process.title = "trigger-prod-worker";
161
+ async function asyncHeartbeat(initialDelayInSeconds = 30, intervalInSeconds = 5) {
162
+ async function _doHeartbeat() {
163
+ while (true) {
164
+ if (_isRunning && _execution) {
165
+ try {
166
+ await zodIpc.send("TASK_HEARTBEAT", { id: _execution.attempt.id });
167
+ } catch (err) {
168
+ console.error("Failed to send HEARTBEAT message", err);
169
+ }
170
+ }
171
+ await new Promise((resolve) => setTimeout(resolve, 1e3 * intervalInSeconds));
172
+ }
173
+ }
174
+ await new Promise((resolve) => setTimeout(resolve, 1e3 * initialDelayInSeconds));
175
+ return _doHeartbeat();
176
+ }
177
+ asyncHeartbeat(5).catch((err) => {
178
+ console.error("Failed to start asyncHeartbeat", err);
179
+ });
@@ -0,0 +1,35 @@
1
+ // src/workers/prod/worker-setup.ts
2
+ import { Resource } from "@opentelemetry/resources";
3
+ import { OpenAIInstrumentation } from "@traceloop/instrumentation-openai";
4
+ import {
5
+ SemanticInternalAttributes,
6
+ TracingSDK
7
+ } from "@trigger.dev/core/v3";
8
+ var tracingSDK = new TracingSDK({
9
+ url: process.env.OTEL_EXPORTER_OTLP_ENDPOINT ?? "http://0.0.0.0:4318",
10
+ resource: new Resource({
11
+ [SemanticInternalAttributes.CLI_VERSION]: "3.0.0"
12
+ }),
13
+ instrumentations: [new OpenAIInstrumentation()],
14
+ diagLogLevel: process.env.OTEL_LOG_LEVEL ?? "none"
15
+ });
16
+ process.on("uncaughtException", (error, origin) => {
17
+ process.send?.({
18
+ type: "EVENT",
19
+ message: {
20
+ type: "UNCAUGHT_EXCEPTION",
21
+ payload: {
22
+ error: {
23
+ name: error.name,
24
+ message: error.message,
25
+ stack: error.stack
26
+ },
27
+ origin
28
+ },
29
+ version: "v1"
30
+ }
31
+ });
32
+ });
33
+ export {
34
+ tracingSDK
35
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "trigger.dev",
3
- "version": "0.0.0-prerelease-20240219135254",
3
+ "version": "0.0.0-v3-canary-20240321115026",
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",
@@ -36,12 +36,16 @@
36
36
  },
37
37
  "devDependencies": {
38
38
  "@types/gradient-string": "^1.1.2",
39
+ "@types/jsonlines": "^0.1.5",
39
40
  "@types/mock-fs": "^4.13.1",
40
41
  "@types/node": "18",
41
42
  "@types/object-hash": "^3.0.6",
42
43
  "@types/react": "^18.2.48",
44
+ "@types/semver": "^7.3.13",
43
45
  "@types/ws": "^8.5.3",
46
+ "cpy-cli": "^5.0.0",
44
47
  "npm-run-all": "^4.1.5",
48
+ "npm-watch": "^0.11.0",
45
49
  "open": "^10.0.3",
46
50
  "p-retry": "^6.1.0",
47
51
  "rimraf": "^3.0.2",
@@ -50,11 +54,16 @@
50
54
  "typescript": "^5.3.3",
51
55
  "vitest": "^0.34.4",
52
56
  "xdg-app-paths": "^8.3.0",
53
- "@trigger.dev/core": "0.0.0-prerelease-20240219135254",
54
- "@trigger.dev/tsconfig": "0.0.0"
57
+ "@trigger.dev/tsconfig": "0.0.0",
58
+ "@trigger.dev/core-apps": "0.0.0-v3-canary-20240321115026"
59
+ },
60
+ "watch": {
61
+ "build:prod-containerfile": "src/Containerfile.prod"
55
62
  },
56
63
  "dependencies": {
64
+ "@baselime/node-opentelemetry": "^0.4.6",
57
65
  "@clack/prompts": "^0.7.0",
66
+ "@depot/cli": "0.0.1-cli.2.55.0",
58
67
  "@opentelemetry/api": "^1.7.0",
59
68
  "@opentelemetry/api-logs": "^0.48.0",
60
69
  "@opentelemetry/auto-instrumentations-node": "^0.40.3",
@@ -70,20 +79,23 @@
70
79
  "@opentelemetry/sdk-trace-base": "^1.21.0",
71
80
  "@opentelemetry/sdk-trace-node": "^1.21.0",
72
81
  "@opentelemetry/semantic-conventions": "^1.21.0",
82
+ "@traceloop/instrumentation-openai": "^0.3.9",
73
83
  "@types/degit": "^2.8.3",
74
84
  "chalk": "^5.2.0",
75
85
  "chokidar": "^3.5.3",
76
86
  "cli-table3": "^0.6.3",
77
87
  "commander": "^9.4.1",
78
88
  "degit": "^2.8.4",
79
- "dotenv": "^16.3.1",
89
+ "dotenv": "^16.4.4",
80
90
  "esbuild": "^0.19.11",
81
91
  "evt": "^2.4.13",
82
- "execa": "^7.0.0",
92
+ "execa": "^8.0.0",
83
93
  "find-up": "^7.0.0",
84
94
  "gradient-string": "^2.0.2",
85
95
  "import-meta-resolve": "^4.0.0",
86
96
  "ink": "^4.4.1",
97
+ "jsonc-parser": "^3.2.1",
98
+ "jsonlines": "^0.1.1",
87
99
  "liquidjs": "^10.9.2",
88
100
  "mock-fs": "^5.2.0",
89
101
  "nanoid": "^4.0.2",
@@ -92,31 +104,36 @@
92
104
  "object-hash": "^3.0.0",
93
105
  "p-throttle": "^6.1.0",
94
106
  "partysocket": "^0.0.17",
95
- "posthog-node": "^3.1.1",
96
107
  "proxy-agent": "^6.3.0",
97
108
  "react": "^18.2.0",
98
109
  "react-error-boundary": "^4.0.12",
110
+ "semver": "^7.5.0",
99
111
  "simple-git": "^3.19.0",
100
- "source-map": "^0.7.4",
112
+ "socket.io-client": "^4.7.4",
113
+ "source-map-support": "^0.5.21",
101
114
  "supports-color": "^9.4.0",
102
115
  "terminal-link": "^3.0.0",
116
+ "tiny-invariant": "^1.2.0",
103
117
  "update-check": "^1.5.4",
104
118
  "url": "^0.11.1",
105
119
  "ws": "^8.12.0",
106
120
  "zod": "3.22.3",
107
- "@trigger.dev/core": "0.0.0-prerelease-20240219135254"
121
+ "zod-validation-error": "^1.5.0",
122
+ "@trigger.dev/core": "0.0.0-v3-canary-20240321115026"
108
123
  },
109
124
  "engines": {
110
125
  "node": ">=18.0.0"
111
126
  },
112
127
  "scripts": {
113
- "typecheck": "tsc",
128
+ "typecheck": "tsc -p tsconfig.check.json",
114
129
  "build": "npm run clean && run-p build:**",
115
130
  "build:main": "tsup",
116
- "build:facade": "tsup --config tsup.facade.config.ts",
131
+ "build:workers": "tsup --config tsup.workers.config.ts",
132
+ "build:prod-containerfile": "cpy --flat src/Containerfile.prod dist/",
117
133
  "dev": "npm run clean && run-p dev:**",
118
134
  "dev:main": "tsup --watch",
119
- "dev:facade": "tsup --config tsup.facade.config.ts --watch",
135
+ "dev:workers": "tsup --config tsup.workers.config.ts --watch",
136
+ "dev:prod-containerfile": "npm-watch",
120
137
  "clean": "rimraf dist",
121
138
  "start": "node dist/index.js",
122
139
  "test": "vitest"
@@ -1,2 +0,0 @@
1
-
2
- export { }
@@ -1,188 +0,0 @@
1
- // src/worker-facade.ts
2
- import { TracingSDK, HttpInstrumentation, FetchInstrumentation } from "@trigger.dev/core/v3/otel";
3
- import { SpanKind } from "@opentelemetry/api";
4
- import {
5
- ConsoleInterceptor,
6
- DevRuntimeManager,
7
- OtelTaskLogger,
8
- SemanticInternalAttributes,
9
- TaskRunContext,
10
- TaskRunErrorCodes,
11
- TriggerTracer,
12
- ZodMessageHandler,
13
- ZodMessageSender,
14
- childToWorkerMessages,
15
- logger,
16
- parseError,
17
- runtime,
18
- taskContextManager,
19
- workerToChildMessages
20
- } from "@trigger.dev/core/v3";
21
-
22
- // package.json
23
- var version = "0.0.0-prerelease-20240219135254";
24
-
25
- // src/worker-facade.ts
26
- import { Resource } from "@opentelemetry/resources";
27
- import { flattenAttributes } from "@trigger.dev/core/v3";
28
- var tracingSDK = new TracingSDK({
29
- url: process.env.OTEL_EXPORTER_OTLP_ENDPOINT ?? "http://0.0.0.0:4318",
30
- resource: new Resource({
31
- [SemanticInternalAttributes.CLI_VERSION]: version
32
- }),
33
- instrumentations: [new HttpInstrumentation(), new FetchInstrumentation()]
34
- });
35
- var otelTracer = tracingSDK.getTracer("trigger-dev-worker", version);
36
- var otelLogger = tracingSDK.getLogger("trigger-dev-worker", version);
37
- var tracer = new TriggerTracer({ tracer: otelTracer, logger: otelLogger });
38
- var consoleInterceptor = new ConsoleInterceptor(otelLogger);
39
- var devRuntimeManager = new DevRuntimeManager({
40
- tracer
41
- });
42
- runtime.setGlobalRuntimeManager(devRuntimeManager);
43
- var otelTaskLogger = new OtelTaskLogger({
44
- logger: otelLogger,
45
- level: "info"
46
- });
47
- logger.setGlobalTaskLogger(otelTaskLogger);
48
- var TaskFileImports = {};
49
- var TaskFiles = {};
50
- __TASKS__;
51
- var TaskExecutor = class {
52
- constructor(task) {
53
- this.task = task;
54
- }
55
- async execute(execution, worker, traceContext) {
56
- const parsedPayload = JSON.parse(execution.run.payload);
57
- const ctx = TaskRunContext.parse(execution);
58
- const output = await taskContextManager.runWith(
59
- {
60
- ctx,
61
- payload: parsedPayload,
62
- worker
63
- },
64
- async () => {
65
- tracingSDK.asyncResourceDetector.resolveWithAttributes({
66
- ...taskContextManager.attributes,
67
- [SemanticInternalAttributes.SDK_VERSION]: this.task.packageVersion,
68
- [SemanticInternalAttributes.SDK_LANGUAGE]: "typescript"
69
- });
70
- return await tracer.startActiveSpan(
71
- `Attempt #${execution.attempt.number}`,
72
- async (span) => {
73
- return await consoleInterceptor.intercept(console, async () => {
74
- const output2 = await this.task.run({
75
- payload: parsedPayload,
76
- ctx: TaskRunContext.parse(execution)
77
- });
78
- span.setAttributes(flattenAttributes(output2, SemanticInternalAttributes.OUTPUT));
79
- return output2;
80
- });
81
- },
82
- {
83
- kind: SpanKind.CONSUMER,
84
- attributes: {
85
- [SemanticInternalAttributes.STYLE_ICON]: "task"
86
- }
87
- },
88
- tracer.extractContext(traceContext)
89
- );
90
- }
91
- );
92
- return { output: JSON.stringify(output), outputType: "application/json" };
93
- }
94
- };
95
- function getTasks() {
96
- const result = [];
97
- for (const [importName, taskFile] of Object.entries(TaskFiles)) {
98
- const fileImports = TaskFileImports[importName];
99
- for (const [exportName, task] of Object.entries(fileImports ?? {})) {
100
- if (task.__trigger) {
101
- result.push({
102
- id: task.__trigger.id,
103
- exportName,
104
- packageVersion: task.__trigger.packageVersion,
105
- filePath: taskFile.filePath,
106
- run: task.__trigger.run
107
- });
108
- }
109
- }
110
- }
111
- return result;
112
- }
113
- function getTaskMetadata() {
114
- const result = getTasks();
115
- return result.map((task) => {
116
- const { run, ...metadata } = task;
117
- return metadata;
118
- });
119
- }
120
- var sender = new ZodMessageSender({
121
- schema: childToWorkerMessages,
122
- sender: async (message) => {
123
- process.send?.(message);
124
- }
125
- });
126
- var tasks = getTasks();
127
- var taskExecutors = /* @__PURE__ */ new Map();
128
- for (const task of tasks) {
129
- taskExecutors.set(task.id, new TaskExecutor(task));
130
- }
131
- var handler = new ZodMessageHandler({
132
- schema: workerToChildMessages,
133
- messages: {
134
- EXECUTE_TASK_RUN: async ({ execution, traceContext, metadata }) => {
135
- process.title = `trigger-dev-worker: ${execution.task.id} ${execution.attempt.id}`;
136
- const executor = taskExecutors.get(execution.task.id);
137
- if (!executor) {
138
- console.error(`Could not find executor for task ${execution.task.id}`);
139
- await sender.send("TASK_RUN_COMPLETED", {
140
- result: {
141
- ok: false,
142
- id: execution.attempt.id,
143
- error: {
144
- type: "INTERNAL_ERROR",
145
- code: TaskRunErrorCodes.COULD_NOT_FIND_EXECUTOR
146
- }
147
- }
148
- });
149
- return;
150
- }
151
- try {
152
- const result = await executor.execute(execution, metadata, traceContext);
153
- return sender.send("TASK_RUN_COMPLETED", {
154
- result: {
155
- id: execution.attempt.id,
156
- ok: true,
157
- ...result
158
- }
159
- });
160
- } catch (e) {
161
- return sender.send("TASK_RUN_COMPLETED", {
162
- result: {
163
- id: execution.attempt.id,
164
- ok: false,
165
- error: parseError(e)
166
- }
167
- });
168
- }
169
- },
170
- TASK_RUN_COMPLETED: async ({ completion, execution }) => {
171
- devRuntimeManager.resumeTask(completion, execution);
172
- },
173
- CLEANUP: async ({ flush }) => {
174
- if (flush) {
175
- await tracingSDK.flushOtel();
176
- }
177
- await sender.send("READY_TO_DISPOSE", void 0);
178
- }
179
- }
180
- });
181
- process.on("message", async (msg) => {
182
- await handler.handleMessage(msg);
183
- });
184
- sender.send("TASKS_READY", { tasks: getTaskMetadata() }).catch((err) => {
185
- console.error("Failed to send TASKS_READY message", err);
186
- });
187
- process.title = "trigger-dev-worker";
188
- //# sourceMappingURL=worker-facade.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/worker-facade.ts","../package.json"],"sourcesContent":["import { TracingSDK, HttpInstrumentation, FetchInstrumentation } from \"@trigger.dev/core/v3/otel\";\n\n// IMPORTANT: this needs to be the first import to work properly\nconst tracingSDK = new TracingSDK({\n url: process.env.OTEL_EXPORTER_OTLP_ENDPOINT ?? \"http://0.0.0.0:4318\",\n resource: new Resource({\n [SemanticInternalAttributes.CLI_VERSION]: packageJson.version,\n }),\n instrumentations: [new HttpInstrumentation(), new FetchInstrumentation()],\n});\n\nconst otelTracer = tracingSDK.getTracer(\"trigger-dev-worker\", packageJson.version);\nconst otelLogger = tracingSDK.getLogger(\"trigger-dev-worker\", packageJson.version);\n\nimport { SpanKind } from \"@opentelemetry/api\";\nimport {\n BackgroundWorkerRecord,\n ConsoleInterceptor,\n DevRuntimeManager,\n OtelTaskLogger,\n SemanticInternalAttributes,\n TaskMetadataWithFilePath,\n TaskRunContext,\n TaskRunErrorCodes,\n TaskRunExecution,\n TriggerTracer,\n ZodMessageHandler,\n ZodMessageSender,\n childToWorkerMessages,\n logger,\n parseError,\n runtime,\n taskContextManager,\n workerToChildMessages,\n} from \"@trigger.dev/core/v3\";\nimport * as packageJson from \"../package.json\";\n\nimport { Resource } from \"@opentelemetry/resources\";\nimport { flattenAttributes } from \"@trigger.dev/core/v3\";\nimport { TaskMetadataWithRun } from \"./types.js\";\n\nconst tracer = new TriggerTracer({ tracer: otelTracer, logger: otelLogger });\nconst consoleInterceptor = new ConsoleInterceptor(otelLogger);\n\nconst devRuntimeManager = new DevRuntimeManager({\n tracer,\n});\n\nruntime.setGlobalRuntimeManager(devRuntimeManager);\n\nconst otelTaskLogger = new OtelTaskLogger({\n logger: otelLogger,\n level: \"info\",\n});\n\nlogger.setGlobalTaskLogger(otelTaskLogger);\n\ntype TaskFileImport = Record<string, unknown>;\n\nconst TaskFileImports: Record<string, TaskFileImport> = {};\nconst TaskFiles: Record<string, string> = {};\n\n__TASKS__;\ndeclare const __TASKS__: Record<string, string>;\n\nclass TaskExecutor {\n constructor(public task: TaskMetadataWithRun) {}\n\n async execute(\n execution: TaskRunExecution,\n worker: BackgroundWorkerRecord,\n traceContext: Record<string, unknown>\n ) {\n const parsedPayload = JSON.parse(execution.run.payload);\n const ctx = TaskRunContext.parse(execution);\n\n const output = await taskContextManager.runWith(\n {\n ctx,\n payload: parsedPayload,\n worker,\n },\n async () => {\n tracingSDK.asyncResourceDetector.resolveWithAttributes({\n ...taskContextManager.attributes,\n [SemanticInternalAttributes.SDK_VERSION]: this.task.packageVersion,\n [SemanticInternalAttributes.SDK_LANGUAGE]: \"typescript\",\n });\n\n return await tracer.startActiveSpan(\n `Attempt #${execution.attempt.number}`,\n async (span) => {\n return await consoleInterceptor.intercept(console, async () => {\n const output = await this.task.run({\n payload: parsedPayload,\n ctx: TaskRunContext.parse(execution),\n });\n\n span.setAttributes(flattenAttributes(output, SemanticInternalAttributes.OUTPUT));\n\n return output;\n });\n },\n {\n kind: SpanKind.CONSUMER,\n attributes: {\n [SemanticInternalAttributes.STYLE_ICON]: \"task\",\n },\n },\n tracer.extractContext(traceContext)\n );\n }\n );\n\n return { output: JSON.stringify(output), outputType: \"application/json\" };\n }\n}\n\nfunction getTasks(): Array<TaskMetadataWithRun> {\n const result: Array<TaskMetadataWithRun> = [];\n\n for (const [importName, taskFile] of Object.entries(TaskFiles)) {\n const fileImports = TaskFileImports[importName];\n\n for (const [exportName, task] of Object.entries(fileImports ?? {})) {\n if ((task as any).__trigger) {\n result.push({\n id: (task as any).__trigger.id,\n exportName,\n packageVersion: (task as any).__trigger.packageVersion,\n filePath: (taskFile as any).filePath,\n run: (task as any).__trigger.run,\n });\n }\n }\n }\n\n return result;\n}\n\nfunction getTaskMetadata(): Array<TaskMetadataWithFilePath> {\n const result = getTasks();\n\n // Remove the run function from the metadata\n return result.map((task) => {\n const { run, ...metadata } = task;\n\n return metadata;\n });\n}\n\nconst sender = new ZodMessageSender({\n schema: childToWorkerMessages,\n sender: async (message) => {\n process.send?.(message);\n },\n});\n\nconst tasks = getTasks();\n\nconst taskExecutors: Map<string, TaskExecutor> = new Map();\n\nfor (const task of tasks) {\n taskExecutors.set(task.id, new TaskExecutor(task));\n}\n\nconst handler = new ZodMessageHandler({\n schema: workerToChildMessages,\n messages: {\n EXECUTE_TASK_RUN: async ({ execution, traceContext, metadata }) => {\n process.title = `trigger-dev-worker: ${execution.task.id} ${execution.attempt.id}`;\n\n const executor = taskExecutors.get(execution.task.id);\n\n if (!executor) {\n console.error(`Could not find executor for task ${execution.task.id}`);\n\n await sender.send(\"TASK_RUN_COMPLETED\", {\n result: {\n ok: false,\n id: execution.attempt.id,\n error: {\n type: \"INTERNAL_ERROR\",\n code: TaskRunErrorCodes.COULD_NOT_FIND_EXECUTOR,\n },\n },\n });\n\n return;\n }\n\n try {\n const result = await executor.execute(execution, metadata, traceContext);\n\n return sender.send(\"TASK_RUN_COMPLETED\", {\n result: {\n id: execution.attempt.id,\n ok: true,\n ...result,\n },\n });\n } catch (e) {\n return sender.send(\"TASK_RUN_COMPLETED\", {\n result: {\n id: execution.attempt.id,\n ok: false,\n error: parseError(e),\n },\n });\n }\n },\n TASK_RUN_COMPLETED: async ({ completion, execution }) => {\n devRuntimeManager.resumeTask(completion, execution);\n },\n CLEANUP: async ({ flush }) => {\n if (flush) {\n await tracingSDK.flushOtel();\n }\n\n // Now we need to exit the process\n await sender.send(\"READY_TO_DISPOSE\", undefined);\n },\n },\n});\n\nprocess.on(\"message\", async (msg: any) => {\n await handler.handleMessage(msg);\n});\n\nsender.send(\"TASKS_READY\", { tasks: getTaskMetadata() }).catch((err) => {\n console.error(\"Failed to send TASKS_READY message\", err);\n});\n\nprocess.title = \"trigger-dev-worker\";\n","{\n \"name\": \"trigger.dev\",\n \"version\": \"0.0.0-prerelease-20240219135254\",\n \"description\": \"A Command-Line Interface for Trigger.dev (v3) projects\",\n \"main\": \"./dist/index.js\",\n \"types\": \"./dist/index.d.ts\",\n \"license\": \"MIT\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/triggerdotdev/trigger.dev.git\",\n \"directory\": \"packages/cli-v3\"\n },\n \"publishConfig\": {\n \"access\": \"public\"\n },\n \"keywords\": [\n \"typescript\",\n \"trigger.dev\",\n \"workflows\",\n \"orchestration\",\n \"events\",\n \"webhooks\",\n \"integrations\",\n \"apis\",\n \"jobs\",\n \"background jobs\",\n \"nextjs\"\n ],\n \"files\": [\n \"dist\"\n ],\n \"type\": \"module\",\n \"exports\": \"./dist/index.js\",\n \"bin\": {\n \"trigger.dev\": \"./dist/index.js\"\n },\n \"devDependencies\": {\n \"@trigger.dev/core\": \"workspace:*\",\n \"@trigger.dev/tsconfig\": \"workspace:*\",\n \"@types/gradient-string\": \"^1.1.2\",\n \"@types/mock-fs\": \"^4.13.1\",\n \"@types/node\": \"18\",\n \"@types/object-hash\": \"^3.0.6\",\n \"@types/react\": \"^18.2.48\",\n \"@types/ws\": \"^8.5.3\",\n \"npm-run-all\": \"^4.1.5\",\n \"open\": \"^10.0.3\",\n \"p-retry\": \"^6.1.0\",\n \"rimraf\": \"^3.0.2\",\n \"tsup\": \"^8.0.1\",\n \"type-fest\": \"^3.6.0\",\n \"typescript\": \"^5.3.3\",\n \"vitest\": \"^0.34.4\",\n \"xdg-app-paths\": \"^8.3.0\"\n },\n \"scripts\": {\n \"typecheck\": \"tsc\",\n \"build\": \"npm run clean && run-p build:**\",\n \"build:main\": \"tsup\",\n \"build:facade\": \"tsup --config tsup.facade.config.ts\",\n \"dev\": \"npm run clean && run-p dev:**\",\n \"dev:main\": \"tsup --watch\",\n \"dev:facade\": \"tsup --config tsup.facade.config.ts --watch\",\n \"clean\": \"rimraf dist\",\n \"start\": \"node dist/index.js\",\n \"test\": \"vitest\"\n },\n \"dependencies\": {\n \"@clack/prompts\": \"^0.7.0\",\n \"@opentelemetry/api\": \"^1.7.0\",\n \"@opentelemetry/api-logs\": \"^0.48.0\",\n \"@opentelemetry/auto-instrumentations-node\": \"^0.40.3\",\n \"@opentelemetry/exporter-collector\": \"^0.25.0\",\n \"@opentelemetry/exporter-logs-otlp-http\": \"^0.48.0\",\n \"@opentelemetry/exporter-trace-otlp-http\": \"^0.48.0\",\n \"@opentelemetry/instrumentation\": \"^0.48.0\",\n \"@opentelemetry/instrumentation-fetch\": \"^0.48.0\",\n \"@opentelemetry/instrumentation-http\": \"^0.48.0\",\n \"@opentelemetry/resources\": \"^1.21.0\",\n \"@opentelemetry/sdk-logs\": \"^0.48.0\",\n \"@opentelemetry/sdk-node\": \"^0.48.0\",\n \"@opentelemetry/sdk-trace-base\": \"^1.21.0\",\n \"@opentelemetry/sdk-trace-node\": \"^1.21.0\",\n \"@opentelemetry/semantic-conventions\": \"^1.21.0\",\n \"@trigger.dev/core\": \"workspace:*\",\n \"@types/degit\": \"^2.8.3\",\n \"chalk\": \"^5.2.0\",\n \"chokidar\": \"^3.5.3\",\n \"cli-table3\": \"^0.6.3\",\n \"commander\": \"^9.4.1\",\n \"degit\": \"^2.8.4\",\n \"dotenv\": \"^16.3.1\",\n \"esbuild\": \"^0.19.11\",\n \"evt\": \"^2.4.13\",\n \"execa\": \"^7.0.0\",\n \"find-up\": \"^7.0.0\",\n \"gradient-string\": \"^2.0.2\",\n \"import-meta-resolve\": \"^4.0.0\",\n \"ink\": \"^4.4.1\",\n \"liquidjs\": \"^10.9.2\",\n \"mock-fs\": \"^5.2.0\",\n \"nanoid\": \"^4.0.2\",\n \"node-fetch\": \"^3.3.0\",\n \"npm-check-updates\": \"^16.12.2\",\n \"object-hash\": \"^3.0.0\",\n \"p-throttle\": \"^6.1.0\",\n \"partysocket\": \"^0.0.17\",\n \"posthog-node\": \"^3.1.1\",\n \"proxy-agent\": \"^6.3.0\",\n \"react\": \"^18.2.0\",\n \"react-error-boundary\": \"^4.0.12\",\n \"simple-git\": \"^3.19.0\",\n \"source-map\": \"^0.7.4\",\n \"supports-color\": \"^9.4.0\",\n \"terminal-link\": \"^3.0.0\",\n \"update-check\": \"^1.5.4\",\n \"url\": \"^0.11.1\",\n \"ws\": \"^8.12.0\",\n \"zod\": \"3.22.3\"\n },\n \"engines\": {\n \"node\": \">=18.0.0\"\n }\n}"],"mappings":"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","names":["output"]}