[package]
name = "pe-macros"
description = "Procedural macros for Potential Expectations — derive and attribute macros for agents, tools, and state"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true
readme.workspace = true
keywords.workspace = true
categories.workspace = true

[lib]
proc-macro = true

[features]
default = []
## Enable the `node!` DSL (Mode 3) parser and codegen. Not yet exposed as a
## proc macro — reserved for future use. Gated to suppress dead-code warnings
## from the internal modules during normal builds.
node-dsl = []

[dependencies]
# REVIEW(002): pe-core deliberately NOT listed here.
# Proc-macro crates run at compile time. pe-macros only generates code that
# *references* pe_core:: paths via quote!{} tokens — it never imports pe_core
# types. The dependency would create unnecessary coupling and slow builds.
# Users must have pe-core in their own [dependencies] for the generated code.
syn = { workspace = true }
quote = { workspace = true }
proc-macro2 = { workspace = true }
proc-macro-crate = { workspace = true }

[dev-dependencies]
pe-core = { workspace = true }
pe-graph = { workspace = true }
tokio = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
