FN-5761: add workflow IR parsing and serialization contract
Implement the v1 workflow IR contract in core with validation, serialization, and coverage. - add workflow IR type definitions, parser, serializer, and structured validation errors in @fusion/core - export workflow IR APIs from core index and add comprehensive unit tests for valid/invalid shapes and metadata parsing - document the workflow IR contract in workflow step docs and include release tracking via changesets, including plugin-sdk DOM lib prerequisite for Windows compilation Files changed: .changeset/fn-5761-workflow-ir-contract.md | 5 + .changeset/windows-release-plugin-sdk-dom-lib.md | 5 + docs/workflow-steps.md | 24 +++ packages/core/src/__tests__/workflow-ir.test.ts | 70 +++++++ packages/core/src/index.ts | 15 ++ packages/core/src/workflow-ir-types.ts | 103 ++++++++++ packages/core/src/workflow-ir.ts | 244 +++++++++++++++++++++++ packages/plugin-sdk/tsconfig.json | 7 +- 8 files changed, 472 insertions(+), 1 deletion(-) Fusion-Task-Id: FN-5761 Fusion-Task-Lineage: 2cd5491e-89c8-418c-a913-76d0c13b466c
This commit is contained in:
5
.changeset/fn-5761-workflow-ir-contract.md
Normal file
5
.changeset/fn-5761-workflow-ir-contract.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@runfusion/fusion": minor
|
||||
---
|
||||
|
||||
Add the Workflow IR v1 contract surface via `@fusion/core`, including versioned graph types (`WorkflowIr`), runtime parsing/validation (`parseWorkflowIr`), serialization (`serializeWorkflowIr`), and a canonical built-in fixture (`BUILTIN_WORKFLOW_IR_FIXTURE`) for interpreter parity testing.
|
||||
5
.changeset/windows-release-plugin-sdk-dom-lib.md
Normal file
5
.changeset/windows-release-plugin-sdk-dom-lib.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@fusion/plugin-sdk": patch
|
||||
---
|
||||
|
||||
Fix Windows binary-release build failure: add the DOM lib to `@fusion/plugin-sdk`'s tsconfig. Because `@fusion/core` exports its types as raw `src/*.ts`, plugin-sdk recompiles core's source under its own compiler options; without the DOM lib the global fetch `Response` type (`.ok`/`.status`/`.json`) resolved inconsistently across platforms and broke the Windows CLI and desktop release jobs (TS2339).
|
||||
Reference in New Issue
Block a user