yao/pipe
Max fabced291c fix: Enhance loading functions to handle non-existent directories
- Added checks in various loading functions to ignore processing if the respective directories do not exist, improving error handling and preventing unnecessary operations.
- Updated the Load function signature to return warnings alongside errors, allowing for better feedback on loading issues across different components.
2025-05-13 09:10:10 +08:00
..
ui/cli Refactor UI rendering and add support for web UI 2024-02-15 10:10:33 +08:00
context.go Refactor WithGlobal method to handle nil data 2024-02-17 21:34:32 +08:00
expression.go chore: Update go-colorable dependency to v0.1.14 and refactor expression execution 2025-03-28 23:37:13 +08:00
json.go [add] pipe widget (dev 80%) 2024-02-14 21:33:04 +08:00
node.go Refactor UI rendering and add support for web UI 2024-02-15 10:10:33 +08:00
pipe.go fix: Enhance loading functions to handle non-existent directories 2025-05-13 09:10:10 +08:00
pipe_test.go pipe widget add process handlers 2024-02-15 10:48:44 +08:00
process.go Update pipe widget with new processes 2024-02-17 21:12:28 +08:00
process_test.go Update pipe widget with new processes 2024-02-17 21:12:28 +08:00
README.md Update pipe widget with new processes 2024-02-17 21:12:28 +08:00
types.go Refactor UI rendering and add support for web UI 2024-02-15 10:10:33 +08:00
utils.go [add] pipe widget (dev 80%) 2024-02-14 21:33:04 +08:00

Pipe

Pipe Widget is used for complex logic orchestration, serving as an alternative to Flow.

Warning:

Pipe Widget is an experimental feature and not recommended for production use.

Usage Scenario

Generating DSL from a graphical interface, implementing simple functional logic extensions on the application side.

DSL

CLI: https://github.com/YaoApp/yao-dev-app/blob/main/pipes/cli/translator.pip.yao

WEB: https://github.com/YaoApp/yao-dev-app/blob/main/pipes/web/translator.pip.yao

Node Types

Type options Description
Yao Process name, args run yao process
Switch conditional branch
AI prompts, model, option AI interface
Request HTTP request (not supported yet, use yao process instead)
User Input ui (cli/web/...) user input interface

for more details, refer to the DSL demo.

Process

Refer to unit test programs for examples.

pipes.<Widget.ID>

Run Pipe

yao run pipes.<Widget.ID> [args...]

If interrupted by user input interface, it returns a context ID for resuming execution.

pipe.Run

Run Pipe, equivalent to pipes.<Widget.ID>

yao run pipe.Run <Widget.ID> [args...]

pipe.Create

Pass DSL text to create and run Pipe

yao run pipe.Create <DSL> [args...]

pipe.CreateWith

Pass DSL text to create and run Pipe

yao run pipe.CreateWith <DSL> '::{"foo":"bar"}' [args...]

pipe.Resume

Resume execution, used for context restoration

yao run pipe.Resume <Context.ID> [args...]

pipe.ResumeWith

Resume execution, used for context restoration

yao run pipe.ResumeWith <Context.ID> '::{"foo":"bar"}' [args...]

pipe.Close

Close Pipe

yao run pipe.Close <Context.ID>

Features

  • Yao Process Node Support for running yao process
  • Switch Node Conditional branch
  • AI Node AI interface
  • User Input Node User input interface
  • Request Node Support for Http Request
  • Hooks Progress report for hook integration