@cascade-flow/runner 0.2.17 → 0.2.18

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.
@@ -1,14 +1,28 @@
1
- import type { LogEntry } from "@cascade-flow/backend-interface";
1
+ import type { LogEntry, ResourceUsage } from "@cascade-flow/backend-interface";
2
2
  import type { StepOutput, RunnerContext } from "@cascade-flow/workflow";
3
3
  import { type CheckpointData, type CheckpointFailedData } from "./checkpoint-ipc.ts";
4
+ /**
5
+ * Typed error class for subprocess step execution failures.
6
+ * Replaces ad-hoc `(error as any).resourceUsage` / `(error as any).isCrash` mutation.
7
+ */
8
+ export declare class StepExecutionError extends Error {
9
+ resourceUsage?: ResourceUsage;
10
+ isCrash?: boolean;
11
+ constructor(message: string, opts?: {
12
+ cause?: unknown;
13
+ resourceUsage?: ResourceUsage;
14
+ isCrash?: boolean;
15
+ });
16
+ }
4
17
  type SubprocessOptions = {
5
18
  signal?: AbortSignal;
19
+ onPid?: (pid: number) => void;
6
20
  };
7
21
  /**
8
22
  * Execute a step in an isolated child process
9
23
  *
10
- * Spawns a subprocess using step-executor.ts, captures stdout/stderr,
11
- * and reads the step output from a file.
24
+ * Spawns a subprocess using Bun.spawn, captures stdout/stderr,
25
+ * reads step output from a file, and collects resource usage metrics.
12
26
  *
13
27
  * @param stepFile - Absolute path to the step.ts file
14
28
  * @param stepId - Unique identifier of the step (directory name)
@@ -21,11 +35,13 @@ type SubprocessOptions = {
21
35
  * @param onCheckpointFailed - Optional callback for persisting checkpoint failures
22
36
  * @param existingCheckpoints - Existing checkpoints to replay (name -> data[] by sequence)
23
37
  * @param options - Additional options (signal for abort)
24
- * @returns Promise resolving to step result and collected logs
38
+ * @returns Promise resolving to step result, collected logs, and resource usage
25
39
  */
26
40
  export declare function executeStepInSubprocess(stepFile: string, stepId: string, dependencies: Record<string, unknown>, ctx: RunnerContext, attemptNumber: number, outputPath: string, onLog?: (log: LogEntry) => void | Promise<void>, onCheckpoint?: (checkpoint: CheckpointData) => Promise<void>, onCheckpointFailed?: (checkpoint: CheckpointFailedData) => Promise<void>, existingCheckpoints?: Map<string, string[]>, options?: SubprocessOptions): Promise<{
27
41
  result: StepOutput;
28
42
  logs: LogEntry[];
43
+ resourceUsage?: ResourceUsage;
44
+ pid: number;
29
45
  }>;
30
46
  export {};
31
47
  //# sourceMappingURL=subprocess-executor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"subprocess-executor.d.ts","sourceRoot":"","sources":["../src/subprocess-executor.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAEhE,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAQL,KAAK,cAAc,EAEnB,KAAK,oBAAoB,EAC1B,MAAM,qBAAqB,CAAC;AA+I7B,KAAK,iBAAiB,GAAG;IACvB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,CAAC;AA2LF;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,GAAG,EAAE,aAAa,EAClB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAC/C,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,EAC5D,kBAAkB,CAAC,EAAE,CAAC,UAAU,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,EACxE,mBAAmB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAC3C,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,QAAQ,EAAE,CAAA;CAAE,CAAC,CAwOnD"}
1
+ {"version":3,"file":"subprocess-executor.d.ts","sourceRoot":"","sources":["../src/subprocess-executor.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAE/E,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAQL,KAAK,cAAc,EAEnB,KAAK,oBAAoB,EAC1B,MAAM,qBAAqB,CAAC;AAE7B;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;gBACN,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,aAAa,CAAC,EAAE,aAAa,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE;CAM1G;AA+ID,KAAK,iBAAiB,GAAG;IACvB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/B,CAAC;AAmOF;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,GAAG,EAAE,aAAa,EAClB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAC/C,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,EAC5D,kBAAkB,CAAC,EAAE,CAAC,UAAU,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,EACxE,mBAAmB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAC3C,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,QAAQ,EAAE,CAAC;IAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAoO/F"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cascade-flow/runner",
3
- "version": "0.2.17",
3
+ "version": "0.2.18",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -22,8 +22,8 @@
22
22
  "test:coverage": "bun test --coverage"
23
23
  },
24
24
  "dependencies": {
25
- "@cascade-flow/backend-filesystem": "0.2.17",
26
- "@cascade-flow/backend-interface": "0.2.8",
25
+ "@cascade-flow/backend-filesystem": "0.2.18",
26
+ "@cascade-flow/backend-interface": "0.2.9",
27
27
  "@cascade-flow/workflow": "0.3.5",
28
28
  "zod": "^4.1.12"
29
29
  },