Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
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
34 changes: 33 additions & 1 deletion pkg/workflow/copilot_engine_execution.go
Original file line number Diff line number Diff line change
Expand Up @@ -621,7 +621,39 @@ func (e *CopilotEngine) buildCopilotExecutionStep(workflowData *WorkflowData, co
// Inject GH_TOKEN for CLI proxy (added after filtering since it uses a special
// fallback expression that is always allowed when cli-proxy is enabled)
addCliProxyGHTokenToEnv(filteredEnv, workflowData)
return GitHubActionStep(FormatStepWithCommandAndEnv(stepLines, command, filteredEnv))
return GitHubActionStep(FormatStepWithCommandAndEnv(stepLines, buildCopilotCommandWithFailureDiagnostics(command), filteredEnv))
}

const (
copilotExecutionStderrPath = logsFolder + "copilot-cli-exec.stderr.log"
copilotExecutionExitCodePath = logsFolder + "copilot-cli-exec.exitcode"
)

func buildCopilotCommandWithFailureDiagnostics(command string) string {
// Capture command stderr to a dedicated artifact file while preserving stderr in the job log.
// Note: "%%s" is required below because this is a fmt.Sprintf template.
return fmt.Sprintf(`mkdir -p %s
rm -f %s %s
set +e
(
%s
) 2> >(tee -a %s >&2)
GH_AW_COPILOT_EXEC_EXIT_CODE=$?
set -e
if [ "$GH_AW_COPILOT_EXEC_EXIT_CODE" -ne 0 ]; then
printf '%%s\n' "$GH_AW_COPILOT_EXEC_EXIT_CODE" > %s
else
rm -f %s
fi
exit "$GH_AW_COPILOT_EXEC_EXIT_CODE"`,
logsFolder,
copilotExecutionStderrPath,
copilotExecutionExitCodePath,
command,
copilotExecutionStderrPath,
copilotExecutionExitCodePath,
copilotExecutionStderrPath,
)
}

