veryfront 0.1.623 → 0.1.625
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.
- package/README.md +3 -3
- package/esm/cli/commands/knowledge/command-help.d.ts.map +1 -1
- package/esm/cli/commands/knowledge/command-help.js +2 -3
- package/esm/cli/commands/knowledge/command.d.ts +2 -47
- package/esm/cli/commands/knowledge/command.d.ts.map +1 -1
- package/esm/cli/commands/knowledge/command.js +22 -124
- package/esm/cli/commands/knowledge/parser.d.ts +40 -0
- package/esm/cli/commands/knowledge/parser.d.ts.map +1 -0
- package/esm/cli/commands/knowledge/parser.js +353 -0
- package/esm/cli/commands/knowledge/result.d.ts +3 -3
- package/esm/cli/commands/knowledge/result.js +1 -1
- package/esm/cli/commands/styles/command.js +2 -2
- package/esm/cli/commands/task/command.js +4 -4
- package/esm/cli/commands/worker/command-help.js +4 -4
- package/esm/cli/commands/worker/command.d.ts +1 -1
- package/esm/cli/commands/worker/command.js +9 -9
- package/esm/cli/commands/workflow/command.js +4 -4
- package/esm/cli/utils/sanitize-run-output.d.ts +2 -0
- package/esm/cli/utils/sanitize-run-output.d.ts.map +1 -0
- package/esm/cli/utils/{sanitize-job-output.js → sanitize-run-output.js} +1 -1
- package/esm/cli/utils/write-run-result.d.ts +2 -0
- package/esm/cli/utils/write-run-result.d.ts.map +1 -0
- package/esm/cli/utils/write-run-result.js +16 -0
- package/esm/deno.d.ts +4 -3
- package/esm/deno.js +6 -5
- package/esm/src/build/production-build/static-generation.d.ts.map +1 -1
- package/esm/src/build/production-build/static-generation.js +85 -0
- package/esm/src/html/hydration-script-builder/templates/renderer.d.ts.map +1 -1
- package/esm/src/html/hydration-script-builder/templates/renderer.js +37 -4
- package/esm/src/integrations/_data.js +1 -1
- package/esm/src/integrations/schema.d.ts +8 -0
- package/esm/src/integrations/schema.d.ts.map +1 -1
- package/esm/src/integrations/schema.js +3 -0
- package/esm/src/internal-agents/run-stream.d.ts.map +1 -1
- package/esm/src/internal-agents/run-stream.js +20 -3
- package/esm/src/platform/adapters/veryfront-api-client/operations.d.ts +2 -2
- package/esm/src/platform/adapters/veryfront-api-client/operations.d.ts.map +1 -1
- package/esm/src/platform/adapters/veryfront-api-client/operations.js +2 -2
- package/esm/src/platform/adapters/veryfront-api-client/schemas/api.schema.d.ts +1 -1
- package/esm/src/platform/adapters/veryfront-api-client/schemas/api.schema.js +1 -1
- package/esm/src/react/components/chat/chat/components/attachment-pill.js +1 -1
- package/esm/src/react/components/chat/chat/composition/chat-composer.d.ts +1 -0
- package/esm/src/react/components/chat/chat/composition/chat-composer.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/composition/chat-composer.js +27 -11
- package/esm/src/react/components/chat/chat/index.d.ts +1 -0
- package/esm/src/react/components/chat/chat/index.d.ts.map +1 -1
- package/esm/src/react/components/chat/chat/index.js +2 -2
- package/esm/src/react/components/chat/theme.js +1 -1
- package/esm/src/rendering/layouts/utils/applicator.d.ts.map +1 -1
- package/esm/src/rendering/layouts/utils/applicator.js +1 -1
- package/esm/src/rendering/layouts/utils/component-loader.d.ts +8 -0
- package/esm/src/rendering/layouts/utils/component-loader.d.ts.map +1 -1
- package/esm/src/rendering/layouts/utils/component-loader.js +19 -0
- package/esm/src/rendering/rsc/client-boot.ts +23 -6
- package/esm/src/runs/index.d.ts +27 -0
- package/esm/src/runs/index.d.ts.map +1 -0
- package/esm/src/runs/index.js +26 -0
- package/esm/src/runs/runs-client.d.ts +95 -0
- package/esm/src/runs/runs-client.d.ts.map +1 -0
- package/esm/src/runs/runs-client.js +181 -0
- package/esm/src/{jobs → runs}/runtime-env.d.ts.map +1 -1
- package/esm/src/{jobs → runs}/runtime-env.js +2 -2
- package/esm/src/runs/schemas.d.ts +236 -0
- package/esm/src/runs/schemas.d.ts.map +1 -0
- package/esm/src/runs/schemas.js +61 -0
- package/esm/src/security/deno-permissions.d.ts +2 -2
- package/esm/src/security/deno-permissions.js +2 -2
- package/esm/src/security/index.d.ts +1 -1
- package/esm/src/security/index.js +1 -1
- package/esm/src/server/build-app-route-renderer.d.ts +2 -0
- package/esm/src/server/build-app-route-renderer.d.ts.map +1 -1
- package/esm/src/server/build-app-route-renderer.js +51 -28
- package/esm/src/server/handlers/dev/framework-candidates.generated.d.ts.map +1 -1
- package/esm/src/server/handlers/dev/framework-candidates.generated.js +54 -8
- package/esm/src/server/services/rsc/endpoints/rsc-bundles.generated.d.ts.map +1 -1
- package/esm/src/server/services/rsc/endpoints/rsc-bundles.generated.js +1 -1
- package/esm/src/server/services/static/static-file.service.d.ts.map +1 -1
- package/esm/src/server/services/static/static-file.service.js +9 -4
- package/esm/src/skill/index.d.ts +1 -1
- package/esm/src/skill/index.d.ts.map +1 -1
- package/esm/src/skill/index.js +1 -1
- package/esm/src/skill/prompt-augmentation.js +2 -2
- package/esm/src/skill/tools.d.ts +1 -1
- package/esm/src/skill/tools.d.ts.map +1 -1
- package/esm/src/skill/tools.js +11 -9
- package/esm/src/skill/types.d.ts +1 -0
- package/esm/src/skill/types.d.ts.map +1 -1
- package/esm/src/skill/types.js +1 -0
- package/esm/src/task/runner.js +1 -1
- package/esm/src/task/types.d.ts +4 -4
- package/esm/src/task/types.d.ts.map +1 -1
- package/esm/src/task/types.js +1 -1
- package/esm/src/tool/factory.d.ts.map +1 -1
- package/esm/src/tool/factory.js +10 -0
- package/esm/src/tool/types.d.ts +5 -4
- package/esm/src/tool/types.d.ts.map +1 -1
- package/esm/src/utils/index.d.ts +1 -1
- package/esm/src/utils/index.js +1 -1
- package/esm/src/utils/logger/index.d.ts +1 -1
- package/esm/src/utils/logger/index.js +1 -1
- package/esm/src/utils/logger/logger.d.ts +6 -6
- package/esm/src/utils/logger/logger.d.ts.map +1 -1
- package/esm/src/utils/logger/logger.js +10 -10
- package/esm/src/utils/version-constant.d.ts +1 -1
- package/esm/src/utils/version-constant.js +1 -1
- package/esm/src/workflow/executor/workflow-executor.js +3 -3
- package/esm/src/workflow/worker/{dynamic-job-entrypoint.d.ts → dynamic-run-entrypoint.d.ts} +2 -2
- package/esm/src/workflow/worker/{dynamic-job-entrypoint.d.ts.map → dynamic-run-entrypoint.d.ts.map} +1 -1
- package/esm/src/workflow/worker/{dynamic-job-entrypoint.js → dynamic-run-entrypoint.js} +1 -1
- package/esm/src/workflow/worker/executors/index.d.ts +8 -8
- package/esm/src/workflow/worker/executors/index.d.ts.map +1 -1
- package/esm/src/workflow/worker/executors/index.js +5 -5
- package/esm/src/workflow/worker/executors/k8s.d.ts +34 -34
- package/esm/src/workflow/worker/executors/k8s.d.ts.map +1 -1
- package/esm/src/workflow/worker/executors/k8s.js +59 -58
- package/esm/src/workflow/worker/executors/process.d.ts +15 -15
- package/esm/src/workflow/worker/executors/process.d.ts.map +1 -1
- package/esm/src/workflow/worker/executors/process.js +86 -86
- package/esm/src/workflow/worker/executors/types.d.ts +38 -39
- package/esm/src/workflow/worker/executors/types.d.ts.map +1 -1
- package/esm/src/workflow/worker/executors/types.js +9 -10
- package/esm/src/workflow/worker/index.d.ts +7 -7
- package/esm/src/workflow/worker/index.d.ts.map +1 -1
- package/esm/src/workflow/worker/index.js +9 -9
- package/esm/src/workflow/worker/{job-entrypoint.d.ts → run-entrypoint.d.ts} +3 -3
- package/esm/src/workflow/worker/{job-entrypoint.d.ts.map → run-entrypoint.d.ts.map} +1 -1
- package/esm/src/workflow/worker/{job-entrypoint.js → run-entrypoint.js} +2 -2
- package/esm/src/workflow/worker/{job-manager.d.ts → run-manager.d.ts} +32 -32
- package/esm/src/workflow/worker/run-manager.d.ts.map +1 -0
- package/esm/src/workflow/worker/{job-manager.js → run-manager.js} +63 -63
- package/esm/src/workflow/worker/shared.js +1 -1
- package/package.json +4 -4
- package/esm/cli/commands/knowledge/parser-source.d.ts +0 -2
- package/esm/cli/commands/knowledge/parser-source.d.ts.map +0 -1
- package/esm/cli/commands/knowledge/parser-source.js +0 -641
- package/esm/cli/utils/sanitize-job-output.d.ts +0 -2
- package/esm/cli/utils/sanitize-job-output.d.ts.map +0 -1
- package/esm/cli/utils/write-job-result.d.ts +0 -2
- package/esm/cli/utils/write-job-result.d.ts.map +0 -1
- package/esm/cli/utils/write-job-result.js +0 -16
- package/esm/src/jobs/index.d.ts +0 -25
- package/esm/src/jobs/index.d.ts.map +0 -1
- package/esm/src/jobs/index.js +0 -24
- package/esm/src/jobs/jobs-client.d.ts +0 -182
- package/esm/src/jobs/jobs-client.d.ts.map +0 -1
- package/esm/src/jobs/jobs-client.js +0 -255
- package/esm/src/jobs/schemas.d.ts +0 -1146
- package/esm/src/jobs/schemas.d.ts.map +0 -1
- package/esm/src/jobs/schemas.js +0 -294
- package/esm/src/workflow/worker/job-manager.d.ts.map +0 -1
- /package/esm/src/{jobs → runs}/runtime-env.d.ts +0 -0
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Process
|
|
2
|
+
* Process run executor
|
|
3
3
|
*
|
|
4
|
-
* Executes
|
|
4
|
+
* Executes workflow runs as child processes.
|
|
5
5
|
* Useful for local development and testing without containerization.
|
|
6
6
|
*
|
|
7
7
|
* Each workflow runs in a separate Deno subprocess with its own environment.
|
|
8
8
|
*/
|
|
9
9
|
import * as dntShim from "../../../../_dnt.shims.js";
|
|
10
|
-
import {
|
|
10
|
+
import { WORKFLOW_RUN_PERMISSIONS } from "../../../security/deno-permissions.js";
|
|
11
11
|
import { logger as baseLogger } from "../../../utils/index.js";
|
|
12
|
-
const logger = baseLogger.component("process-
|
|
12
|
+
const logger = baseLogger.component("process-run-executor");
|
|
13
13
|
/**
|
|
14
|
-
* Process
|
|
14
|
+
* Process run executor
|
|
15
15
|
*
|
|
16
|
-
* Spawns child processes for each
|
|
16
|
+
* Spawns child processes for each workflow run.
|
|
17
17
|
* Provides isolation at the process level (separate memory space).
|
|
18
18
|
*
|
|
19
19
|
* @example
|
|
20
20
|
* ```typescript
|
|
21
|
-
* const executor = new
|
|
21
|
+
* const executor = new ProcessRunExecutor({
|
|
22
22
|
* entrypointPath: "./src/workflow-run-entrypoint.ts",
|
|
23
23
|
* env: {
|
|
24
24
|
* REDIS_URL: "redis://localhost:6379",
|
|
@@ -31,26 +31,26 @@ const logger = baseLogger.component("process-job-executor");
|
|
|
31
31
|
* });
|
|
32
32
|
* ```
|
|
33
33
|
*/
|
|
34
|
-
export class
|
|
34
|
+
export class ProcessRunExecutor {
|
|
35
35
|
config;
|
|
36
|
-
|
|
36
|
+
activeExecutions = new Map();
|
|
37
37
|
constructor(config) {
|
|
38
38
|
this.config = {
|
|
39
39
|
command: "deno",
|
|
40
|
-
args: ["run", ...
|
|
40
|
+
args: ["run", ...WORKFLOW_RUN_PERMISSIONS],
|
|
41
41
|
debug: false,
|
|
42
42
|
...config,
|
|
43
43
|
};
|
|
44
44
|
}
|
|
45
|
-
|
|
46
|
-
const {
|
|
45
|
+
createRunExecution(executionConfig) {
|
|
46
|
+
const { executionId, run, managerId, timeout, env, debug } = executionConfig;
|
|
47
47
|
// Build environment variables
|
|
48
48
|
const processEnv = {
|
|
49
49
|
...this.config.env,
|
|
50
50
|
...env,
|
|
51
|
-
MODE: "
|
|
51
|
+
MODE: "run",
|
|
52
52
|
WORKFLOW_RUN_ID: run.id,
|
|
53
|
-
|
|
53
|
+
RUN_EXECUTION_ID: executionId,
|
|
54
54
|
};
|
|
55
55
|
// Add tenant context
|
|
56
56
|
if (run._tenant) {
|
|
@@ -77,8 +77,8 @@ export class ProcessJobExecutor {
|
|
|
77
77
|
stderr: "piped",
|
|
78
78
|
});
|
|
79
79
|
const process = command.spawn();
|
|
80
|
-
const
|
|
81
|
-
|
|
80
|
+
const execution = {
|
|
81
|
+
executionId,
|
|
82
82
|
runId: run.id,
|
|
83
83
|
managerId,
|
|
84
84
|
process,
|
|
@@ -86,83 +86,83 @@ export class ProcessJobExecutor {
|
|
|
86
86
|
createdAt: new Date(),
|
|
87
87
|
startedAt: new Date(),
|
|
88
88
|
};
|
|
89
|
-
this.
|
|
89
|
+
this.activeExecutions.set(executionId, execution);
|
|
90
90
|
if (debug || this.config.debug) {
|
|
91
|
-
logger.info(`Spawned process for
|
|
91
|
+
logger.info(`Spawned process for run execution ${executionId}, run ${run.id}`);
|
|
92
92
|
}
|
|
93
93
|
// Monitor the process in background
|
|
94
|
-
this.monitorProcess(
|
|
95
|
-
return Promise.resolve(
|
|
94
|
+
this.monitorProcess(execution, timeout);
|
|
95
|
+
return Promise.resolve(executionId);
|
|
96
96
|
}
|
|
97
|
-
|
|
98
|
-
const
|
|
99
|
-
if (!
|
|
97
|
+
getRunExecutionStatus(executionId) {
|
|
98
|
+
const execution = this.activeExecutions.get(executionId);
|
|
99
|
+
if (!execution) {
|
|
100
100
|
return Promise.resolve(null);
|
|
101
101
|
}
|
|
102
|
-
return Promise.resolve(this.
|
|
102
|
+
return Promise.resolve(this.toRunExecutionInfo(execution));
|
|
103
103
|
}
|
|
104
|
-
|
|
105
|
-
const
|
|
106
|
-
for (const
|
|
107
|
-
if (
|
|
108
|
-
|
|
104
|
+
listRunExecutions(managerId) {
|
|
105
|
+
const executions = [];
|
|
106
|
+
for (const execution of this.activeExecutions.values()) {
|
|
107
|
+
if (execution.managerId === managerId) {
|
|
108
|
+
executions.push(this.toRunExecutionInfo(execution));
|
|
109
109
|
}
|
|
110
110
|
}
|
|
111
|
-
return Promise.resolve(
|
|
111
|
+
return Promise.resolve(executions);
|
|
112
112
|
}
|
|
113
|
-
|
|
114
|
-
const
|
|
115
|
-
if (!
|
|
113
|
+
deleteRunExecution(executionId) {
|
|
114
|
+
const execution = this.activeExecutions.get(executionId);
|
|
115
|
+
if (!execution) {
|
|
116
116
|
return Promise.resolve();
|
|
117
117
|
}
|
|
118
118
|
// Kill the process if still running
|
|
119
|
-
if (
|
|
119
|
+
if (execution.status === "running" || execution.status === "pending") {
|
|
120
120
|
try {
|
|
121
|
-
|
|
121
|
+
execution.process.kill("SIGTERM");
|
|
122
122
|
}
|
|
123
123
|
catch (_) {
|
|
124
124
|
/* expected: process may already be dead */
|
|
125
125
|
}
|
|
126
126
|
}
|
|
127
|
-
if (
|
|
128
|
-
clearTimeout(
|
|
129
|
-
this.
|
|
127
|
+
if (execution.timeoutId)
|
|
128
|
+
clearTimeout(execution.timeoutId);
|
|
129
|
+
this.activeExecutions.delete(executionId);
|
|
130
130
|
if (this.config.debug) {
|
|
131
|
-
logger.info(`Deleted
|
|
131
|
+
logger.info(`Deleted run execution ${executionId}`);
|
|
132
132
|
}
|
|
133
133
|
return Promise.resolve();
|
|
134
134
|
}
|
|
135
135
|
destroy() {
|
|
136
136
|
// Kill all active processes and clear their timers
|
|
137
|
-
for (const
|
|
138
|
-
if (
|
|
139
|
-
clearTimeout(
|
|
140
|
-
if (
|
|
137
|
+
for (const execution of this.activeExecutions.values()) {
|
|
138
|
+
if (execution.timeoutId)
|
|
139
|
+
clearTimeout(execution.timeoutId);
|
|
140
|
+
if (execution.status === "running" || execution.status === "pending") {
|
|
141
141
|
try {
|
|
142
|
-
|
|
142
|
+
execution.process.kill("SIGTERM");
|
|
143
143
|
}
|
|
144
144
|
catch (_) {
|
|
145
145
|
/* expected: process may already be dead */
|
|
146
146
|
}
|
|
147
147
|
}
|
|
148
148
|
}
|
|
149
|
-
this.
|
|
149
|
+
this.activeExecutions.clear();
|
|
150
150
|
return Promise.resolve();
|
|
151
151
|
}
|
|
152
152
|
/**
|
|
153
153
|
* Monitor a process and update its status when it exits
|
|
154
154
|
*/
|
|
155
|
-
monitorProcess(
|
|
155
|
+
monitorProcess(execution, timeout) {
|
|
156
156
|
// Set up timeout
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
if (
|
|
157
|
+
execution.timeoutId = dntShim.setTimeout(() => {
|
|
158
|
+
execution.timeoutId = undefined;
|
|
159
|
+
if (execution.status === "running") {
|
|
160
160
|
try {
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
logger.warn(`
|
|
161
|
+
execution.process.kill("SIGTERM");
|
|
162
|
+
execution.status = "failed";
|
|
163
|
+
execution.error = `Run execution timed out after ${timeout}ms`;
|
|
164
|
+
execution.completedAt = new Date();
|
|
165
|
+
logger.warn(`Run execution ${execution.executionId} timed out`);
|
|
166
166
|
}
|
|
167
167
|
catch (_) {
|
|
168
168
|
/* expected: process may already be dead */
|
|
@@ -172,53 +172,53 @@ export class ProcessJobExecutor {
|
|
|
172
172
|
// Wait for process to complete (fire-and-forget with error handling)
|
|
173
173
|
void (async () => {
|
|
174
174
|
try {
|
|
175
|
-
const status = await
|
|
176
|
-
clearTimeout(
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
if (
|
|
175
|
+
const status = await execution.process.status;
|
|
176
|
+
clearTimeout(execution.timeoutId);
|
|
177
|
+
execution.timeoutId = undefined;
|
|
178
|
+
execution.completedAt = new Date();
|
|
179
|
+
if (execution.status === "failed") {
|
|
180
180
|
// Already marked as failed (e.g. timeout) — don't overwrite
|
|
181
181
|
return;
|
|
182
182
|
}
|
|
183
183
|
if (status.success) {
|
|
184
|
-
|
|
184
|
+
execution.status = "succeeded";
|
|
185
185
|
if (this.config.debug) {
|
|
186
|
-
logger.info(`
|
|
186
|
+
logger.info(`Run execution ${execution.executionId} succeeded`);
|
|
187
187
|
}
|
|
188
188
|
}
|
|
189
189
|
else {
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
logger.error(`
|
|
190
|
+
execution.status = "failed";
|
|
191
|
+
execution.error = `Process exited with code ${status.code}`;
|
|
192
|
+
logger.error(`Run execution ${execution.executionId} failed with code ${status.code}`);
|
|
193
193
|
}
|
|
194
194
|
}
|
|
195
195
|
catch (error) {
|
|
196
|
-
clearTimeout(
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
logger.error(`
|
|
196
|
+
clearTimeout(execution.timeoutId);
|
|
197
|
+
execution.timeoutId = undefined;
|
|
198
|
+
execution.status = "failed";
|
|
199
|
+
execution.error = error instanceof Error ? error.message : String(error);
|
|
200
|
+
execution.completedAt = new Date();
|
|
201
|
+
logger.error(`Run execution ${execution.executionId} error:`, error);
|
|
202
202
|
}
|
|
203
203
|
})();
|
|
204
204
|
// Log stdout/stderr in debug mode
|
|
205
205
|
if (this.config.debug) {
|
|
206
|
-
this.streamOutput(
|
|
206
|
+
this.streamOutput(execution);
|
|
207
207
|
}
|
|
208
208
|
}
|
|
209
209
|
/**
|
|
210
210
|
* Stream process output to logs
|
|
211
211
|
*/
|
|
212
|
-
streamOutput(
|
|
212
|
+
streamOutput(execution) {
|
|
213
213
|
const decoder = new TextDecoder();
|
|
214
214
|
// Stream stdout
|
|
215
|
-
const stdout =
|
|
215
|
+
const stdout = execution.process.stdout;
|
|
216
216
|
if (stdout) {
|
|
217
217
|
(async () => {
|
|
218
218
|
for await (const chunk of stdout) {
|
|
219
219
|
const text = decoder.decode(chunk).trim();
|
|
220
220
|
if (text) {
|
|
221
|
-
logger.debug(`[
|
|
221
|
+
logger.debug(`[RunExecution ${execution.executionId}] ${text}`);
|
|
222
222
|
}
|
|
223
223
|
}
|
|
224
224
|
})().catch(() => {
|
|
@@ -226,13 +226,13 @@ export class ProcessJobExecutor {
|
|
|
226
226
|
});
|
|
227
227
|
}
|
|
228
228
|
// Stream stderr
|
|
229
|
-
const stderr =
|
|
229
|
+
const stderr = execution.process.stderr;
|
|
230
230
|
if (stderr) {
|
|
231
231
|
(async () => {
|
|
232
232
|
for await (const chunk of stderr) {
|
|
233
233
|
const text = decoder.decode(chunk).trim();
|
|
234
234
|
if (text) {
|
|
235
|
-
logger.error(`[
|
|
235
|
+
logger.error(`[RunExecution ${execution.executionId}] ${text}`);
|
|
236
236
|
}
|
|
237
237
|
}
|
|
238
238
|
})().catch(() => {
|
|
@@ -241,19 +241,19 @@ export class ProcessJobExecutor {
|
|
|
241
241
|
}
|
|
242
242
|
}
|
|
243
243
|
/**
|
|
244
|
-
* Convert tracked
|
|
244
|
+
* Convert tracked execution to RunExecutionInfo
|
|
245
245
|
*/
|
|
246
|
-
|
|
246
|
+
toRunExecutionInfo(execution) {
|
|
247
247
|
return {
|
|
248
|
-
|
|
249
|
-
runId:
|
|
250
|
-
status:
|
|
251
|
-
createdAt:
|
|
252
|
-
startedAt:
|
|
253
|
-
completedAt:
|
|
254
|
-
error:
|
|
248
|
+
executionId: execution.executionId,
|
|
249
|
+
runId: execution.runId,
|
|
250
|
+
status: execution.status,
|
|
251
|
+
createdAt: execution.createdAt,
|
|
252
|
+
startedAt: execution.startedAt,
|
|
253
|
+
completedAt: execution.completedAt,
|
|
254
|
+
error: execution.error,
|
|
255
255
|
metadata: {
|
|
256
|
-
pid:
|
|
256
|
+
pid: execution.process.pid,
|
|
257
257
|
command: this.config.command,
|
|
258
258
|
},
|
|
259
259
|
};
|
|
@@ -1,26 +1,25 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Run executor interface
|
|
3
3
|
*
|
|
4
|
-
* Abstraction layer for executing
|
|
5
|
-
* environments.
|
|
4
|
+
* Abstraction layer for executing workflow runs in isolated environments.
|
|
6
5
|
* Implementations can target different runtimes:
|
|
7
|
-
* -
|
|
6
|
+
* - Kubernetes Jobs
|
|
8
7
|
* - Docker containers
|
|
9
8
|
* - Local processes
|
|
10
9
|
* - Cloud Run / Lambda / Fargate
|
|
11
10
|
*/
|
|
12
11
|
import type { WorkflowRun } from "../../types.js";
|
|
13
12
|
/**
|
|
14
|
-
*
|
|
13
|
+
* Run execution configuration passed to executor
|
|
15
14
|
*/
|
|
16
|
-
export interface
|
|
17
|
-
/** Unique
|
|
18
|
-
|
|
15
|
+
export interface RunExecutionConfig {
|
|
16
|
+
/** Unique execution ID */
|
|
17
|
+
executionId: string;
|
|
19
18
|
/** Workflow run to execute */
|
|
20
19
|
run: WorkflowRun;
|
|
21
20
|
/** Manager ID for tracking */
|
|
22
21
|
managerId: string;
|
|
23
|
-
/**
|
|
22
|
+
/** Run timeout in milliseconds */
|
|
24
23
|
timeout: number;
|
|
25
24
|
/** Environment variables to inject */
|
|
26
25
|
env: Record<string, string>;
|
|
@@ -28,24 +27,24 @@ export interface JobConfig {
|
|
|
28
27
|
debug?: boolean;
|
|
29
28
|
}
|
|
30
29
|
/**
|
|
31
|
-
*
|
|
30
|
+
* Run execution status
|
|
32
31
|
*/
|
|
33
|
-
export type
|
|
32
|
+
export type RunExecutionStatus = "pending" | "running" | "succeeded" | "failed" | "unknown";
|
|
34
33
|
/**
|
|
35
|
-
*
|
|
34
|
+
* Run execution information returned by executor
|
|
36
35
|
*/
|
|
37
|
-
export interface
|
|
38
|
-
/** Unique
|
|
39
|
-
|
|
36
|
+
export interface RunExecutionInfo {
|
|
37
|
+
/** Unique execution identifier */
|
|
38
|
+
executionId: string;
|
|
40
39
|
/** Workflow run ID */
|
|
41
40
|
runId: string;
|
|
42
41
|
/** Current status */
|
|
43
|
-
status:
|
|
44
|
-
/** When
|
|
42
|
+
status: RunExecutionStatus;
|
|
43
|
+
/** When execution was created */
|
|
45
44
|
createdAt: Date;
|
|
46
|
-
/** When
|
|
45
|
+
/** When execution started */
|
|
47
46
|
startedAt?: Date;
|
|
48
|
-
/** When
|
|
47
|
+
/** When execution completed */
|
|
49
48
|
completedAt?: Date;
|
|
50
49
|
/** Error message if failed */
|
|
51
50
|
error?: string;
|
|
@@ -53,14 +52,14 @@ export interface JobInfo {
|
|
|
53
52
|
metadata?: Record<string, unknown>;
|
|
54
53
|
}
|
|
55
54
|
/**
|
|
56
|
-
*
|
|
55
|
+
* Run Executor Interface
|
|
57
56
|
*
|
|
58
|
-
* Abstracts the runtime environment for executing
|
|
57
|
+
* Abstracts the runtime environment for executing workflow runs.
|
|
59
58
|
* Each implementation handles the specifics of its target platform.
|
|
60
59
|
*
|
|
61
60
|
* @example K8s
|
|
62
61
|
* ```typescript
|
|
63
|
-
* const executor = new
|
|
62
|
+
* const executor = new K8sRunExecutor({
|
|
64
63
|
* namespace: "workflows",
|
|
65
64
|
* image: "my-app:latest",
|
|
66
65
|
* });
|
|
@@ -68,7 +67,7 @@ export interface JobInfo {
|
|
|
68
67
|
*
|
|
69
68
|
* @example Docker
|
|
70
69
|
* ```typescript
|
|
71
|
-
* const executor = new
|
|
70
|
+
* const executor = new DockerRunExecutor({
|
|
72
71
|
* image: "my-app:latest",
|
|
73
72
|
* network: "workflow-network",
|
|
74
73
|
* });
|
|
@@ -76,34 +75,34 @@ export interface JobInfo {
|
|
|
76
75
|
*
|
|
77
76
|
* @example Local Process
|
|
78
77
|
* ```typescript
|
|
79
|
-
* const executor = new
|
|
78
|
+
* const executor = new ProcessRunExecutor({
|
|
80
79
|
* command: "deno",
|
|
81
|
-
* args: ["run", "
|
|
80
|
+
* args: ["run", "run-entrypoint.ts"],
|
|
82
81
|
* });
|
|
83
82
|
* ```
|
|
84
83
|
*/
|
|
85
|
-
export interface
|
|
84
|
+
export interface RunExecutor {
|
|
86
85
|
/**
|
|
87
|
-
* Create and start
|
|
88
|
-
* @returns
|
|
86
|
+
* Create and start an isolated execution for a workflow run.
|
|
87
|
+
* @returns Execution ID
|
|
89
88
|
*/
|
|
90
|
-
|
|
89
|
+
createRunExecution(config: RunExecutionConfig): Promise<string>;
|
|
91
90
|
/**
|
|
92
|
-
* Get the current status of
|
|
91
|
+
* Get the current status of an execution.
|
|
93
92
|
*/
|
|
94
|
-
|
|
93
|
+
getRunExecutionStatus(executionId: string): Promise<RunExecutionInfo | null>;
|
|
95
94
|
/**
|
|
96
|
-
* List all active
|
|
95
|
+
* List all active executions created by a specific manager.
|
|
97
96
|
*/
|
|
98
|
-
|
|
97
|
+
listRunExecutions(managerId: string): Promise<RunExecutionInfo[]>;
|
|
99
98
|
/**
|
|
100
|
-
* Delete/cleanup
|
|
101
|
-
* Called after
|
|
99
|
+
* Delete/cleanup an execution.
|
|
100
|
+
* Called after completion or for manual cleanup.
|
|
102
101
|
*/
|
|
103
|
-
|
|
102
|
+
deleteRunExecution(executionId: string): Promise<void>;
|
|
104
103
|
/**
|
|
105
104
|
* Initialize the executor (optional)
|
|
106
|
-
* Called once before first
|
|
105
|
+
* Called once before first execution creation.
|
|
107
106
|
*/
|
|
108
107
|
initialize?(): Promise<void>;
|
|
109
108
|
/**
|
|
@@ -113,7 +112,7 @@ export interface JobExecutor {
|
|
|
113
112
|
destroy?(): Promise<void>;
|
|
114
113
|
}
|
|
115
114
|
/**
|
|
116
|
-
* Type guard to check if an object implements
|
|
115
|
+
* Type guard to check if an object implements RunExecutor
|
|
117
116
|
*/
|
|
118
|
-
export declare function
|
|
117
|
+
export declare function isRunExecutor(obj: unknown): obj is RunExecutor;
|
|
119
118
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/src/workflow/worker/executors/types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/src/workflow/worker/executors/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,0BAA0B;IAC1B,WAAW,EAAE,MAAM,CAAC;IAEpB,8BAA8B;IAC9B,GAAG,EAAE,WAAW,CAAC;IAEjB,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAC;IAElB,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;IAEhB,sCAAsC;IACtC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE5B,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE5F;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAC;IAEpB,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAC;IAEd,qBAAqB;IACrB,MAAM,EAAE,kBAAkB,CAAC;IAE3B,iCAAiC;IACjC,SAAS,EAAE,IAAI,CAAC;IAEhB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,IAAI,CAAC;IAEjB,+BAA+B;IAC/B,WAAW,CAAC,EAAE,IAAI,CAAC;IAEnB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,iCAAiC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEhE;;OAEG;IACH,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAE7E;;OAEG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAElE;;;OAGG;IACH,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvD;;;OAGG;IACH,UAAU,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7B;;;OAGG;IACH,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,WAAW,CAS9D"}
|
|
@@ -1,23 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Run executor interface
|
|
3
3
|
*
|
|
4
|
-
* Abstraction layer for executing
|
|
5
|
-
* environments.
|
|
4
|
+
* Abstraction layer for executing workflow runs in isolated environments.
|
|
6
5
|
* Implementations can target different runtimes:
|
|
7
|
-
* -
|
|
6
|
+
* - Kubernetes Jobs
|
|
8
7
|
* - Docker containers
|
|
9
8
|
* - Local processes
|
|
10
9
|
* - Cloud Run / Lambda / Fargate
|
|
11
10
|
*/
|
|
12
11
|
/**
|
|
13
|
-
* Type guard to check if an object implements
|
|
12
|
+
* Type guard to check if an object implements RunExecutor
|
|
14
13
|
*/
|
|
15
|
-
export function
|
|
14
|
+
export function isRunExecutor(obj) {
|
|
16
15
|
if (!obj || typeof obj !== "object")
|
|
17
16
|
return false;
|
|
18
17
|
const executor = obj;
|
|
19
|
-
return (typeof executor.
|
|
20
|
-
typeof executor.
|
|
21
|
-
typeof executor.
|
|
22
|
-
typeof executor.
|
|
18
|
+
return (typeof executor.createRunExecution === "function" &&
|
|
19
|
+
typeof executor.getRunExecutionStatus === "function" &&
|
|
20
|
+
typeof executor.listRunExecutions === "function" &&
|
|
21
|
+
typeof executor.deleteRunExecution === "function");
|
|
23
22
|
}
|
|
@@ -10,23 +10,23 @@
|
|
|
10
10
|
* - Good for trusted code or single-tenant deployments
|
|
11
11
|
* - Simple setup, lower overhead
|
|
12
12
|
*
|
|
13
|
-
* 2. **WorkflowRunManager +
|
|
13
|
+
* 2. **WorkflowRunManager + K8sRunExecutor** - Kubernetes-resource-backed execution
|
|
14
14
|
* - Each workflow runs in an ephemeral container
|
|
15
15
|
* - Complete tenant isolation (no shared state)
|
|
16
16
|
* - Required for multi-tenant untrusted code execution
|
|
17
17
|
*
|
|
18
|
-
* 3. **WorkflowRunManager +
|
|
18
|
+
* 3. **WorkflowRunManager + ProcessRunExecutor** - Local process execution
|
|
19
19
|
* - Spawns child processes for each workflow
|
|
20
20
|
* - Good for local development without K8s/Docker
|
|
21
21
|
* - Mirrors production behavior
|
|
22
22
|
*
|
|
23
|
-
* A workflow run can be backed by a
|
|
23
|
+
* A workflow run can be backed by a run executor without introducing another
|
|
24
24
|
* user-visible execution type.
|
|
25
25
|
*/
|
|
26
26
|
import "../../../_dnt.polyfills.js";
|
|
27
27
|
export { createWorkflowWorker, type WorkerStats, type WorkerStatus, WorkflowWorker, type WorkflowWorkerConfig, } from "./workflow-worker.js";
|
|
28
|
-
export { createWorkflowRunManager, type ManagerStats, type ManagerStatus, WorkflowRunManager, type WorkflowRunManagerConfig, } from "./
|
|
29
|
-
export {
|
|
30
|
-
export { createWorkflowRunEntrypoint, type CreateWorkflowRunEntrypointOptions, EXIT_CODES, runWorkflowRun, type WorkflowRunEntrypointConfig, } from "./
|
|
31
|
-
export { createDynamicWorkflowRunEntrypoint, type CreateDynamicWorkflowRunEntrypointOptions, DYNAMIC_EXIT_CODES, type DynamicWorkflowRunEntrypointConfig, runDynamicWorkflowRun, } from "./dynamic-
|
|
28
|
+
export { createWorkflowRunManager, type ManagerStats, type ManagerStatus, WorkflowRunManager, type WorkflowRunManagerConfig, } from "./run-manager.js";
|
|
29
|
+
export { isRunExecutor, type K8sClient, type K8sRunExecutionSpec, type K8sRunExecutionStatusResponse, K8sRunExecutor, type K8sRunExecutorConfig, ProcessRunExecutor, type ProcessRunExecutorConfig, type RunExecutionConfig, type RunExecutionInfo, type RunExecutionStatus, type RunExecutor, } from "./executors/index.js";
|
|
30
|
+
export { createWorkflowRunEntrypoint, type CreateWorkflowRunEntrypointOptions, EXIT_CODES, runWorkflowRun, type WorkflowRunEntrypointConfig, } from "./run-entrypoint.js";
|
|
31
|
+
export { createDynamicWorkflowRunEntrypoint, type CreateDynamicWorkflowRunEntrypointOptions, DYNAMIC_EXIT_CODES, type DynamicWorkflowRunEntrypointConfig, runDynamicWorkflowRun, } from "./dynamic-run-entrypoint.js";
|
|
32
32
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/src/workflow/worker/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAGH,OAAO,4BAA4B,CAAC;AAEpC,OAAO,EACL,oBAAoB,EACpB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,cAAc,EACd,KAAK,oBAAoB,GAC1B,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,wBAAwB,EACxB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,kBAAkB,EAClB,KAAK,wBAAwB,GAC9B,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,aAAa,EACb,KAAK,SAAS,EACd,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/src/workflow/worker/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAGH,OAAO,4BAA4B,CAAC;AAEpC,OAAO,EACL,oBAAoB,EACpB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,cAAc,EACd,KAAK,oBAAoB,GAC1B,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,wBAAwB,EACxB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,kBAAkB,EAClB,KAAK,wBAAwB,GAC9B,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,aAAa,EACb,KAAK,SAAS,EACd,KAAK,mBAAmB,EACxB,KAAK,6BAA6B,EAClC,cAAc,EACd,KAAK,oBAAoB,EACzB,kBAAkB,EAClB,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,WAAW,GACjB,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EACL,2BAA2B,EAC3B,KAAK,kCAAkC,EACvC,UAAU,EACV,cAAc,EACd,KAAK,2BAA2B,GACjC,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EACL,kCAAkC,EAClC,KAAK,yCAAyC,EAC9C,kBAAkB,EAClB,KAAK,kCAAkC,EACvC,qBAAqB,GACtB,MAAM,6BAA6B,CAAC"}
|
|
@@ -10,29 +10,29 @@
|
|
|
10
10
|
* - Good for trusted code or single-tenant deployments
|
|
11
11
|
* - Simple setup, lower overhead
|
|
12
12
|
*
|
|
13
|
-
* 2. **WorkflowRunManager +
|
|
13
|
+
* 2. **WorkflowRunManager + K8sRunExecutor** - Kubernetes-resource-backed execution
|
|
14
14
|
* - Each workflow runs in an ephemeral container
|
|
15
15
|
* - Complete tenant isolation (no shared state)
|
|
16
16
|
* - Required for multi-tenant untrusted code execution
|
|
17
17
|
*
|
|
18
|
-
* 3. **WorkflowRunManager +
|
|
18
|
+
* 3. **WorkflowRunManager + ProcessRunExecutor** - Local process execution
|
|
19
19
|
* - Spawns child processes for each workflow
|
|
20
20
|
* - Good for local development without K8s/Docker
|
|
21
21
|
* - Mirrors production behavior
|
|
22
22
|
*
|
|
23
|
-
* A workflow run can be backed by a
|
|
23
|
+
* A workflow run can be backed by a run executor without introducing another
|
|
24
24
|
* user-visible execution type.
|
|
25
25
|
*/
|
|
26
26
|
// In-process worker (single-tenant / trusted code)
|
|
27
27
|
import "../../../_dnt.polyfills.js";
|
|
28
28
|
export { createWorkflowWorker, WorkflowWorker, } from "./workflow-worker.js";
|
|
29
|
-
//
|
|
30
|
-
export { createWorkflowRunManager, WorkflowRunManager, } from "./
|
|
31
|
-
//
|
|
32
|
-
export {
|
|
29
|
+
// Isolated workflow run execution (multi-tenant / untrusted code)
|
|
30
|
+
export { createWorkflowRunManager, WorkflowRunManager, } from "./run-manager.js";
|
|
31
|
+
// Run executors (pluggable runtime backends)
|
|
32
|
+
export { isRunExecutor, K8sRunExecutor, ProcessRunExecutor, } from "./executors/index.js";
|
|
33
33
|
// Workflow run entrypoint (runs inside ephemeral container/process)
|
|
34
34
|
// Use this when workflows are pre-bundled in the container
|
|
35
|
-
export { createWorkflowRunEntrypoint, EXIT_CODES, runWorkflowRun, } from "./
|
|
35
|
+
export { createWorkflowRunEntrypoint, EXIT_CODES, runWorkflowRun, } from "./run-entrypoint.js";
|
|
36
36
|
// Dynamic workflow run entrypoint (discovers workflows at runtime)
|
|
37
37
|
// Use this when workflows are stored in Veryfront API
|
|
38
|
-
export { createDynamicWorkflowRunEntrypoint, DYNAMIC_EXIT_CODES, runDynamicWorkflowRun, } from "./dynamic-
|
|
38
|
+
export { createDynamicWorkflowRunEntrypoint, DYNAMIC_EXIT_CODES, runDynamicWorkflowRun, } from "./dynamic-run-entrypoint.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Workflow run entrypoint
|
|
3
3
|
*
|
|
4
|
-
* Runs inside an ephemeral
|
|
4
|
+
* Runs inside an ephemeral run execution container.
|
|
5
5
|
* Executes a single workflow run in complete isolation.
|
|
6
6
|
*
|
|
7
7
|
* Environment variables:
|
|
@@ -45,7 +45,7 @@ export declare const EXIT_CODES: {
|
|
|
45
45
|
/**
|
|
46
46
|
* Run the workflow run entrypoint
|
|
47
47
|
*
|
|
48
|
-
* This function is the main entrypoint for workflow execution
|
|
48
|
+
* This function is the main entrypoint for isolated workflow execution.
|
|
49
49
|
* It should be called from your container's main script.
|
|
50
50
|
*
|
|
51
51
|
* @example
|
|
@@ -103,4 +103,4 @@ export interface CreateWorkflowRunEntrypointOptions {
|
|
|
103
103
|
}
|
|
104
104
|
/** Create a workflow run entrypoint. */
|
|
105
105
|
export declare function createWorkflowRunEntrypoint(options: CreateWorkflowRunEntrypointOptions): Promise<() => Promise<number>>;
|
|
106
|
-
//# sourceMappingURL=
|
|
106
|
+
//# sourceMappingURL=run-entrypoint.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"run-entrypoint.d.ts","sourceRoot":"","sources":["../../../../src/src/workflow/worker/run-entrypoint.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAWtD;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,uCAAuC;IACvC,OAAO,EAAE,eAAe,CAAC;IAEzB,wBAAwB;IACxB,QAAQ,EAAE,gBAAgB,CAAC;IAE3B,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;CAKb,CAAC;AAEX;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,2BAA2B,GAAG,OAAO,CAAC,MAAM,CAAC,CAgEzF;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,kCAAkC;IACjD,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAC;IAEjB,4BAA4B;IAC5B,SAAS,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,kBAAkB,CAAA;KAAE,CAAC,CAAC;IAErD,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wCAAwC;AACxC,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,kCAAkC,GAC1C,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,CA0BhC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Workflow run entrypoint
|
|
3
3
|
*
|
|
4
|
-
* Runs inside an ephemeral
|
|
4
|
+
* Runs inside an ephemeral run execution container.
|
|
5
5
|
* Executes a single workflow run in complete isolation.
|
|
6
6
|
*
|
|
7
7
|
* Environment variables:
|
|
@@ -35,7 +35,7 @@ export const EXIT_CODES = {
|
|
|
35
35
|
/**
|
|
36
36
|
* Run the workflow run entrypoint
|
|
37
37
|
*
|
|
38
|
-
* This function is the main entrypoint for workflow execution
|
|
38
|
+
* This function is the main entrypoint for isolated workflow execution.
|
|
39
39
|
* It should be called from your container's main script.
|
|
40
40
|
*
|
|
41
41
|
* @example
|