# gagishmagi/seyoawe-community architecture

> Architecture diagram of the GitHub repository gagishmagi/seyoawe-community, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/gagishmagi/seyoawe-community
- Repository: https://github.com/gagishmagi/seyoawe-community
- Video tour (about a minute): https://gitdiagram.com/gagishmagi/seyoawe-community/video

## Overview

SeyoAWE is a YAML-driven workflow automation engine: users define workflows, trigger runs, and receive integrations or approval requests as steps execute. The documented lifecycle includes trigger handling, step execution with shared context, human approval and form resumption, and persistent run state and logs. The repository tree and excerpts show the CLI and integration modules, but not the engine implementation; runtime relationships beyond the documented behavior are therefore represented conservatively.

Main entry points: [`modules/webform/webform.py`](https://github.com/gagishmagi/seyoawe-community/blob/main/modules/webform/webform.py) (Webform module), [`sawectl/sawectl.py`](https://github.com/gagishmagi/seyoawe-community/blob/main/sawectl/sawectl.py) (sawectl CLI), [`workflows`](https://github.com/gagishmagi/seyoawe-community/tree/main/workflows) (Workflow definitions), [`modules/api_module/api.py`](https://github.com/gagishmagi/seyoawe-community/blob/main/modules/api_module/api.py) (API module)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_authoring["Workflow authoring"]
  node_cli["sawectl CLI<br/>[sawectl.py]"]
  node_workflow_yaml["Workflow definitions"]
end

subgraph group_runtime["Workflow runtime"]
  node_config["Engine configuration<br/>[config.yaml]"]
  node_engine["Workflow engine"]
  node_triggers["API and Git triggers"]
  node_context["Run context"]
end

subgraph group_human["Human interaction"]
  node_approvals["Approval handling"]
  node_webform["Webform module<br/>[webform.py]"]
end

subgraph group_integrations["Integration modules"]
  node_api_module["API module<br/>[api.py]"]
  node_command_module["Command module<br/>[command.py]"]
  node_git_module["Git module<br/>[git.py]"]
  node_slack_module["Slack module<br/>[slack.py]"]
  node_email_module["Email module<br/>[email.py]"]
  node_chatbot_module["Chatbot module<br/>[chatbot.py]"]
  node_remote_delegate["Remote workflow delegate"]
end

subgraph group_operations["Run operations"]
  node_recovery["Run recovery"]
  node_run_state[("Run state files")]
  node_run_logs["Run logs"]
end

node_user(("Workflow user"))
node_approver(("Human approver"))
node_external_services["External APIs and providers"]
node_smtp["SMTP service"]
node_slack["Slack service"]
node_git_host["Git host"]
node_llm_providers["LLM providers"]

node_user -->|"runs commands"| node_cli
node_user -->|"defines workflow"| node_workflow_yaml
node_cli -->|"submits workflow"| node_engine
node_workflow_yaml -->|"provides steps"| node_engine
node_config -->|"configures runtime"| node_engine
node_triggers -.->|"starts runs"| node_engine
node_engine -->|"maintains context"| node_context
node_engine -->|"dispatches steps"| node_api_module
node_engine -->|"dispatches steps"| node_command_module
node_engine -->|"dispatches steps"| node_git_module
node_engine -->|"dispatches steps"| node_slack_module
node_engine -->|"dispatches steps"| node_email_module
node_engine -->|"dispatches steps"| node_chatbot_module
node_engine -->|"dispatches steps"| node_remote_delegate
node_engine -->|"pauses for approval"| node_approvals
node_approvals -->|"requests form"| node_webform
node_approver -->|"submits response"| node_webform
node_webform -->|"returns form route"| node_approvals
node_approvals -->|"resumes run"| node_engine
node_engine -->|"persists state"| node_run_state
node_engine -->|"writes logs"| node_run_logs
node_recovery -->|"loads saved state"| node_run_state
node_recovery -->|"resumes run"| node_engine
node_api_module -->|"sends requests"| node_external_services
node_git_module -->|"clones and manages PRs"| node_git_host
node_slack_module -->|"posts messages"| node_slack
node_email_module -->|"sends email"| node_smtp
node_chatbot_module -->|"requests responses"| node_llm_providers
node_remote_delegate -->|"runs delegated workflow"| node_engine

click node_cli "https://github.com/gagishmagi/seyoawe-community/blob/main/sawectl/sawectl.py"
click node_workflow_yaml "https://github.com/gagishmagi/seyoawe-community/tree/main/workflows"
click node_config "https://github.com/gagishmagi/seyoawe-community/blob/main/configuration/config.yaml"
click node_webform "https://github.com/gagishmagi/seyoawe-community/blob/main/modules/webform/webform.py"
click node_api_module "https://github.com/gagishmagi/seyoawe-community/blob/main/modules/api_module/api.py"
click node_command_module "https://github.com/gagishmagi/seyoawe-community/blob/main/modules/command_module/command.py"
click node_git_module "https://github.com/gagishmagi/seyoawe-community/blob/main/modules/git_module/git.py"
click node_slack_module "https://github.com/gagishmagi/seyoawe-community/blob/main/modules/slack_module/slack.py"
click node_email_module "https://github.com/gagishmagi/seyoawe-community/blob/main/modules/email_module/email.py"
click node_chatbot_module "https://github.com/gagishmagi/seyoawe-community/blob/main/modules/chatbot_module/chatbot.py"
click node_remote_delegate "https://github.com/gagishmagi/seyoawe-community/blob/main/modules/delegate_remote_workflow/remote_delegator.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_cli,node_workflow_yaml,node_user toneBlue
class node_config,node_engine,node_triggers,node_context toneAmber
class node_approvals,node_webform,node_external_services toneMint
class node_api_module,node_command_module,node_git_module,node_slack_module,node_email_module,node_chatbot_module,node_remote_delegate toneRose
class node_recovery,node_run_state,node_run_logs,node_approver,node_smtp,node_slack,node_git_host,node_llm_providers toneIndigo
```

## Components

### Workflow authoring

- [sawectl CLI](https://github.com/gagishmagi/seyoawe-community/blob/main/sawectl/sawectl.py): `sawectl/sawectl.py`
- [Workflow definitions](https://github.com/gagishmagi/seyoawe-community/tree/main/workflows): `workflows`

### Workflow runtime

- [Engine configuration](https://github.com/gagishmagi/seyoawe-community/blob/main/configuration/config.yaml): `configuration/config.yaml`
- **Workflow engine**
- **API and Git triggers**
- **Run context**

### Human interaction

- **Approval handling**
- [Webform module](https://github.com/gagishmagi/seyoawe-community/blob/main/modules/webform/webform.py): `modules/webform/webform.py`

### Integration modules

- [API module](https://github.com/gagishmagi/seyoawe-community/blob/main/modules/api_module/api.py): `modules/api_module/api.py`
- [Command module](https://github.com/gagishmagi/seyoawe-community/blob/main/modules/command_module/command.py): `modules/command_module/command.py`
- [Git module](https://github.com/gagishmagi/seyoawe-community/blob/main/modules/git_module/git.py): `modules/git_module/git.py`
- [Slack module](https://github.com/gagishmagi/seyoawe-community/blob/main/modules/slack_module/slack.py): `modules/slack_module/slack.py`
- [Email module](https://github.com/gagishmagi/seyoawe-community/blob/main/modules/email_module/email.py): `modules/email_module/email.py`
- [Chatbot module](https://github.com/gagishmagi/seyoawe-community/blob/main/modules/chatbot_module/chatbot.py): `modules/chatbot_module/chatbot.py`
- [Remote workflow delegate](https://github.com/gagishmagi/seyoawe-community/blob/main/modules/delegate_remote_workflow/remote_delegator.py): `modules/delegate_remote_workflow/remote_delegator.py`

### Run operations

- **Run recovery**
- **Run state files**
- **Run logs**

### Other components

- **Workflow user**
- **Human approver**
- **External APIs and providers**
- **SMTP service**
- **Slack service**
- **Git host**
- **LLM providers**

## Connections

- Workflow user → sawectl CLI: runs commands
- Workflow user → Workflow definitions: defines workflow
- sawectl CLI → Workflow engine: submits workflow
- Workflow definitions → Workflow engine: provides steps
- Engine configuration → Workflow engine: configures runtime
- API and Git triggers → Workflow engine: starts runs
- Workflow engine → Run context: maintains context
- Workflow engine → API module: dispatches steps
- Workflow engine → Command module: dispatches steps
- Workflow engine → Git module: dispatches steps
- Workflow engine → Slack module: dispatches steps
- Workflow engine → Email module: dispatches steps
- Workflow engine → Chatbot module: dispatches steps
- Workflow engine → Remote workflow delegate: dispatches steps
- Workflow engine → Approval handling: pauses for approval
- Approval handling → Webform module: requests form
- Human approver → Webform module: submits response
- Webform module → Approval handling: returns form route
- Approval handling → Workflow engine: resumes run
- Workflow engine → Run state files: persists state
- Workflow engine → Run logs: writes logs
- Run recovery → Run state files: loads saved state
- Run recovery → Workflow engine: resumes run
- API module → External APIs and providers: sends requests
- Git module → Git host: clones and manages PRs
- Slack module → Slack service: posts messages
- Email module → SMTP service: sends email
- Chatbot module → LLM providers: requests responses
- Remote workflow delegate → Workflow engine: runs delegated workflow
