Skip to content

feat: wire engine.version, engine.command, and engine.agent through to pipeline output #288

@jamesadevine

Description

@jamesadevine

Summary

PR #286 added version, command, and agent fields to EngineConfig / EngineOptions (aligned with gh-aw), but they are parsed and stored only — not yet wired into the compiled pipeline output. This issue tracks plumbing them through.

Fields to wire

engine.version

gh-aw behavior: Pins the engine CLI to a specific release version (e.g., version: "0.0.422"). Defaults to latest.

Current state: COPILOT_CLI_VERSION is a compile-time constant in common.rs. The version front matter field is parsed into EngineOptions.version but ignored.

Work: When version is set, use it instead of COPILOT_CLI_VERSION in the NuGet install step. When set to "latest", omit the -Version flag. Once install steps move behind Engine (issue #287), this becomes a parameter to the engine's install step generation.

engine.command

gh-aw behavior: Overrides the default engine executable path. Skips the default installation step when set.

Current state: Parsed into EngineOptions.command but ignored. The templates hardcode /tmp/awf-tools/copilot.

Work: When command is set:

  1. Skip the engine install steps (NuGet install, binary copy)
  2. Use the custom command path in the AWF invocation instead of /tmp/awf-tools/copilot
  3. Validate the path (no shell metacharacters, must be absolute or a bare binary name)

engine.agent

gh-aw behavior: References a custom Copilot agent file in .github/agents/ (e.g., agent: technical-doc-writer.github/agents/technical-doc-writer.agent.md). Copilot-only feature.

Current state: Parsed into EngineOptions.agent but ignored.

Work: When agent is set, add --agent <value> to the Copilot CLI args in copilot_args(). Validate the identifier (alphanumeric + hyphens only, no path separators).

Dependencies

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions