mirror of
https://github.com/openclaw/lobster.git
synced 2026-08-25 12:50:33 -04:00
[PR #14] feat(workflows): add pipeline step type for in-process command execution #14
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/openclaw/lobster/pull/14
Author: @sfo2001
Created: 2/15/2026
Status: 🔄 Open
Base:
main← Head:feat/pipeline-step-type📝 Commits (2)
671dcd6fix(stdlib): remove unused Transport type and transport variable91754c0feat(workflows): add pipeline step type for in-process command execution📊 Changes
5 files changed (+366 additions, -12 deletions)
View changed files
📝
src/cli.ts(+2 -0)📝
src/commands/registry.ts(+7 -1)📝
src/commands/stdlib/llm_task_invoke.ts(+0 -3)📝
src/workflows/file.ts(+89 -8)➕
test/workflow_pipeline_step.test.ts(+268 -0)📄 Description
Motivation
Workflow steps currently execute via
/bin/sh, so using lobster's stdlib commands (map, sort, jq-filter, each) from a workflow requires spawning a separate lobster process. Thepipelinestep type runs commands in-process through the existing registry, avoiding the shell round-trip and making stdlib commands first-class citizens in workflow definitions.Summary
pipeline: "command | chain"instead ofcommand: "shell string"map,sort,eachdirectly in workflow YAMLcommandorpipelineis required per step; validation rejects both or neithercwdis not supported for pipeline steps (raises clear error)registrythroughRunContextfrom CLI to workflow runnerChanges
src/workflows/file.ts(+runPipelineStep,stdinToStream, validation)src/cli.ts(passregistryinto workflow run context)src/commands/registry.ts(exportRegistryinterface)test/workflow_pipeline_step.test.ts(268 lines)+366 / -9 lines across 4 files.
Test plan
pnpm buildpassespnpm lintpassesnode --test dist/test/workflow_pipeline_step.test.jscommandsteps unchanged)Use of AI
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.