Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
88 commits
Select commit Hold shift + click to select a range
bdcddb4
chore: start custom engine frontmatter work
Copilot Jul 9, 2026
6d21dc9
feat: add declarative behavior-defined engines
Copilot Jul 9, 2026
4acfe84
test: stabilize declarative engine coverage
Copilot Jul 9, 2026
b287591
Plan follow-up engine cleanup
Copilot Jul 9, 2026
5537932
Remove Crush/OpenCode Go wrappers
Copilot Jul 9, 2026
ab02806
Add engine configuration instruction file
Copilot Jul 9, 2026
68d3e3b
Plan merge main and recompile
Copilot Jul 9, 2026
daf5e1d
Merge remote-tracking branch 'origin/main' into copilot/define-agenti…
Copilot Jul 9, 2026
1610bec
Merge main and recompile
Copilot Jul 9, 2026
3b4d731
Fix four review issues in BehaviorDefinedEngine
Copilot Jul 9, 2026
a1011e8
Fix four review issues in behavior_defined_engine.go
Copilot Jul 9, 2026
58b8ac0
Apply remaining changes
Copilot Jul 9, 2026
662d840
Merge main into copilot/define-agentic-engine-syntax
Copilot Jul 9, 2026
1746cc3
Recompile workflows after merging main (firewall v0.27.28 bump)
Copilot Jul 9, 2026
b9baba8
Merge branch 'main' into copilot/define-agentic-engine-syntax
github-actions[bot] Jul 9, 2026
e08736c
Merge branch 'main' into copilot/define-agentic-engine-syntax
github-actions[bot] Jul 9, 2026
08fd8a4
Merge branch 'main' into copilot/define-agentic-engine-syntax
github-actions[bot] Jul 9, 2026
c34e133
Remove orphaned test workflow lock files (md sources moved to pkg/cli…
Copilot Jul 9, 2026
27b4be8
Start: Add harness-script field to engine behavior definition frontma…
Copilot Jul 10, 2026
dc62548
Add harness-script field to engine behavior definition frontmatter
Copilot Jul 10, 2026
fed8153
Address code review: unique heredoc delimiter, safety check, shell-es…
Copilot Jul 10, 2026
c2b41e4
Start: Force AWF execution for harness-script engines
Copilot Jul 10, 2026
3629c02
Force AWF execution for behavior-defined engines with harness-script
Copilot Jul 10, 2026
2619dfe
Merge remote-tracking branch 'origin/main' into copilot/define-agenti…
Copilot Jul 10, 2026
37a5d61
Merge remote-tracking branch 'origin/main' into copilot/define-agenti…
Copilot Jul 10, 2026
609c91f
Merge remote-tracking branch 'origin/main' into copilot/define-agenti…
Copilot Jul 10, 2026
49fae47
Recompile smoke-crush and smoke-opencode lock files after merging main
Copilot Jul 10, 2026
a776f16
Merge branch 'main' into copilot/define-agentic-engine-syntax
github-actions[bot] Jul 10, 2026
f3b7aa9
Start: Fix OpenCode config format for v1.2.14 (permissions -> agent.b…
Copilot Jul 10, 2026
91c1710
Fix OpenCode config format: use agent.build.permission with allow val…
Copilot Jul 10, 2026
a3ff34d
fix: add opencode.ai and models.dev to OpenCode firewall allowlist
Copilot Jul 10, 2026
4316c59
Merge remote-tracking branch 'origin/main' into copilot/define-agenti…
Copilot Jul 10, 2026
b8bc29a
Merge main and regenerate wasm golden files after merge
Copilot Jul 10, 2026
5699ee8
WIP: planning OpenCode provider routing fix
Copilot Jul 10, 2026
c3aa528
Fix OpenCode provider routing: add model-env-provider-prefix and OPEN…
Copilot Jul 10, 2026
76b7553
Merge remote-tracking branch 'origin/main' into copilot/define-agenti…
Copilot Jul 10, 2026
7eef9fd
Start investigation of smoke-opencode token telemetry failure
Copilot Jul 10, 2026
671bfeb
Fix OpenCode provider fallback: add providers.openai.apiKey to openco…
Copilot Jul 10, 2026
1005528
Restore configure-agentic-engine.md reference in agentic-workflows SK…
Copilot Jul 10, 2026
20868ae
Fix OpenCode token telemetry: disable opencode provider, route via AW…
Copilot Jul 10, 2026
d1f28cb
Merge remote-tracking branch 'origin/main' into copilot/define-agenti…
Copilot Jul 10, 2026
bc1aeb9
Fix OpenCode config: remove invalid providers key, move apiKey into p…
Copilot Jul 10, 2026
d5f6e04
Fix OpenCode config: remove invalid providers key, move apiKey into p…
Copilot Jul 10, 2026
e358bc8
Merge remote-tracking branch 'origin/main' into copilot/define-agenti…
Copilot Jul 10, 2026
d5383df
Initial plan: fix OpenCode apiKey location in config
Copilot Jul 11, 2026
18a2fce
Fix OpenCode apiKey: move from provider.openai.apiKey to provider.ope…
Copilot Jul 11, 2026
01c1e9d
Initial plan: fix OpenCode config and disable database migrations
Copilot Jul 11, 2026
fa5611f
Fix OpenCode: correct apiKey location in config, add XDG_DATA_HOME to…
Copilot Jul 11, 2026
bc9922b
investigate: document findings - OpenCode blocking due to Responses A…
Copilot Jul 11, 2026
d88a95c
fix(opencode): use Chat Completions API and disable auto-update for n…
Copilot Jul 11, 2026
f7fcd20
Merge remote-tracking branch 'origin/main' into copilot/define-agenti…
Copilot Jul 11, 2026
cf368a8
Merge main and regenerate stale lock files
Copilot Jul 11, 2026
f82d89a
chore: report progress on OpenCode timeout fix and smoke-copilot timeout
Copilot Jul 11, 2026
adf3ff7
Fix OpenCode provider: use awf-proxy custom provider for Chat Complet…
Copilot Jul 11, 2026
5425a8a
Merge origin/main into copilot/define-agentic-engine-syntax
Copilot Jul 11, 2026
0f1e987
fix: add host.docker.internal to NO_PROXY so OpenCode bypasses Squid …
Copilot Jul 11, 2026
eef4881
Apply remaining changes
Copilot Jul 11, 2026
7fccb6d
fix: add timeout-minutes to BehaviorDefinedEngine execution step
Copilot Jul 11, 2026
6fb41bb
Merge remote-tracking branch 'origin/main' into copilot/define-agenti…
Copilot Jul 11, 2026
c5acbfb
investigate: confirm gpt-5 503 root cause, plan model fix
Copilot Jul 11, 2026
5d50cc5
fix: use gpt-5.5 instead of gpt-5 in smoke-opencode and opencode config
Copilot Jul 11, 2026
26a6570
Merge branch 'main' into copilot/define-agentic-engine-syntax
github-actions[bot] Jul 11, 2026
1f1fcdf
Merge remote-tracking branch 'origin/main' into copilot/define-agenti…
Copilot Jul 12, 2026
c14325b
chore: recompile smoke-copilot, smoke-crush, smoke-opencode after mer…
Copilot Jul 12, 2026
92b2d99
chore: plan NO_PROXY fix for Bun port-inclusive comparison
Copilot Jul 12, 2026
47dbc75
fix: add explicit host:port NO_PROXY entries to fix Bun proxy bypass
Copilot Jul 12, 2026
c8a5186
Merge branch 'main' into copilot/define-agentic-engine-syntax
github-actions[bot] Jul 12, 2026
919926a
chore: start no_proxy/skillet routing fixes
Copilot Jul 13, 2026
f389702
fix: remove no_proxy YAML duplicate key and fix skillet catch-all rou…
Copilot Jul 13, 2026
270f91e
chore: plan merge conflict resolution
Copilot Jul 13, 2026
f559ab6
Merge remote-tracking branch 'origin/main' into copilot/define-agenti…
Copilot Jul 13, 2026
b291d32
chore: merge main into branch, recompile workflows
Copilot Jul 13, 2026
5a06a85
Merge remote-tracking branch 'origin/main' into copilot/define-agenti…
Copilot Jul 13, 2026
2ee89be
chore: restore lock files deleted by main merge, recompile workflows
Copilot Jul 13, 2026
1a4e581
chore: fix smoke-call-workflow lock file sync
Copilot Jul 13, 2026
29efc4c
Merge remote-tracking branch 'origin/main' into copilot/define-agenti…
Copilot Jul 13, 2026
cf02f88
wip: start opencode provider fix
Copilot Jul 13, 2026
9d06555
Merge remote-tracking branch 'origin/main' into copilot/define-agenti…
Copilot Jul 13, 2026
c5f4d10
fix: use OpenCode built-in copilot provider instead of custom awf-pro…
Copilot Jul 13, 2026
e87027f
plan: fix OpenCode misconfiguration β€” restore awf-proxy custom provid…
Copilot Jul 14, 2026
ddf530c
fix: restore OpenCode awf-proxy provider with internal API proxy IP (…
Copilot Jul 14, 2026
a6f13e1
plan: investigate OpenCode connection error - 404 at /v1/chat/complet…
Copilot Jul 14, 2026
8ca7b9e
fix: remove /v1 suffix from OpenCode awf-proxy API URL (Copilot endpo…
Copilot Jul 14, 2026
2039948
plan: switch OpenCode smoke test to gpt-4.1 for chat completions comp…
Copilot Jul 14, 2026
5883940
fix: use gpt-4.1 for OpenCode smoke test (chat completions compatible)
Copilot Jul 14, 2026
62d6dca
fix: use claude-sonnet-4.5 for OpenCode smoke test instead of gpt-4.1
Copilot Jul 14, 2026
d9ebe1a
Merge branch 'main' into copilot/define-agentic-engine-syntax
pelikhan Jul 14, 2026
dd3ad29
fix: remove panic in library code from behavior_defined_engine.go, re…
Copilot Jul 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,17 @@
},
"codespaces": {
"repositories": {
"gh-aw": {
"permissions": {
"actions": "write",
"checks": "write",
"contents": "write",
"discussions": "read",
"issues": "read",
"pull-requests": "write",
"workflows": "write"
}
},
"github/gh-aw": {
"permissions": {
"actions": "write",
Expand Down
106 changes: 106 additions & 0 deletions .github/aw/configure-agentic-engine.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
---
description: Guide for configuring new declarative agentic engines β€” engine definition fields, auth wiring, behavior blocks, and validation.
---

# Configure a New Agentic Engine

Use this guide when adding or updating a built-in engine definition under `pkg/workflow/data/engines/` or when reviewing a proposed declarative engine configuration.

## Prefer declarative engine definitions

For CLI-style engines, define behavior in `pkg/workflow/data/engines/<id>.md`.

- prefer frontmatter-defined `engine.behaviors` over a bespoke Go wrapper
- keep install, config, execution, MCP, manifest, and capability metadata in the engine markdown file
- add Go changes only when the runtime cannot be expressed with the current declarative behavior schema

Built-in engine files are embedded from `pkg/workflow/data/engines/*.md`. Adding a new built-in engine should normally start with a new markdown file there.

## Gather the engine contract first

Before editing files, identify:

1. the stable engine `id` and display name
2. whether it can reuse an existing `runtime-id` or needs a new runtime adapter
3. the install source, package manager, package name, binary name, and version
4. the required secrets and whether they follow universal provider routing or engine-specific auth
5. any config file path, default content, and merge behavior
6. the execution command, fixed args, model wiring, and MCP config wiring
7. engine-owned manifest files or directories that must be protected from untrusted PR edits

## Engine definition shape

```aw wrap
engine:
id: auggie
display-name: Auggie
experimental: true
auth:
- role: session
secret: AUGMENT_SESSION_AUTH
behaviors:
supported-env-var-keys:
- AUGMENT_SESSION_AUTH
installation:
package-manager: npm
package-name: "@augmentcode/auggie"
version: "1.0.0"
step-name: Install Auggie
binary-name: auggie
include-node-setup: true
config-file:
path: .auggie.json
step-name: Write Auggie Config
content: '{"sandbox":"workspace-write"}'
merge-strategy: json-merge
execution:
command-name: auggie
args: [run]
step-name: Execute Auggie CLI
model-env-var: AUGGIE_MODEL
mcp-config-env-var: AUGGIE_MCP_CONFIG
write-timestamp: true
```

## Field guide

- `engine.id` is the public identifier used by workflow authors in `engine: <id>`.
- `display-name` and `description` should be human-readable because they surface in validation and docs.
- `runtime-id` is only needed when the definition reuses a different registered runtime adapter.
- `experimental: true` should be set for engines that are not yet considered stable.
- `provider` and `models` describe provider defaults and supported model metadata.
- `auth` declares engine-specific secret bindings forwarded into the runtime environment.
- `behaviors.capabilities` advertises runtime support such as `max-turns`, `tools-allowlist`, or `native-agent-file`.
- `behaviors.manifest` lists engine-owned files and path prefixes that affect runtime behavior.
- `behaviors.installation` defines CLI installation and optional verification steps.
- `behaviors.config-file` writes engine config before execution; use `json-merge` when the file must merge with rendered MCP content.
- `behaviors.execution` defines the command, fixed args, model binding, MCP binding, and timestamp behavior.
- `behaviors.mcp.config-path` points to the file where rendered MCP configuration should be written.

## Auth and provider rules

- prefer `secret-strategy: universal-llm-consumer` when the engine can reuse shared provider/model routing
- pair that with `execution.provider-env-mode: universal-llm-consumer` when the CLI expects provider env vars
- use `engine.auth` only for engine-specific secrets that must be injected directly into the CLI runtime
- keep `supported-env-var-keys` aligned with the env var names the CLI actually accepts
- do not hard-code credential values in markdown, Go, or tests

## Validation loop

1. add or update `pkg/workflow/data/engines/<id>.md`
2. if the schema surface changes, update `pkg/parser/schemas/main_workflow_schema.json`
3. if the engine is user-facing, update `docs/src/content/docs/reference/engines.md` and any generated schema reference as needed
4. if a new built-in engine ID is added, update tests that assert the catalog contents
5. run:

```bash
make build
go test ./pkg/workflow/... ./pkg/parser/...
```

## Anti-patterns

- do not add a new bespoke `*_engine.go` wrapper for behavior that already fits `engine.behaviors`
- do not store install metadata, CLI args, or config-file templates partly in Go and partly in markdown without a clear need
- do not omit manifest files for engine-owned config that changes runtime behavior
- do not use a mismatched `runtime-id` unless an existing runtime adapter is intentionally being reused
1 change: 1 addition & 0 deletions .github/aw/github-agentic-workflows.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions .github/skills/agentic-workflows/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ Load these files from `github/gh-aw` (they are not available locally).
- `.github/aw/charts-trending.md`
- `.github/aw/charts.md`
- `.github/aw/cli-commands.md`
- `.github/aw/configure-agentic-engine.md`
- `.github/aw/context.md`
- `.github/aw/create-agentic-workflow-trigger-details.md`
- `.github/aw/create-agentic-workflow.md`
Expand Down Expand Up @@ -74,6 +75,7 @@ Load these files from `github/gh-aw` (they are not available locally).
After loading the matching workflow prompt or skill, follow it directly:
- Design workflows from scratch via interview: `.github/aw/designer.md`
- Create new workflows: `.github/aw/create-agentic-workflow.md`
- Configure or add declarative engines: `.github/aw/configure-agentic-engine.md`
- Update existing workflows: `.github/aw/update-agentic-workflow.md`
- Debug, audit, or investigate workflows: `.github/aw/debug-agentic-workflow.md`
- Upgrade workflows and fix deprecations: `.github/aw/upgrade-agentic-workflows.md`
Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/aw.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
{
"utc": "-08:00",
"auto_upgrade": true,
"ghes": true,
"maintenance": {
"action_failure_issue_expires": 12,
"label_triggers": true
}
},
"utc": "-08:00"
}
8 changes: 4 additions & 4 deletions .github/workflows/smoke-copilot.lock.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion .github/workflows/smoke-copilot.md
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ safe-outputs:
run-started: "πŸ“° BREAKING: [{workflow_name}]({run_url}) is now investigating this {event_type}. Sources say the story is developing..."
run-success: "πŸ“° VERDICT: [{workflow_name}]({run_url}) has concluded. All systems operational. This is a developing story. 🎀"
run-failure: "πŸ“° DEVELOPING STORY: [{workflow_name}]({run_url}) reports {status}. Our correspondents are investigating the incident..."
timeout-minutes: 15
timeout-minutes: 8
experiments:
caveman: [yes, no]
subagent_model: [small, large]
Expand Down
Loading
Loading