juglans 0.1.0

Compiler and runtime for Juglans Workflow Language (JWL)
Documentation
// src/core/agent.pest

WHITESPACE = _{ " " | "\t" | "\r" | "\n" }
COMMENT = _{ "#" ~ (!NEWLINE ~ ANY)* ~ NEWLINE? }

// Values
string = @{ "\"" ~ (!"\"" ~ ANY)* ~ "\"" }
number = @{ "-"? ~ ("0" | ASCII_NONZERO_DIGIT ~ ASCII_DIGIT*) ~ ("." ~ ASCII_DIGIT*)? }
boolean = { "true" | "false" }

list_item = { string }
list = { "[" ~ (list_item ~ ("," ~ list_item)*)? ~ ","? ~ "]" }

// Fields
key_slug = { "slug" ~ ":" ~ string }
key_name = { "name" ~ ":" ~ string }
key_desc = { "description" ~ ":" ~ string }
key_model = { "model" ~ ":" ~ string }
key_temp = { "temperature" ~ ":" ~ number }
key_mcp = { "mcp" ~ ":" ~ list }
key_skills = { "skills" ~ ":" ~ list }
// 【新增】关联工作流文件
key_workflow = { "workflow" ~ ":" ~ string }

// System Prompt can be a string OR p(slug="...")
p_func = { "p" ~ "(" ~ "slug" ~ "=" ~ string ~ ")" }
key_system = { "system_prompt" ~ ":" ~ (string | p_func) }

// Agent Definition
agent_def = { 
    SOI ~ 
    (key_slug | key_name | key_desc | key_model | key_temp | key_mcp | key_skills | key_system | key_workflow)+ 
    ~ EOI 
}