veryfront 0.1.562 → 0.1.564

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 (52) hide show
  1. package/esm/cli/commands/worker/command-help.js +2 -2
  2. package/esm/cli/commands/worker/command.d.ts +1 -1
  3. package/esm/cli/commands/worker/command.js +5 -5
  4. package/esm/deno.js +1 -1
  5. package/esm/src/jobs/index.d.ts +4 -0
  6. package/esm/src/jobs/index.d.ts.map +1 -1
  7. package/esm/src/jobs/index.js +4 -0
  8. package/esm/src/jobs/jobs-client.d.ts +3 -0
  9. package/esm/src/jobs/jobs-client.d.ts.map +1 -1
  10. package/esm/src/jobs/jobs-client.js +3 -0
  11. package/esm/src/utils/version-constant.d.ts +1 -1
  12. package/esm/src/utils/version-constant.js +1 -1
  13. package/esm/src/workflow/backends/memory.d.ts +3 -3
  14. package/esm/src/workflow/backends/memory.d.ts.map +1 -1
  15. package/esm/src/workflow/backends/redis/index.d.ts +3 -3
  16. package/esm/src/workflow/backends/redis/index.d.ts.map +1 -1
  17. package/esm/src/workflow/backends/shared/requeue-run.d.ts +2 -2
  18. package/esm/src/workflow/backends/shared/requeue-run.d.ts.map +1 -1
  19. package/esm/src/workflow/backends/types.d.ts +3 -3
  20. package/esm/src/workflow/backends/types.d.ts.map +1 -1
  21. package/esm/src/workflow/executor/workflow-executor.js +2 -2
  22. package/esm/src/workflow/schemas/index.d.ts +1 -1
  23. package/esm/src/workflow/schemas/index.d.ts.map +1 -1
  24. package/esm/src/workflow/schemas/index.js +1 -1
  25. package/esm/src/workflow/schemas/workflow.schema.d.ts +4 -4
  26. package/esm/src/workflow/schemas/workflow.schema.d.ts.map +1 -1
  27. package/esm/src/workflow/schemas/workflow.schema.js +3 -3
  28. package/esm/src/workflow/types.d.ts +1 -1
  29. package/esm/src/workflow/types.d.ts.map +1 -1
  30. package/esm/src/workflow/worker/dynamic-job-entrypoint.d.ts +14 -14
  31. package/esm/src/workflow/worker/dynamic-job-entrypoint.d.ts.map +1 -1
  32. package/esm/src/workflow/worker/dynamic-job-entrypoint.js +10 -10
  33. package/esm/src/workflow/worker/executors/index.d.ts +3 -2
  34. package/esm/src/workflow/worker/executors/index.d.ts.map +1 -1
  35. package/esm/src/workflow/worker/executors/index.js +3 -2
  36. package/esm/src/workflow/worker/executors/k8s.d.ts +2 -2
  37. package/esm/src/workflow/worker/executors/k8s.js +2 -2
  38. package/esm/src/workflow/worker/executors/process.d.ts +5 -5
  39. package/esm/src/workflow/worker/executors/process.d.ts.map +1 -1
  40. package/esm/src/workflow/worker/executors/process.js +6 -6
  41. package/esm/src/workflow/worker/executors/types.d.ts +5 -4
  42. package/esm/src/workflow/worker/executors/types.d.ts.map +1 -1
  43. package/esm/src/workflow/worker/executors/types.js +3 -2
  44. package/esm/src/workflow/worker/index.d.ts +10 -7
  45. package/esm/src/workflow/worker/index.d.ts.map +1 -1
  46. package/esm/src/workflow/worker/index.js +13 -10
  47. package/esm/src/workflow/worker/job-entrypoint.d.ts +17 -17
  48. package/esm/src/workflow/worker/job-entrypoint.d.ts.map +1 -1
  49. package/esm/src/workflow/worker/job-entrypoint.js +12 -12
  50. package/esm/src/workflow/worker/job-manager.d.ts +11 -11
  51. package/esm/src/workflow/worker/job-manager.js +16 -16
  52. package/package.json +1 -1
@@ -1,7 +1,8 @@
1
1
  /**
2
- * Job Executors
2
+ * Job executors
3
3
  *
4
- * Abstraction layer for executing workflow jobs in different environments.
4
+ * Abstraction layer for executing job-backed workflow runs in different
5
+ * environments.
5
6
  */
6
7
  export type { JobConfig, JobExecutor, JobInfo, JobStatus } from "./types.js";
7
8
  export { isJobExecutor } from "./types.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/src/workflow/worker/executors/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAG3C,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,YAAY,EAAE,SAAS,EAAE,oBAAoB,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAGlG,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,YAAY,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/src/workflow/worker/executors/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAG3C,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,YAAY,EAAE,SAAS,EAAE,oBAAoB,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAGlG,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,YAAY,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC"}
