Skip to content

Conversation

@ariane-emory
Copy link
Contributor

Resolves #5054. Resolves #5082.

feat: add {env:VAR} interpolation support to markdown frontmatter

  • Add {env:VAR} interpolation to ConfigMarkdown.parse() for frontmatter fields only
  • Enables dynamic model selection via environment variables in markdown agents, amongst other possibilities
  • Gracefully handles missing environment variables with empty string fallback
  • Add comprehensive test coverage for interpolation functionality
  • Resolves GitHub issue [FEATURE]: {env:MY_VAR} support in agent yaml #5054

Example usage:

description: "My agent"
model: "{env:MODEL}"
mode: primary

commit b9c1f10 (upstream/dev, upstream/HEAD, origin/dev, origin/HEAD, dev)

- Add {env:VAR} interpolation to ConfigMarkdown.parse() for frontmatter fields only
- Enables dynamic model selection via environment variables in markdown agents
- Gracefully handles missing environment variables with empty string fallback
- Add comprehensive test coverage for interpolation functionality
- Resolves GitHub issue sst#5054

Example usage:
---
description: "My agent"
model: "{env:MODEL}"
mode: primary
---
- Move interpolateData function to module level to avoid recreation on each parse call
- Reduces code churn while maintaining identical behavior
- Improves performance slightly by avoiding function recreation
- Extract parseMarkdownWithEnv helper to eliminate repetitive test code
- Reduces test file from 194 to 168 lines (-26 lines)
- Maintains identical test coverage and behavior
- Improves maintainability by centralizing temp file handling
…or clarity

- Improve function name to better describe its purpose
- Maintains identical behavior and test coverage
- Enhances code readability and maintainability
@ariane-emory
Copy link
Contributor Author

ariane-emory commented Dec 5, 2025

Do y'all think the tests are overkill? I'm undecided, myself. Feature itself appears to be functioning correctly.

@ariane-emory ariane-emory marked this pull request as ready for review December 5, 2025 02:14
@ariane-emory ariane-emory changed the title [FEATURE]: {env:MY_VAR} support in agent/command markdown files (resolves #5054, #5082) [FEATURE]: {env:MY_VAR} support in the frontmatter of agent/command markdown files (resolves #5054, #5082) Dec 5, 2025
@ariane-emory ariane-emory changed the title [FEATURE]: {env:MY_VAR} support in the frontmatter of agent/command markdown files (resolves #5054, #5082) feature: {env:MY_VAR} support in the frontmatter of agent/command markdown files (resolves #5054, #5082) Dec 5, 2025
@ariane-emory ariane-emory deleted the feat/markdown-frontmatter-interpolation branch December 6, 2025 05:47
@ariane-emory ariane-emory restored the feat/markdown-frontmatter-interpolation branch December 6, 2025 06:36
@ariane-emory ariane-emory reopened this Dec 6, 2025
@ariane-emory ariane-emory marked this pull request as draft December 8, 2025 15:01
@ariane-emory ariane-emory marked this pull request as ready for review December 8, 2025 18:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEATURE]: allow shell commands in the frontmatter [FEATURE]: {env:MY_VAR} support in agent yaml

1 participant