mirror of
https://github.com/j3ssie/osmedeus.git
synced 2026-10-01 05:55:05 +02:00
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:
+17
@@ -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
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
|
||||
@@ -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"
|
||||
@@ -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"
|
||||
@@ -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"
|
||||
@@ -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"
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user