feat: add LLM step executor with vision and tool support, event workflow system, and inheritance

- Add LLM executor supporting OpenAI vision, tool calling, embeddings, and structured outputs
- Introduce event emitter/receiver workflows with deduplication and filtering (generate_event functions)
- Add workflow extends/override system enabling inheritance chains and step merge modes
- Update function naming to snake_case across all testdata (fileExists→file_exists, etc.)
- Add comprehensive test fixtures for linter, events, CDN, step dependencies, and extends workflows
This commit is contained in:
j3ssie
2026-01-20 18:23:57 +08:00
parent 9ed02e7eee
commit 1403d20a4d
219 changed files with 25734 additions and 1696 deletions
+17
View File
@@ -0,0 +1,17 @@
kind: flow
name: base-flow
description: Base flow for testing inheritance
params:
- name: target
type: string
required: true
modules:
- name: module-a
path: base-module
- name: module-b
path: base-module
depends_on:
- module-a
+33
View File
@@ -0,0 +1,33 @@
kind: module
name: base-module
description: Base module for testing inheritance
params:
- name: target
type: string
required: true
- name: threads
type: string
default: "10"
- name: timeout
type: string
default: "3600"
dependencies:
commands:
- echo
files:
- /bin/bash
steps:
- name: step-one
type: bash
command: echo "Step one for {{target}}"
- name: step-two
type: bash
command: echo "Step two with threads={{threads}}"
- name: step-three
type: bash
command: echo "Step three"
+12
View File
@@ -0,0 +1,12 @@
kind: module
name: chain-a
description: Chain test - root
params:
- name: param-a
default: "from-a"
steps:
- name: step-from-a
type: bash
command: echo "from chain-a"
+15
View File
@@ -0,0 +1,15 @@
kind: module
name: chain-b
description: Chain test - middle
extends: chain-a
override:
params:
param-a:
default: "overridden-by-b"
steps:
mode: append
steps:
- name: step-from-b
type: bash
command: echo "from chain-b"
+15
View File
@@ -0,0 +1,15 @@
kind: module
name: chain-c
description: Chain test - leaf
extends: chain-b
override:
params:
param-a:
default: "final-from-c"
steps:
mode: append
steps:
- name: step-from-c
type: bash
command: echo "from chain-c"
+13
View File
@@ -0,0 +1,13 @@
kind: flow
name: child-flow
description: Child flow that extends base flow
extends: base-flow
override:
modules:
mode: append
modules:
- name: module-c
path: base-module
depends_on:
- module-b
+18
View File
@@ -0,0 +1,18 @@
kind: module
name: child-merge-steps
description: Child that merges steps (replace specific, remove some, add new)
extends: base-module
override:
steps:
mode: merge
steps:
- name: step-new
type: bash
command: echo "New step added"
remove:
- step-three
replace:
- name: step-two
type: bash
command: echo "Step two replaced with new command"
@@ -0,0 +1,15 @@
kind: module
name: child-override-steps
description: Child that appends steps
extends: base-module
override:
params:
threads:
default: "20"
steps:
mode: append
steps:
- name: step-four
type: bash
command: echo "Step four added by child"
@@ -0,0 +1,12 @@
kind: module
name: child-prepend-steps
description: Child that prepends steps
extends: base-module
override:
steps:
mode: prepend
steps:
- name: step-zero
type: bash
command: echo "Step zero prepended by child"
@@ -0,0 +1,16 @@
kind: module
name: child-replace-steps
description: Child that replaces all steps
extends: base-module
override:
steps:
mode: replace
steps:
- name: new-step-one
type: bash
command: echo "Completely new step one"
- name: new-step-two
type: bash
command: echo "Completely new step two"
+11
View File
@@ -0,0 +1,11 @@
kind: module
name: child-simple
description: Simple child that only overrides params
extends: base-module
override:
params:
threads:
default: "5"
timeout:
default: "1800"
+9
View File
@@ -0,0 +1,9 @@
kind: module
name: circular-a
description: Circular dependency test A
extends: circular-b
steps:
- name: step-a
type: bash
command: echo "A"
+9
View File
@@ -0,0 +1,9 @@
kind: module
name: circular-b
description: Circular dependency test B
extends: circular-a
steps:
- name: step-b
type: bash
command: echo "B"
+8
View File
@@ -0,0 +1,8 @@
kind: flow
name: kind-mismatch
description: This flow tries to extend a module (should fail)
extends: base-module
modules:
- name: module-x
path: base-module