aios-core
Version:
Synkra AIOS: AI-Orchestrated System for Full Stack Development - Core Framework
151 lines (142 loc) • 4.04 kB
YAML
# yamllint disable
# Workflow Template for Synkra AIOS
# This template is used by aios-developer to create new workflows
# Variables are replaced during generation: {{VARIABLE_NAME}}
#
# NOTE: This file contains Handlebars template directives ({{...}}) that are
# NOT valid YAML. It is pre-processed by the workflow creation engine before use.
# Do NOT validate this file directly with yamllint.
workflow:
id: "{{WORKFLOW_ID}}"
name: "{{WORKFLOW_NAME}}"
description: "{{WORKFLOW_DESCRIPTION}}"
version: "{{WORKFLOW_VERSION}}"
type: "{{WORKFLOW_TYPE}}" # sequential, parallel, conditional
{{#IF_CONTEXT}}
context:
target: "{{TARGET_CONTEXT}}" # core | squad | hybrid
{{#IF_SQUAD}}
squad: "{{SQUAD_NAME}}"
{{/IF_SQUAD}}
{{#IF_HYBRID}}
resolution_order: "squad-first, core-fallback"
note: "Agents are resolved from squad first; if not found, falls back to core agents"
{{/IF_HYBRID}}
{{/IF_CONTEXT}}
metadata:
author: "{{AUTHOR}}"
created_date: "{{CREATED_DATE}}"
last_modified: "{{LAST_MODIFIED}}"
tags:
{{#EACH_TAGS}}
- {{TAG}}
{{/EACH_TAGS}}
{{#IF_TRIGGERS}}
triggers:
{{#EACH_TRIGGERS}}
- type: "{{TRIGGER_TYPE}}"
condition: "{{TRIGGER_CONDITION}}"
{{#IF_TRIGGER_PARAMS}}
parameters:
{{#EACH_TRIGGER_PARAMS}}
{{PARAM_KEY}}: "{{PARAM_VALUE}}"
{{/EACH_TRIGGER_PARAMS}}
{{/IF_TRIGGER_PARAMS}}
{{/EACH_TRIGGERS}}
{{/IF_TRIGGERS}}
{{#IF_INPUTS}}
inputs:
{{#EACH_INPUTS}}
{{INPUT_NAME}}:
type: "{{INPUT_TYPE}}"
description: "{{INPUT_DESCRIPTION}}"
required: {{INPUT_REQUIRED}}
{{#IF_INPUT_DEFAULT}}
default: "{{INPUT_DEFAULT}}"
{{/IF_INPUT_DEFAULT}}
{{#IF_INPUT_VALIDATION}}
validation: "{{INPUT_VALIDATION}}"
{{/IF_INPUT_VALIDATION}}
{{/EACH_INPUTS}}
{{/IF_INPUTS}}
steps:
{{#EACH_STEPS}}
- id: "{{STEP_ID}}"
name: "{{STEP_NAME}}"
type: "{{STEP_TYPE}}" # agent, task, subprocess, condition
{{#IF_STEP_AGENT}}
agent: "{{STEP_AGENT}}"
{{/IF_STEP_AGENT}}
{{#IF_STEP_TASK}}
task: "{{STEP_TASK}}"
{{/IF_STEP_TASK}}
{{#IF_STEP_COMMAND}}
command: "{{STEP_COMMAND}}"
{{/IF_STEP_COMMAND}}
{{#IF_STEP_INPUTS}}
inputs:
{{#EACH_STEP_INPUTS}}
{{INPUT_KEY}}: "{{INPUT_VALUE}}"
{{/EACH_STEP_INPUTS}}
{{/IF_STEP_INPUTS}}
{{#IF_STEP_CONDITIONS}}
conditions:
{{#EACH_CONDITIONS}}
- type: "{{CONDITION_TYPE}}"
expression: "{{CONDITION_EXPRESSION}}"
{{#IF_CONDITION_ACTIONS}}
on_true: "{{ON_TRUE_ACTION}}"
on_false: "{{ON_FALSE_ACTION}}"
{{/IF_CONDITION_ACTIONS}}
{{/EACH_CONDITIONS}}
{{/IF_STEP_CONDITIONS}}
{{#IF_STEP_ERROR_HANDLING}}
error_handling:
strategy: "{{ERROR_STRATEGY}}" # fail, retry, skip, fallback
{{#IF_RETRY_CONFIG}}
retry_attempts: {{RETRY_ATTEMPTS}}
retry_delay: {{RETRY_DELAY}}
{{/IF_RETRY_CONFIG}}
{{#IF_FALLBACK_STEP}}
fallback_step: "{{FALLBACK_STEP}}"
{{/IF_FALLBACK_STEP}}
{{/IF_STEP_ERROR_HANDLING}}
{{#IF_STEP_OUTPUTS}}
outputs:
{{#EACH_STEP_OUTPUTS}}
{{OUTPUT_KEY}}: "{{OUTPUT_VALUE}}"
{{/EACH_STEP_OUTPUTS}}
{{/IF_STEP_OUTPUTS}}
{{/EACH_STEPS}}
{{#IF_OUTPUTS}}
outputs:
{{#EACH_OUTPUTS}}
{{OUTPUT_NAME}}:
type: "{{OUTPUT_TYPE}}"
description: "{{OUTPUT_DESCRIPTION}}"
source: "{{OUTPUT_SOURCE}}" # step_id.output_key
{{/EACH_OUTPUTS}}
{{/IF_OUTPUTS}}
{{#IF_ERROR_HANDLING}}
global_error_handling:
on_error: "{{GLOBAL_ERROR_ACTION}}" # abort, continue, rollback
notification:
enabled: {{NOTIFICATION_ENABLED}}
{{#IF_NOTIFICATION_CHANNELS}}
channels:
{{#EACH_CHANNELS}}
- {{CHANNEL}}
{{/EACH_CHANNELS}}
{{/IF_NOTIFICATION_CHANNELS}}
{{/IF_ERROR_HANDLING}}
{{#IF_SECURITY}}
security:
authorization_required: {{AUTH_REQUIRED}}
{{#IF_ALLOWED_ROLES}}
allowed_roles:
{{#EACH_ROLES}}
- {{ROLE}}
{{/EACH_ROLES}}
{{/IF_ALLOWED_ROLES}}
audit_logging: {{AUDIT_LOGGING}}
{{/IF_SECURITY}}