Skip to content

v0.34.3

Choose a tag to compare

@foo-ogawa foo-ogawa released this 05 Jun 16:33
· 37 commits to main since this release
bdb9bd8

Changes

New Features

  • $clone resolve-time operator (#109): Deep-copies a base entity, applies a diff via merge operators, and emits the result under a new ID. Enables variant generation for agents, tasks, artifacts, and all map-type DSL sections without runtime changes.

    • Topological sort for dependency resolution with circular reference detection
    • Supports all existing merge operators ($append, $prepend, $replace, $remove, $insert_after)
    • Chaining: variants can derive from other variants
  • artifact_binding config field (#110): Connects abstract DSL artifact definitions with concrete project-specific data from an external artifact registry file.

    • String form (artifact_binding: ./artifact-contracts.yaml) or object form with explicit mappings
    • resolveArtifactBinding() deep-merges registry artifacts onto DSL defaults
    • {var} template substitution in path_patterns using config.paths
    • Diagnostics: unbound-artifact, orphan-binding, type-mismatch warnings
    • Full backward compatibility when not configured

Pipeline

  • Resolve pipeline: loadDsl → resolveExtendsChain → resolveClone → resolveToolExtends → substituteVars → expandDefaults
  • Bound resolve layer: resolveBound() for config-level artifact binding integration