// copilotSupportsNoAskUser returns true when the effective Copilot CLI version supports the
Expand Down
9 changes: 9 additions & 0 deletions pkg/workflow/copilot_engine_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,15 @@ func TestCopilotEngineExecutionSteps(t *testing.T) {
if !strings.Contains(stepContent, "/tmp/gh-aw/test.log") {
t.Errorf("Expected command to contain log file name in step content:\n%s", stepContent)
}
if !strings.Contains(stepContent, "copilot-cli-exec.stderr.log") {
t.Errorf("Expected execution step to capture stderr to copilot-cli-exec.stderr.log, got:\n%s", stepContent)
}
if !strings.Contains(stepContent, "copilot-cli-exec.exitcode") {
t.Errorf("Expected execution step to capture failure exit code to copilot-cli-exec.exitcode, got:\n%s", stepContent)
}
if !strings.Contains(stepContent, "GH_AW_COPILOT_EXEC_EXIT_CODE=$?") {
t.Errorf("Expected execution step to preserve Copilot CLI exit code, got:\n%s", stepContent)
}

if !strings.Contains(stepContent, "--prompt-file /tmp/gh-aw/aw-prompts/prompt.txt") {
t.Errorf("Expected command to pass prompt file path directly, got:\n%s", stepContent)
Expand Down
13 changes: 13 additions & 0 deletions pkg/workflow/testdata/TestWasmGolden_AllEngines/copilot.golden
Original file line number Diff line number Diff line change
Expand Up @@ -502,6 +502,10 @@ jobs:
# Copilot CLI tool arguments (sorted):
timeout-minutes: 10
run: |
mkdir -p /tmp/gh-aw/sandbox/agent/logs/
rm -f /tmp/gh-aw/sandbox/agent/logs/copilot-cli-exec.stderr.log /tmp/gh-aw/sandbox/agent/logs/copilot-cli-exec.exitcode
set +e
(
set -o pipefail
printf '%s' "$(date +%s%3N)" > /tmp/gh-aw/agent_cli_start_ms.txt
trap 'rm -f "$HOME/.copilot/settings.json"' EXIT
Expand Down Expand Up @@ -537,6 +541,15 @@ jobs:
# shellcheck disable=SC1003,SC2016,SC2086
awf --config "${RUNNER_TEMP}/gh-aw/awf-config.json" --container-workdir "${GITHUB_WORKSPACE}" --mount "${RUNNER_TEMP}/gh-aw:${RUNNER_TEMP}/gh-aw:ro" --mount "${RUNNER_TEMP}/gh-aw:/host${RUNNER_TEMP}/gh-aw:ro" ${GH_AW_TOOL_CACHE_MOUNT:+--mount "$GH_AW_TOOL_CACHE_MOUNT"} ${GH_AW_DOCKER_HOST:+--docker-host "$GH_AW_DOCKER_HOST"} ${GH_AW_DOCKER_HOST_PATH_PREFIX_ARGS} --env-all --exclude-env COPILOT_GITHUB_TOKEN --exclude-env GITHUB_MCP_SERVER_TOKEN --exclude-env MCP_GATEWAY_API_KEY --log-level info --skip-pull \
-- /bin/bash -c 'set +o histexpand; : "${RUNNER_TOOL_CACHE:?RUNNER_TOOL_CACHE must be set}"; GH_AW_TOOL_CACHE="$RUNNER_TOOL_CACHE"; export PATH="$(find "$GH_AW_TOOL_CACHE" -maxdepth 5 -type d -name bin 2>/dev/null | tr '\''\n'\'' '\'':'\'')$PATH"; [ -n "$GOROOT" ] && export PATH="$GOROOT/bin:$PATH" || true && GH_AW_NODE_EXEC="${GH_AW_NODE_BIN:-}"; if [ -z "$GH_AW_NODE_EXEC" ] || [ ! -x "$GH_AW_NODE_EXEC" ]; then GH_AW_NODE_EXEC="$(command -v node 2>/dev/null || true)"; fi; if [ -z "$GH_AW_NODE_EXEC" ]; then echo "node runtime missing on this runner — check runtimes.node in workflow YAML" >&2; exit 127; fi; GH_AW_NPM_GLOBAL_ROOT="$(npm root -g 2>/dev/null || true)"; if [ -n "$GH_AW_NPM_GLOBAL_ROOT" ]; then export NODE_PATH="${GH_AW_NPM_GLOBAL_ROOT}${NODE_PATH:+:${NODE_PATH}}"; fi; "$GH_AW_NODE_EXEC" ${RUNNER_TEMP}/gh-aw/actions/copilot_harness.cjs /usr/local/bin/copilot --add-dir /tmp/gh-aw/ --log-level all --log-dir /tmp/gh-aw/sandbox/agent/logs/ --disable-builtin-mcps --no-ask-user --allow-all-tools --allow-all-paths --add-dir "${GITHUB_WORKSPACE}" --prompt-file /tmp/gh-aw/aw-prompts/prompt.txt' 2>&1 | tee -a /tmp/gh-aw/agent-stdio.log
) 2> >(tee -a /tmp/gh-aw/sandbox/agent/logs/copilot-cli-exec.stderr.log >&2)
GH_AW_COPILOT_EXEC_EXIT_CODE=$?
set -e
if [ "$GH_AW_COPILOT_EXEC_EXIT_CODE" -ne 0 ]; then
printf '%s\n' "$GH_AW_COPILOT_EXEC_EXIT_CODE" > /tmp/gh-aw/sandbox/agent/logs/copilot-cli-exec.exitcode
else
rm -f /tmp/gh-aw/sandbox/agent/logs/copilot-cli-exec.stderr.log
fi
exit "$GH_AW_COPILOT_EXEC_EXIT_CODE"
env:
AWF_REFLECT_ENABLED: 1
COPILOT_AGENT_RUNNER_TYPE: STANDALONE
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -502,6 +502,10 @@ jobs:
# Copilot CLI tool arguments (sorted):
timeout-minutes: 10
run: |
mkdir -p /tmp/gh-aw/sandbox/agent/logs/
rm -f /tmp/gh-aw/sandbox/agent/logs/copilot-cli-exec.stderr.log /tmp/gh-aw/sandbox/agent/logs/copilot-cli-exec.exitcode
set +e
(
set -o pipefail
printf '%s' "$(date +%s%3N)" > /tmp/gh-aw/agent_cli_start_ms.txt
trap 'rm -f "$HOME/.copilot/settings.json"' EXIT
Expand Down Expand Up @@ -537,6 +541,15 @@ jobs:
# shellcheck disable=SC1003,SC2016,SC2086
awf --config "${RUNNER_TEMP}/gh-aw/awf-config.json" --container-workdir "${GITHUB_WORKSPACE}" --mount "${RUNNER_TEMP}/gh-aw:${RUNNER_TEMP}/gh-aw:ro" --mount "${RUNNER_TEMP}/gh-aw:/host${RUNNER_TEMP}/gh-aw:ro" ${GH_AW_TOOL_CACHE_MOUNT:+--mount "$GH_AW_TOOL_CACHE_MOUNT"} ${GH_AW_DOCKER_HOST:+--docker-host "$GH_AW_DOCKER_HOST"} ${GH_AW_DOCKER_HOST_PATH_PREFIX_ARGS} --env-all --exclude-env COPILOT_GITHUB_TOKEN --exclude-env GITHUB_MCP_SERVER_TOKEN --exclude-env MCP_GATEWAY_API_KEY --log-level info --skip-pull \
-- /bin/bash -c 'set +o histexpand; : "${RUNNER_TOOL_CACHE:?RUNNER_TOOL_CACHE must be set}"; GH_AW_TOOL_CACHE="$RUNNER_TOOL_CACHE"; export PATH="$(find "$GH_AW_TOOL_CACHE" -maxdepth 5 -type d -name bin 2>/dev/null | tr '\''\n'\'' '\'':'\'')$PATH"; [ -n "$GOROOT" ] && export PATH="$GOROOT/bin:$PATH" || true && GH_AW_NODE_EXEC="${GH_AW_NODE_BIN:-}"; if [ -z "$GH_AW_NODE_EXEC" ] || [ ! -x "$GH_AW_NODE_EXEC" ]; then GH_AW_NODE_EXEC="$(command -v node 2>/dev/null || true)"; fi; if [ -z "$GH_AW_NODE_EXEC" ]; then echo "node runtime missing on this runner — check runtimes.node in workflow YAML" >&2; exit 127; fi; GH_AW_NPM_GLOBAL_ROOT="$(npm root -g 2>/dev/null || true)"; if [ -n "$GH_AW_NPM_GLOBAL_ROOT" ]; then export NODE_PATH="${GH_AW_NPM_GLOBAL_ROOT}${NODE_PATH:+:${NODE_PATH}}"; fi; "$GH_AW_NODE_EXEC" ${RUNNER_TEMP}/gh-aw/actions/copilot_harness.cjs /usr/local/bin/copilot --add-dir /tmp/gh-aw/ --log-level all --log-dir /tmp/gh-aw/sandbox/agent/logs/ --disable-builtin-mcps --no-ask-user --allow-all-tools --allow-all-paths --add-dir "${GITHUB_WORKSPACE}" --prompt-file /tmp/gh-aw/aw-prompts/prompt.txt' 2>&1 | tee -a /tmp/gh-aw/agent-stdio.log
) 2> >(tee -a /tmp/gh-aw/sandbox/agent/logs/copilot-cli-exec.stderr.log >&2)
GH_AW_COPILOT_EXEC_EXIT_CODE=$?
set -e
if [ "$GH_AW_COPILOT_EXEC_EXIT_CODE" -ne 0 ]; then
printf '%s\n' "$GH_AW_COPILOT_EXEC_EXIT_CODE" > /tmp/gh-aw/sandbox/agent/logs/copilot-cli-exec.exitcode
else
rm -f /tmp/gh-aw/sandbox/agent/logs/copilot-cli-exec.stderr.log
fi
exit "$GH_AW_COPILOT_EXEC_EXIT_CODE"
env:
AWF_REFLECT_ENABLED: 1
COPILOT_AGENT_RUNNER_TYPE: STANDALONE
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -522,6 +522,10 @@ jobs:
# Copilot CLI tool arguments (sorted):
timeout-minutes: 20
run: |
mkdir -p /tmp/gh-aw/sandbox/agent/logs/
rm -f /tmp/gh-aw/sandbox/agent/logs/copilot-cli-exec.stderr.log /tmp/gh-aw/sandbox/agent/logs/copilot-cli-exec.exitcode
set +e
(
set -o pipefail
printf '%s' "$(date +%s%3N)" > /tmp/gh-aw/agent_cli_start_ms.txt
trap 'rm -f "$HOME/.copilot/settings.json"' EXIT
Expand Down Expand Up @@ -557,6 +561,15 @@ jobs:
# shellcheck disable=SC1003,SC2016,SC2086
awf --config "${RUNNER_TEMP}/gh-aw/awf-config.json" --container-workdir "${GITHUB_WORKSPACE}" --mount "${RUNNER_TEMP}/gh-aw:${RUNNER_TEMP}/gh-aw:ro" --mount "${RUNNER_TEMP}/gh-aw:/host${RUNNER_TEMP}/gh-aw:ro" ${GH_AW_TOOL_CACHE_MOUNT:+--mount "$GH_AW_TOOL_CACHE_MOUNT"} ${GH_AW_DOCKER_HOST:+--docker-host "$GH_AW_DOCKER_HOST"} ${GH_AW_DOCKER_HOST_PATH_PREFIX_ARGS} --env-all --exclude-env COPILOT_GITHUB_TOKEN --exclude-env GITHUB_MCP_SERVER_TOKEN --exclude-env MCP_GATEWAY_API_KEY --log-level info --skip-pull \
-- /bin/bash -c 'set +o histexpand; : "${RUNNER_TOOL_CACHE:?RUNNER_TOOL_CACHE must be set}"; GH_AW_TOOL_CACHE="$RUNNER_TOOL_CACHE"; export PATH="$(find "$GH_AW_TOOL_CACHE" -maxdepth 5 -type d -name bin 2>/dev/null | tr '\''\n'\'' '\'':'\'')$PATH"; [ -n "$GOROOT" ] && export PATH="$GOROOT/bin:$PATH" || true && GH_AW_NODE_EXEC="${GH_AW_NODE_BIN:-}"; if [ -z "$GH_AW_NODE_EXEC" ] || [ ! -x "$GH_AW_NODE_EXEC" ]; then GH_AW_NODE_EXEC="$(command -v node 2>/dev/null || true)"; fi; if [ -z "$GH_AW_NODE_EXEC" ]; then echo "node runtime missing on this runner — check runtimes.node in workflow YAML" >&2; exit 127; fi; GH_AW_NPM_GLOBAL_ROOT="$(npm root -g 2>/dev/null || true)"; if [ -n "$GH_AW_NPM_GLOBAL_ROOT" ]; then export NODE_PATH="${GH_AW_NPM_GLOBAL_ROOT}${NODE_PATH:+:${NODE_PATH}}"; fi; "$GH_AW_NODE_EXEC" ${RUNNER_TEMP}/gh-aw/actions/copilot_harness.cjs /usr/local/bin/copilot --add-dir /tmp/gh-aw/ --log-level all --log-dir /tmp/gh-aw/sandbox/agent/logs/ --disable-builtin-mcps --no-ask-user --allow-all-tools --allow-all-paths --add-dir "${GITHUB_WORKSPACE}" --prompt-file /tmp/gh-aw/aw-prompts/prompt.txt' 2>&1 | tee -a /tmp/gh-aw/agent-stdio.log
) 2> >(tee -a /tmp/gh-aw/sandbox/agent/logs/copilot-cli-exec.stderr.log >&2)
GH_AW_COPILOT_EXEC_EXIT_CODE=$?
set -e
if [ "$GH_AW_COPILOT_EXEC_EXIT_CODE" -ne 0 ]; then
printf '%s\n' "$GH_AW_COPILOT_EXEC_EXIT_CODE" > /tmp/gh-aw/sandbox/agent/logs/copilot-cli-exec.exitcode
else
rm -f /tmp/gh-aw/sandbox/agent/logs/copilot-cli-exec.stderr.log
fi
exit "$GH_AW_COPILOT_EXEC_EXIT_CODE"
env:
AWF_REFLECT_ENABLED: 1
COPILOT_AGENT_RUNNER_TYPE: STANDALONE
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -759,6 +759,10 @@ jobs:
# Copilot CLI tool arguments (sorted):
timeout-minutes: 15
run: |
mkdir -p /tmp/gh-aw/sandbox/agent/logs/
rm -f /tmp/gh-aw/sandbox/agent/logs/copilot-cli-exec.stderr.log /tmp/gh-aw/sandbox/agent/logs/copilot-cli-exec.exitcode
set +e
(
set -o pipefail
printf '%s' "$(date +%s%3N)" > /tmp/gh-aw/agent_cli_start_ms.txt
trap 'rm -f "$HOME/.copilot/settings.json"' EXIT
Expand Down Expand Up @@ -794,6 +798,15 @@ jobs:
# shellcheck disable=SC1003,SC2016,SC2086
awf --config "${RUNNER_TEMP}/gh-aw/awf-config.json" --container-workdir "${GITHUB_WORKSPACE}" --mount "${RUNNER_TEMP}/gh-aw:${RUNNER_TEMP}/gh-aw:ro" --mount "${RUNNER_TEMP}/gh-aw:/host${RUNNER_TEMP}/gh-aw:ro" ${GH_AW_TOOL_CACHE_MOUNT:+--mount "$GH_AW_TOOL_CACHE_MOUNT"} ${GH_AW_DOCKER_HOST:+--docker-host "$GH_AW_DOCKER_HOST"} ${GH_AW_DOCKER_HOST_PATH_PREFIX_ARGS} --env-all --exclude-env COPILOT_GITHUB_TOKEN --exclude-env GITHUB_MCP_SERVER_TOKEN --exclude-env MCP_GATEWAY_API_KEY --log-level info --skip-pull \
-- /bin/bash -c 'set +o histexpand; : "${RUNNER_TOOL_CACHE:?RUNNER_TOOL_CACHE must be set}"; GH_AW_TOOL_CACHE="$RUNNER_TOOL_CACHE"; export PATH="$(find "$GH_AW_TOOL_CACHE" -maxdepth 5 -type d -name bin 2>/dev/null | tr '\''\n'\'' '\'':'\'')$PATH"; [ -n "$GOROOT" ] && export PATH="$GOROOT/bin:$PATH" || true && GH_AW_NODE_EXEC="${GH_AW_NODE_BIN:-}"; if [ -z "$GH_AW_NODE_EXEC" ] || [ ! -x "$GH_AW_NODE_EXEC" ]; then GH_AW_NODE_EXEC="$(command -v node 2>/dev/null || true)"; fi; if [ -z "$GH_AW_NODE_EXEC" ]; then echo "node runtime missing on this runner — check runtimes.node in workflow YAML" >&2; exit 127; fi; GH_AW_NPM_GLOBAL_ROOT="$(npm root -g 2>/dev/null || true)"; if [ -n "$GH_AW_NPM_GLOBAL_ROOT" ]; then export NODE_PATH="${GH_AW_NPM_GLOBAL_ROOT}${NODE_PATH:+:${NODE_PATH}}"; fi; "$GH_AW_NODE_EXEC" ${RUNNER_TEMP}/gh-aw/actions/copilot_harness.cjs /usr/local/bin/copilot --add-dir /tmp/gh-aw/ --log-level all --log-dir /tmp/gh-aw/sandbox/agent/logs/ --disable-builtin-mcps --no-ask-user --allow-all-tools --allow-all-paths --add-dir "${GITHUB_WORKSPACE}" --prompt-file /tmp/gh-aw/aw-prompts/prompt.txt' 2>&1 | tee -a /tmp/gh-aw/agent-stdio.log
) 2> >(tee -a /tmp/gh-aw/sandbox/agent/logs/copilot-cli-exec.stderr.log >&2)
GH_AW_COPILOT_EXEC_EXIT_CODE=$?
set -e
if [ "$GH_AW_COPILOT_EXEC_EXIT_CODE" -ne 0 ]; then
printf '%s\n' "$GH_AW_COPILOT_EXEC_EXIT_CODE" > /tmp/gh-aw/sandbox/agent/logs/copilot-cli-exec.exitcode
else
rm -f /tmp/gh-aw/sandbox/agent/logs/copilot-cli-exec.stderr.log
fi
exit "$GH_AW_COPILOT_EXEC_EXIT_CODE"
env:
AWF_REFLECT_ENABLED: 1
COPILOT_AGENT_RUNNER_TYPE: STANDALONE
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -503,6 +503,10 @@ jobs:
# Copilot CLI tool arguments (sorted):
timeout-minutes: 10
run: |
mkdir -p /tmp/gh-aw/sandbox/agent/logs/
rm -f /tmp/gh-aw/sandbox/agent/logs/copilot-cli-exec.stderr.log /tmp/gh-aw/sandbox/agent/logs/copilot-cli-exec.exitcode
set +e
(
set -o pipefail
printf '%s' "$(date +%s%3N)" > /tmp/gh-aw/agent_cli_start_ms.txt
trap 'rm -f "$HOME/.copilot/settings.json"' EXIT
Expand Down Expand Up @@ -538,6 +542,15 @@ jobs:
# shellcheck disable=SC1003,SC2016,SC2086
awf --config "${RUNNER_TEMP}/gh-aw/awf-config.json" --container-workdir "${GITHUB_WORKSPACE}" --mount "${RUNNER_TEMP}/gh-aw:${RUNNER_TEMP}/gh-aw:ro" --mount "${RUNNER_TEMP}/gh-aw:/host${RUNNER_TEMP}/gh-aw:ro" ${GH_AW_TOOL_CACHE_MOUNT:+--mount "$GH_AW_TOOL_CACHE_MOUNT"} ${GH_AW_DOCKER_HOST:+--docker-host "$GH_AW_DOCKER_HOST"} ${GH_AW_DOCKER_HOST_PATH_PREFIX_ARGS} --env-all --exclude-env COPILOT_GITHUB_TOKEN --exclude-env GITHUB_MCP_SERVER_TOKEN --exclude-env MCP_GATEWAY_API_KEY --log-level info --skip-pull \
-- /bin/bash -c 'set +o histexpand; : "${RUNNER_TOOL_CACHE:?RUNNER_TOOL_CACHE must be set}"; GH_AW_TOOL_CACHE="$RUNNER_TOOL_CACHE"; export PATH="$(find "$GH_AW_TOOL_CACHE" -maxdepth 5 -type d -name bin 2>/dev/null | tr '\''\n'\'' '\'':'\'')$PATH"; [ -n "$GOROOT" ] && export PATH="$GOROOT/bin:$PATH" || true && GH_AW_NODE_EXEC="${GH_AW_NODE_BIN:-}"; if [ -z "$GH_AW_NODE_EXEC" ] || [ ! -x "$GH_AW_NODE_EXEC" ]; then GH_AW_NODE_EXEC="$(command -v node 2>/dev/null || true)"; fi; if [ -z "$GH_AW_NODE_EXEC" ]; then echo "node runtime missing on this runner — check runtimes.node in workflow YAML" >&2; exit 127; fi; GH_AW_NPM_GLOBAL_ROOT="$(npm root -g 2>/dev/null || true)"; if [ -n "$GH_AW_NPM_GLOBAL_ROOT" ]; then export NODE_PATH="${GH_AW_NPM_GLOBAL_ROOT}${NODE_PATH:+:${NODE_PATH}}"; fi; "$GH_AW_NODE_EXEC" ${RUNNER_TEMP}/gh-aw/actions/copilot_harness.cjs /usr/local/bin/copilot --add-dir /tmp/gh-aw/ --log-level all --log-dir /tmp/gh-aw/sandbox/agent/logs/ --disable-builtin-mcps --no-ask-user --allow-all-tools --allow-all-paths --add-dir "${GITHUB_WORKSPACE}" --prompt-file /tmp/gh-aw/aw-prompts/prompt.txt' 2>&1 | tee -a /tmp/gh-aw/agent-stdio.log
) 2> >(tee -a /tmp/gh-aw/sandbox/agent/logs/copilot-cli-exec.stderr.log >&2)
GH_AW_COPILOT_EXEC_EXIT_CODE=$?
set -e
if [ "$GH_AW_COPILOT_EXEC_EXIT_CODE" -ne 0 ]; then
printf '%s\n' "$GH_AW_COPILOT_EXEC_EXIT_CODE" > /tmp/gh-aw/sandbox/agent/logs/copilot-cli-exec.exitcode
else
rm -f /tmp/gh-aw/sandbox/agent/logs/copilot-cli-exec.stderr.log
fi
exit "$GH_AW_COPILOT_EXEC_EXIT_CODE"
env:
AWF_REFLECT_ENABLED: 1
COPILOT_AGENT_RUNNER_TYPE: STANDALONE
Expand Down