@@ -1,7 +1,8 @@
1
1
  /**
2
- * Job Executors
2
+ * Job executors
3
3
  *
4
- * Abstraction layer for executing workflow jobs in different environments.
4
+ * Abstraction layer for executing job-backed workflow runs in different
5
+ * environments.
5
6
  */
6
7
  export { isJobExecutor } from "./types.js";
7
8
  // K8s Executor
@@ -1,7 +1,7 @@
1
1
  /**
2
- * Kubernetes Job Executor
2
+ * Kubernetes Job executor
3
3
  *
4
- * Executes workflow jobs as Kubernetes Jobs.
4
+ * Executes job-backed workflow runs as Kubernetes Jobs.
5
5
  * Each workflow runs in an ephemeral pod with complete isolation.
6
6
  */
7
7
  import type { JobConfig, JobExecutor, JobInfo } from "./types.js";
@@ -1,7 +1,7 @@
1
1
  /**
2
- * Kubernetes Job Executor
2
+ * Kubernetes Job executor
3
3
  *
4
- * Executes workflow jobs as Kubernetes Jobs.
4
+ * Executes job-backed workflow runs as Kubernetes Jobs.
5
5
  * Each workflow runs in an ephemeral pod with complete isolation.
6
6
  */
7
7
  import { logger as baseLogger } from "../../../utils/index.js";
@@ -7,7 +7,7 @@ export interface ProcessJobExecutorConfig {
7
7
  command?: string;
8
8
  /** Arguments for the command */
9
9
  args?: string[];
10
- /** Path to the job entrypoint script */
10
+ /** Path to the workflow run entrypoint script */
11
11
  entrypointPath: string;
12
12
  /** Working directory for spawned processes */
13
13
  cwd?: string;
@@ -17,21 +17,21 @@ export interface ProcessJobExecutorConfig {
17
17
  debug?: boolean;
18
18
  }
19
19
  /**
20
- * Process Job Executor
20
+ * Process job executor
21
21
  *
22
- * Spawns child processes for each workflow job.
22
+ * Spawns child processes for each job-backed workflow run.
23
23
  * Provides isolation at the process level (separate memory space).
24
24
  *
25
25
  * @example
26
26
  * ```typescript
27
27
  * const executor = new ProcessJobExecutor({
28
- * entrypointPath: "./src/workflow-job.ts",
28
+ * entrypointPath: "./src/workflow-run-entrypoint.ts",
29
29
  * env: {
30
30
  * REDIS_URL: "redis://localhost:6379",
31
31
  * },
32
32
  * });
33
33
  *
34
- * const manager = new WorkflowJobManager({
34
+ * const manager = new WorkflowRunManager({
35
35
  * backend,
36
36
  * executor,
37
37
  * });
@@ -1 +1 @@
1
- {"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../../../../src/src/workflow/worker/executors/process.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAa,MAAM,YAAY,CAAC;AAI7E;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhB,wCAAwC;IACxC,cAAc,EAAE,MAAM,CAAC;IAEvB,8CAA8C;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,uCAAuC;IACvC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE7B,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAkBD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,kBAAmB,YAAW,WAAW;IACpD,OAAO,CAAC,MAAM,CAGZ;IACF,OAAO,CAAC,UAAU,CAAiC;gBAEvC,MAAM,EAAE,wBAAwB;IAS5C,SAAS,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IAsDhD,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IASpD,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAY/C,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBvC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBxB;;OAEG;IACH,OAAO,CAAC,cAAc;IA8DtB;;OAEG;IACH,OAAO,CAAC,YAAY;IAkCpB;;OAEG;IACH,OAAO,CAAC,SAAS;CAelB"}
1
+ {"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../../../../src/src/workflow/worker/executors/process.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAa,MAAM,YAAY,CAAC;AAI7E;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhB,iDAAiD;IACjD,cAAc,EAAE,MAAM,CAAC;IAEvB,8CAA8C;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,uCAAuC;IACvC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE7B,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAkBD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,kBAAmB,YAAW,WAAW;IACpD,OAAO,CAAC,MAAM,CAGZ;IACF,OAAO,CAAC,UAAU,CAAiC;gBAEvC,MAAM,EAAE,wBAAwB;IAS5C,SAAS,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IAsDhD,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IASpD,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAY/C,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBvC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBxB;;OAEG;IACH,OAAO,CAAC,cAAc;IA8DtB;;OAEG;IACH,OAAO,CAAC,YAAY;IAkCpB;;OAEG;IACH,OAAO,CAAC,SAAS;CAelB"}
@@ -1,7 +1,7 @@
1
1
  /**
2
- * Process Job Executor
2
+ * Process job executor
3
3
  *
4
- * Executes workflow jobs as child processes.
4
+ * Executes job-backed 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.
@@ -11,21 +11,21 @@ import { WORKFLOW_JOB_PERMISSIONS } from "../../../security/deno-permissions.js"
11
11
  import { logger as baseLogger } from "../../../utils/index.js";
12
12
  const logger = baseLogger.component("process-job-executor");
13
13
  /**
14
- * Process Job Executor
14
+ * Process job executor
15
15
  *
16
- * Spawns child processes for each workflow job.
16
+ * Spawns child processes for each job-backed workflow run.
17
17
  * Provides isolation at the process level (separate memory space).
18
18
  *
19
19
  * @example
20
20
  * ```typescript
21
21
  * const executor = new ProcessJobExecutor({
22
- * entrypointPath: "./src/workflow-job.ts",
22
+ * entrypointPath: "./src/workflow-run-entrypoint.ts",
23
23
  * env: {
24
24
  * REDIS_URL: "redis://localhost:6379",
25
25
  * },
26
26
  * });
27
27
  *
28
- * const manager = new WorkflowJobManager({
28
+ * const manager = new WorkflowRunManager({
29
29
  * backend,
30
30
  * executor,
31
31
  * });
@@ -1,7 +1,8 @@
1
1
  /**
2
- * Job Executor Interface
2
+ * Job executor interface
3
3
  *
4
- * Abstraction layer for executing workflow jobs in isolated environments.
4
+ * Abstraction layer for executing job-backed workflow runs in isolated
5
+ * environments.
5
6
  * Implementations can target different runtimes:
6
7
  * - K8s Jobs
7
8
  * - Docker containers
@@ -54,7 +55,7 @@ export interface JobInfo {
54
55
  /**
55
56
  * Job Executor Interface
56
57
  *
57
- * Abstracts the runtime environment for executing workflow jobs.
58
+ * Abstracts the runtime environment for executing job-backed workflow runs.
58
59
  * Each implementation handles the specifics of its target platform.
59
60
  *
60
61
  * @example K8s
@@ -83,7 +84,7 @@ export interface JobInfo {
83
84
  */
84
85
  export interface JobExecutor {
85
86
  /**
86
- * Create and start a job for a workflow run
87
+ * Create and start a job for a workflow run.
87
88
  * @returns Job ID
88
89
  */
89
90
  createJob(config: JobConfig): Promise<string>;
@@ -1 +1 @@
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,SAAS;IACxB,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IAEd,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,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEnF;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;IAEd,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAC;IAEd,qBAAqB;IACrB,MAAM,EAAE,SAAS,CAAC;IAElB,2BAA2B;IAC3B,SAAS,EAAE,IAAI,CAAC;IAEhB,iCAAiC;IACjC,SAAS,CAAC,EAAE,IAAI,CAAC;IAEjB,yBAAyB;IACzB,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,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE9C;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAErD;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAEhD;;;OAGG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExC;;;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
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/src/workflow/worker/executors/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IAEd,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,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEnF;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;IAEd,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAC;IAEd,qBAAqB;IACrB,MAAM,EAAE,SAAS,CAAC;IAElB,2BAA2B;IAC3B,SAAS,EAAE,IAAI,CAAC;IAEhB,iCAAiC;IACjC,SAAS,CAAC,EAAE,IAAI,CAAC;IAEjB,yBAAyB;IACzB,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,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE9C;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAErD;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAEhD;;;OAGG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExC;;;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,7 +1,8 @@
1
1
  /**
2
- * Job Executor Interface
2
+ * Job executor interface
3
3
  *
4
- * Abstraction layer for executing workflow jobs in isolated environments.
4
+ * Abstraction layer for executing job-backed workflow runs in isolated
5
+ * environments.
5
6
  * Implementations can target different runtimes:
6
7
  * - K8s Jobs
7
8
  * - Docker containers
@@ -1,29 +1,32 @@
1
1
  /**
2
- * Workflow Worker Module
2
+ * Workflow worker module
3
3
  *
4
4
  * Provides distributed workflow execution support.
5
5
  *
6
- * Three modes available:
6
+ * Three execution profiles are available:
7
7
  *
8
8
  * 1. **WorkflowWorker** - In-process polling worker
9
9
  * - Polls for stalled workflows and resumes them
10
10
  * - Good for trusted code or single-tenant deployments
11
11
  * - Simple setup, lower overhead
12
12
  *
13
- * 2. **WorkflowJobManager + K8sJobExecutor** - Kubernetes Job-based execution
13
+ * 2. **WorkflowRunManager + K8sJobExecutor** - Kubernetes Job-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. **WorkflowJobManager + ProcessJobExecutor** - Local process execution
18
+ * 3. **WorkflowRunManager + ProcessJobExecutor** - 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
+ *
23
+ * A workflow run can be backed by a job executor without introducing another
24
+ * user-visible execution type.
22
25
  */
23
26
  import "../../../_dnt.polyfills.js";
24
27
  export { createWorkflowWorker, type WorkerStats, type WorkerStatus, WorkflowWorker, type WorkflowWorkerConfig, } from "./workflow-worker.js";
25
- export { createWorkflowJobManager, type ManagerStats, type ManagerStatus, WorkflowJobManager, type WorkflowJobManagerConfig, } from "./job-manager.js";
28
+ export { createWorkflowRunManager, type ManagerStats, type ManagerStatus, WorkflowRunManager, type WorkflowRunManagerConfig, } from "./job-manager.js";
26
29
  export { isJobExecutor, type JobConfig, type JobExecutor, type JobInfo, type JobStatus, type K8sClient, K8sJobExecutor, type K8sJobExecutorConfig, type K8sJobSpec, type K8sJobStatusResponse, ProcessJobExecutor, type ProcessJobExecutorConfig, } from "./executors/index.js";
27
- export { createJobEntrypoint, type CreateJobEntrypointOptions, EXIT_CODES, type JobEntrypointConfig, runWorkflowJob, } from "./job-entrypoint.js";
28
- export { createDynamicJobEntrypoint, type CreateDynamicJobEntrypointOptions, DYNAMIC_EXIT_CODES, type DynamicJobEntrypointConfig, runDynamicWorkflowJob, } from "./dynamic-job-entrypoint.js";
30
+ export { createWorkflowRunEntrypoint, type CreateWorkflowRunEntrypointOptions, EXIT_CODES, runWorkflowRun, type WorkflowRunEntrypointConfig, } from "./job-entrypoint.js";
31
+ export { createDynamicWorkflowRunEntrypoint, type CreateDynamicWorkflowRunEntrypointOptions, DYNAMIC_EXIT_CODES, type DynamicWorkflowRunEntrypointConfig, runDynamicWorkflowRun, } from "./dynamic-job-entrypoint.js";
29
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;;;;;;;;;;;;;;;;;;;;;GAqBG;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,WAAW,EAChB,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,SAAS,EACd,cAAc,EACd,KAAK,oBAAoB,EACzB,KAAK,UAAU,EACf,KAAK,oBAAoB,EACzB,kBAAkB,EAClB,KAAK,wBAAwB,GAC9B,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EACL,mBAAmB,EACnB,KAAK,0BAA0B,EAC/B,UAAU,EACV,KAAK,mBAAmB,EACxB,cAAc,GACf,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EACL,0BAA0B,EAC1B,KAAK,iCAAiC,EACtC,kBAAkB,EAClB,KAAK,0BAA0B,EAC/B,qBAAqB,GACtB,MAAM,6BAA6B,CAAC"}
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,WAAW,EAChB,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,SAAS,EACd,cAAc,EACd,KAAK,oBAAoB,EACzB,KAAK,UAAU,EACf,KAAK,oBAAoB,EACzB,kBAAkB,EAClB,KAAK,wBAAwB,GAC9B,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"}
@@ -1,35 +1,38 @@
1
1
  /**
2
- * Workflow Worker Module
2
+ * Workflow worker module
3
3
  *
4
4
  * Provides distributed workflow execution support.
5
5
  *
6
- * Three modes available:
6
+ * Three execution profiles are available:
7
7
  *
8
8
  * 1. **WorkflowWorker** - In-process polling worker
9
9
  * - Polls for stalled workflows and resumes them
10
10
  * - Good for trusted code or single-tenant deployments
11
11
  * - Simple setup, lower overhead
12
12
  *
13
- * 2. **WorkflowJobManager + K8sJobExecutor** - Kubernetes Job-based execution
13
+ * 2. **WorkflowRunManager + K8sJobExecutor** - Kubernetes Job-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. **WorkflowJobManager + ProcessJobExecutor** - Local process execution
18
+ * 3. **WorkflowRunManager + ProcessJobExecutor** - 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
+ *
23
+ * A workflow run can be backed by a job executor without introducing another
24
+ * user-visible execution type.
22
25
  */
23
26
  // In-process worker (single-tenant / trusted code)
24
27
  import "../../../_dnt.polyfills.js";
25
28
  export { createWorkflowWorker, WorkflowWorker, } from "./workflow-worker.js";
26
- // Job-based execution (multi-tenant / untrusted code)
27
- export { createWorkflowJobManager, WorkflowJobManager, } from "./job-manager.js";
29
+ // Job-backed workflow run execution (multi-tenant / untrusted code)
30
+ export { createWorkflowRunManager, WorkflowRunManager, } from "./job-manager.js";
28
31
  // Job Executors (pluggable runtime backends)
29
32
  export { isJobExecutor, K8sJobExecutor, ProcessJobExecutor, } from "./executors/index.js";
30
- // Job entrypoint (runs inside ephemeral container/process)
33
+ // Workflow run entrypoint (runs inside ephemeral container/process)
31
34
  // Use this when workflows are pre-bundled in the container
32
- export { createJobEntrypoint, EXIT_CODES, runWorkflowJob, } from "./job-entrypoint.js";
33
- // Dynamic job entrypoint (discovers workflows at runtime)
35
+ export { createWorkflowRunEntrypoint, EXIT_CODES, runWorkflowRun, } from "./job-entrypoint.js";
36
+ // Dynamic workflow run entrypoint (discovers workflows at runtime)
34
37
  // Use this when workflows are stored in Veryfront API
35
- export { createDynamicJobEntrypoint, DYNAMIC_EXIT_CODES, runDynamicWorkflowJob, } from "./dynamic-job-entrypoint.js";
38
+ export { createDynamicWorkflowRunEntrypoint, DYNAMIC_EXIT_CODES, runDynamicWorkflowRun, } from "./dynamic-job-entrypoint.js";
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Workflow Job Entrypoint
2
+ * Workflow run entrypoint
3
3
  *
4
4
  * Runs inside an ephemeral K8s Job container.
5
5
  * Executes a single workflow run in complete isolation.
@@ -23,9 +23,9 @@ import type { WorkflowBackend } from "../backends/types.js";
23
23
  import type { WorkflowExecutor } from "../executor/workflow-executor.js";
24
24
  import type { WorkflowDefinition } from "../types.js";
25
25
  /**
26
- * Configuration for the job entrypoint
26
+ * Configuration for the workflow run entrypoint.
27
27
  */
28
- export interface JobEntrypointConfig {
28
+ export interface WorkflowRunEntrypointConfig {
29
29
  /** Backend for workflow persistence */
30
30
  backend: WorkflowBackend;
31
31
  /** Workflow executor */
@@ -34,7 +34,7 @@ export interface JobEntrypointConfig {
34
34
  debug?: boolean;
35
35
  }
36
36
  /**
37
- * Exit codes for the job
37
+ * Exit codes for the workflow run entrypoint.
38
38
  */
39
39
  export declare const EXIT_CODES: {
40
40
  readonly SUCCESS: 0;
@@ -43,17 +43,17 @@ export declare const EXIT_CODES: {
43
43
  readonly NOT_FOUND: 3;
44
44
  };
45
45
  /**
46
- * Run the workflow job
46
+ * Run the workflow run entrypoint
47
47
  *
48
48
  * This function is the main entrypoint for workflow execution in a K8s Job.
49
49
  * It should be called from your container's main script.
50
50
  *
51
51
  * @example
52
52
  * ```typescript
53
- * // job-main.ts - Container entrypoint
53
+ * // workflow-runner.ts - Container entrypoint
54
54
  * import { RedisBackend } from "veryfront/workflow";
55
55
  * import { WorkflowExecutor } from "veryfront/workflow";
56
- * import { runWorkflowJob } from "veryfront/workflow/worker";
56
+ * import { runWorkflowRun } from "veryfront/workflow/worker";
57
57
  * import { workflows } from "./workflows.ts";
58
58
  *
59
59
  * const backend = new RedisBackend({ url: Deno.env.get("REDIS_URL")! });
@@ -64,25 +64,25 @@ export declare const EXIT_CODES: {
64
64
  * executor.register(wf);
65
65
  * }
66
66
  *
67
- * // Run the job
68
- * const exitCode = await runWorkflowJob({ backend, executor });
67
+ * // Run the workflow run
68
+ * const exitCode = await runWorkflowRun({ backend, executor });
69
69
  * Deno.exit(exitCode);
70
70
  * ```
71
71
  */
72
- export declare function runWorkflowJob(config: JobEntrypointConfig): Promise<number>;
72
+ export declare function runWorkflowRun(config: WorkflowRunEntrypointConfig): Promise<number>;
73
73
  /**
74
- * Create a simple job entrypoint script
74
+ * Create a simple workflow run entrypoint script.
75
75
  *
76
76
  * This is a convenience function that creates the entire entrypoint
77
77
  * with Redis backend and executor setup.
78
78
  *
79
79
  * @example
80
80
  * ```typescript
81
- * // job-main.ts
82
- * import { createJobEntrypoint } from "veryfront/workflow/worker";
81
+ * // workflow-runner.ts
82
+ * import { createWorkflowRunEntrypoint } from "veryfront/workflow/worker";
83
83
  * import { workflows } from "./workflows.ts";
84
84
  *
85
- * const run = createJobEntrypoint({
85
+ * const run = createWorkflowRunEntrypoint({
86
86
  * redisUrl: Deno.env.get("REDIS_URL")!,
87
87
  * workflows,
88
88
  * });
@@ -91,7 +91,7 @@ export declare function runWorkflowJob(config: JobEntrypointConfig): Promise<num
91
91
  * Deno.exit(exitCode);
92
92
  * ```
93
93
  */
94
- export interface CreateJobEntrypointOptions {
94
+ export interface CreateWorkflowRunEntrypointOptions {
95
95
  /** Redis URL for backend */
96
96
  redisUrl: string;
97
97
  /** Workflows to register */
@@ -101,6 +101,6 @@ export interface CreateJobEntrypointOptions {
101
101
  /** Enable debug logging */
102
102
  debug?: boolean;
103
103
  }
104
- /** Create job entrypoint. */
105
- export declare function createJobEntrypoint(options: CreateJobEntrypointOptions): Promise<() => Promise<number>>;
104
+ /** Create a workflow run entrypoint. */
105
+ export declare function createWorkflowRunEntrypoint(options: CreateWorkflowRunEntrypointOptions): Promise<() => Promise<number>>;
106
106
  //# sourceMappingURL=job-entrypoint.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"job-entrypoint.d.ts","sourceRoot":"","sources":["../../../../src/src/workflow/worker/job-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,mBAAmB;IAClC,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,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CAgEjF;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,0BAA0B;IACzC,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,6BAA6B;AAC7B,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,CA0BhC"}
1
+ {"version":3,"file":"job-entrypoint.d.ts","sourceRoot":"","sources":["../../../../src/src/workflow/worker/job-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,5 +1,5 @@
1
1
  /**
2
- * Workflow Job Entrypoint
2
+ * Workflow run entrypoint
3
3
  *
4
4
  * Runs inside an ephemeral K8s Job container.
5
5
  * Executes a single workflow run in complete isolation.
@@ -22,9 +22,9 @@
22
22
  import { logger as baseLogger } from "../../utils/index.js";
23
23
  import { getEnv } from "../../platform/compat/process.js";
24
24
  import { failRunExecution, getFinalRunExitCode, getTenantFromEnv, hydrateRunContextEnv, runWithTenantContext, } from "./shared.js";
25
- const logger = baseLogger.component("workflow-job");
25
+ const logger = baseLogger.component("workflow-run-entrypoint");
26
26
  /**
27
- * Exit codes for the job
27
+ * Exit codes for the workflow run entrypoint.
28
28
  */
29
29
  export const EXIT_CODES = {
30
30
  SUCCESS: 0,
@@ -33,17 +33,17 @@ export const EXIT_CODES = {
33
33
  NOT_FOUND: 3,
34
34
  };
35
35
  /**
36
- * Run the workflow job
36
+ * Run the workflow run entrypoint
37
37
  *
38
38
  * This function is the main entrypoint for workflow execution in a K8s Job.
39
39
  * It should be called from your container's main script.
40
40
  *
41
41
  * @example
42
42
  * ```typescript
43
- * // job-main.ts - Container entrypoint
43
+ * // workflow-runner.ts - Container entrypoint
44
44
  * import { RedisBackend } from "veryfront/workflow";
45
45
  * import { WorkflowExecutor } from "veryfront/workflow";
46
- * import { runWorkflowJob } from "veryfront/workflow/worker";
46
+ * import { runWorkflowRun } from "veryfront/workflow/worker";
47
47
  * import { workflows } from "./workflows.ts";
48
48
  *
49
49
  * const backend = new RedisBackend({ url: Deno.env.get("REDIS_URL")! });
@@ -54,12 +54,12 @@ export const EXIT_CODES = {
54
54
  * executor.register(wf);
55
55
  * }
56
56
  *
57
- * // Run the job
58
- * const exitCode = await runWorkflowJob({ backend, executor });
57
+ * // Run the workflow run
58
+ * const exitCode = await runWorkflowRun({ backend, executor });
59
59
  * Deno.exit(exitCode);
60
60
  * ```
61
61
  */
62
- export async function runWorkflowJob(config) {
62
+ export async function runWorkflowRun(config) {
63
63
  const { backend, executor, debug = false } = config;
64
64
  // Get workflow run ID from environment
65
65
  const runId = getEnv("WORKFLOW_RUN_ID");
@@ -109,8 +109,8 @@ export async function runWorkflowJob(config) {
109
109
  return EXIT_CODES.WORKFLOW_FAILED;
110
110
  }
111
111
  }
112
- /** Create job entrypoint. */
113
- export async function createJobEntrypoint(options) {
112
+ /** Create a workflow run entrypoint. */
113
+ export async function createWorkflowRunEntrypoint(options) {
114
114
  // Dynamic imports to avoid loading Redis if not needed
115
115
  const { RedisBackend } = await import("../backends/redis.js");
116
116
  const { WorkflowExecutor } = await import("../executor/workflow-executor.js");
@@ -126,7 +126,7 @@ export async function createJobEntrypoint(options) {
126
126
  for (const wf of options.workflows) {
127
127
  executor.register(wf.definition);
128
128
  }
129
- return () => runWorkflowJob({
129
+ return () => runWorkflowRun({
130
130
  backend,
131
131
  executor,
132
132
  debug: options.debug,
@@ -2,9 +2,9 @@ import { type WorkflowBackend } from "../backends/types.js";
2
2
  import type { JobExecutor, JobStatus } from "./executors/types.js";
3
3
  export type { JobExecutor, JobInfo, JobStatus } from "./executors/types.js";
4
4
  /**
5
- * Configuration for the Workflow Job Manager
5
+ * Configuration for the workflow run manager backed by job executors.
6
6
  */
7
- export interface WorkflowJobManagerConfig {
7
+ export interface WorkflowRunManagerConfig {
8
8
  /** Backend for workflow persistence */
9
9
  backend: WorkflowBackend;
10
10
  /** Job executor (K8s, Docker, Process, etc.) */
@@ -52,7 +52,7 @@ interface TrackedJob {
52
52
  createdAt: Date;
53
53
  }
54
54
  /**
55
- * Workflow Job Manager
55
+ * Workflow run manager
56
56
  *
57
57
  * Orchestrates workflow execution via pluggable job executors.
58
58
  * Each workflow runs in complete isolation.
@@ -64,7 +64,7 @@ interface TrackedJob {
64
64
  * namespace: "workflows",
65
65
  * }, k8sClient);
66
66
  *
67
- * const manager = new WorkflowJobManager({
67
+ * const manager = new WorkflowRunManager({
68
68
  * backend: redisBackend,
69
69
  * executor,
70
70
  * });
@@ -78,7 +78,7 @@ interface TrackedJob {
78
78
  * entrypointPath: "./job-entrypoint.ts",
79
79
  * });
80
80
  *
81
- * const manager = new WorkflowJobManager({
81
+ * const manager = new WorkflowRunManager({
82
82
  * backend: redisBackend,
83
83
  * executor,
84
84
  * });
@@ -86,20 +86,20 @@ interface TrackedJob {
86
86
  * manager.start();
87
87
  * ```
88
88
  */
89
- export declare class WorkflowJobManager {
89
+ export declare class WorkflowRunManager {
90
90
  private config;
91
91
  private status;
92
92
  private pollTimeout?;
93
93
  private activeJobs;
94
94
  private stats;
95
95
  private managerId;
96
- constructor(config: WorkflowJobManagerConfig);
96
+ constructor(config: WorkflowRunManagerConfig);
97
97
  /**
98
- * Start the job manager
98
+ * Start the workflow run manager.
99
99
  */
100
100
  start(): Promise<void>;
101
101
  /**
102
- * Stop the job manager gracefully
102
+ * Stop the workflow run manager gracefully.
103
103
  */
104
104
  stop(): Promise<void>;
105
105
  /**
@@ -136,7 +136,7 @@ export declare class WorkflowJobManager {
136
136
  private recordError;
137
137
  }
138
138
  /**
139
- * Create a workflow job manager
139
+ * Create a workflow run manager backed by job executors.
140
140
  */
141
- export declare function createWorkflowJobManager(config: WorkflowJobManagerConfig): WorkflowJobManager;
141
+ export declare function createWorkflowRunManager(config: WorkflowRunManagerConfig): WorkflowRunManager;
142
142
  //# sourceMappingURL=job-manager.d.ts.map
@@ -1,7 +1,7 @@
1
1
  /**
2
- * Workflow Job Manager
2
+ * Workflow run manager
3
3
  *
4
- * Orchestrates workflow execution via isolated jobs.
4
+ * Orchestrates workflow run execution via isolated jobs.
5
5
  * Uses pluggable JobExecutor interface for runtime flexibility.
6
6
  *
7
7
  * Supported runtimes:
@@ -19,7 +19,7 @@ import { logger as baseLogger } from "../../utils/index.js";
19
19
  import { hasLockSupport, hasWorkerSupport } from "../backends/types.js";
20
20
  import { generateId } from "../types.js";
21
21
  import { ORCHESTRATION_ERROR } from "../../errors/index.js";
22
- const logger = baseLogger.component("workflow-job-manager");
22
+ const logger = baseLogger.component("workflow-run-manager");
23
23
  /** Default interval between poll cycles */
24
24
  const DEFAULT_POLL_INTERVAL_MS = 5_000;
25
25
  /** Default timeout for a single job (30 minutes) */
@@ -27,7 +27,7 @@ const DEFAULT_JOB_TIMEOUT_MS = 30 * 60 * 1_000;
27
27
  /** Default threshold after which a run is considered stalled */
28
28
  const DEFAULT_STALLED_THRESHOLD_MS = 60_000;
29
29
  /**
30
- * Workflow Job Manager
30
+ * Workflow run manager
31
31
  *
32
32
  * Orchestrates workflow execution via pluggable job executors.
33
33
  * Each workflow runs in complete isolation.
@@ -39,7 +39,7 @@ const DEFAULT_STALLED_THRESHOLD_MS = 60_000;
39
39
  * namespace: "workflows",
40
40
  * }, k8sClient);
41
41
  *
42
- * const manager = new WorkflowJobManager({
42
+ * const manager = new WorkflowRunManager({
43
43
  * backend: redisBackend,
44
44
  * executor,
45
45
  * });
@@ -53,7 +53,7 @@ const DEFAULT_STALLED_THRESHOLD_MS = 60_000;
53
53
  * entrypointPath: "./job-entrypoint.ts",
54
54
  * });
55
55
  *
56
- * const manager = new WorkflowJobManager({
56
+ * const manager = new WorkflowRunManager({
57
57
  * backend: redisBackend,
58
58
  * executor,
59
59
  * });
@@ -61,7 +61,7 @@ const DEFAULT_STALLED_THRESHOLD_MS = 60_000;
61
61
  * manager.start();
62
62
  * ```
63
63
  */
64
- export class WorkflowJobManager {
64
+ export class WorkflowRunManager {
65
65
  config;
66
66
  status = "idle";
67
67
  pollTimeout;
@@ -89,11 +89,11 @@ export class WorkflowJobManager {
89
89
  };
90
90
  }
91
91
  /**
92
- * Start the job manager
92
+ * Start the workflow run manager.
93
93
  */
94
94
  async start() {
95
95
  if (this.status === "running") {
96
- throw ORCHESTRATION_ERROR.create({ detail: "Job manager is already running" });
96
+ throw ORCHESTRATION_ERROR.create({ detail: "Workflow run manager is already running" });
97
97
  }
98
98
  // Initialize executor if needed
99
99
  if (this.config.executor.initialize) {
@@ -109,7 +109,7 @@ export class WorkflowJobManager {
109
109
  this.scheduleNextPoll();
110
110
  }
111
111
  /**
112
- * Stop the job manager gracefully
112
+ * Stop the workflow run manager gracefully.
113
113
  */
114
114
  async stop() {
115
115
  if (this.status !== "running") {
@@ -192,7 +192,7 @@ export class WorkflowJobManager {
192
192
  if (hasWorkerSupport(this.config.backend)) {
193
193
  stalledRuns = await this.config.backend.findStalledRuns(this.config.stalledThreshold);
194
194
  if (stalledRuns.length > 0 && this.config.debug) {
195
- logger.info(`[WorkflowJobManager] Found ${stalledRuns.length} stalled runs to recover`);
195
+ logger.info(`[WorkflowRunManager] Found ${stalledRuns.length} stalled runs to recover`);
196
196
  }
197
197
  }
198
198
  // Combine pending and stalled runs
@@ -238,7 +238,7 @@ export class WorkflowJobManager {
238
238
  await this.config.backend.releaseLock?.(run.id);
239
239
  }
240
240
  catch (error) {
241
- logger.warn(`[WorkflowJobManager] Failed to release pending lock for ${run.id}:`, error);
241
+ logger.warn(`[WorkflowRunManager] Failed to release pending lock for ${run.id}:`, error);
242
242
  }
243
243
  }
244
244
  }
@@ -275,7 +275,7 @@ export class WorkflowJobManager {
275
275
  }
276
276
  else {
277
277
  this.stats.jobsFailed++;
278
- logger.error(`[WorkflowJobManager] Job failed: ${jobInfo.jobId}`, jobInfo.error);
278
+ logger.error(`[WorkflowRunManager] Job failed: ${jobInfo.jobId}`, jobInfo.error);
279
279
  }
280
280
  }
281
281
  }
@@ -339,8 +339,8 @@ export class WorkflowJobManager {
339
339
  }
340
340
  }
341
341
  /**
342
- * Create a workflow job manager
342
+ * Create a workflow run manager backed by job executors.
343
343
  */
344
- export function createWorkflowJobManager(config) {
345
- return new WorkflowJobManager(config);
344
+ export function createWorkflowRunManager(config) {
345
+ return new WorkflowRunManager(config);
346
346
  }