Skip to content
Merged
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
4 changes: 3 additions & 1 deletion .github/workflows/smoke-copilot-byok-aoai-apikey.lock.yml

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

2 changes: 2 additions & 0 deletions .github/workflows/smoke-copilot-byok-aoai-apikey.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,8 @@ safe-outputs:
timeout-minutes: 15
env:
COPILOT_MODEL: o4-mini-aw
# Copilot's chat-completions fallback sends temperature=0, which o4-mini rejects.
COPILOT_PROVIDER_WIRE_API: responses
sandbox:
agent:
id: awf
Expand Down
6 changes: 4 additions & 2 deletions .github/workflows/smoke-copilot-byok-aoai-entra.lock.yml

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

2 changes: 2 additions & 0 deletions .github/workflows/smoke-copilot-byok-aoai-entra.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,8 @@ safe-outputs:
timeout-minutes: 15
env:
COPILOT_MODEL: o4-mini-aw
# Copilot's chat-completions fallback sends temperature=0, which o4-mini rejects.
COPILOT_PROVIDER_WIRE_API: responses
AWF_AUTH_TYPE: github-oidc
AWF_AUTH_PROVIDER: azure
sandbox:
Expand Down
5 changes: 5 additions & 0 deletions docs/api-proxy-sidecar.md
Original file line number Diff line number Diff line change
Expand Up @@ -1012,6 +1012,11 @@ not a production-wide alias or a generic fallback. Update the confirmed mapping
and pinned pricing together if that Azure deployment changes its underlying
model.

Both smokes explicitly select `COPILOT_PROVIDER_WIRE_API=responses` so Copilot
does not send its generic chat-completions `temperature=0` default, which
`o4-mini` rejects. The wire deployment remains `o4-mini-aw`, and the same
workflow-scoped prices and budget limits apply.

### Caller attribution (`x-awf-caller`)

The agent harness may set an optional `x-awf-caller` request header so that
Expand Down
11 changes: 11 additions & 0 deletions scripts/ci/configure-aoai-smoke-pricing.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,17 @@ test.each(['apikey', 'entra'])('postprocessing configures only the Azure %s smok
expect(() => applyGeneralWorkflowPatches('', workflow)).toThrow('Missing AWF config staging');
});

test.each(['apikey', 'entra'])('the %s smoke uses Responses without changing the priced wire deployment', mode => {
const name = `smoke-copilot-byok-aoai-${mode}`;
const source = fs.readFileSync(path.join(root, `.github/workflows/${name}.md`), 'utf8');
const lock = fs.readFileSync(path.join(root, `.github/workflows/${name}.lock.yml`), 'utf8');
for (const content of [source.split('---')[1], lock]) {
expect(yaml.load(content)).toMatchObject({
env: { COPILOT_MODEL: 'o4-mini-aw', COPILOT_PROVIDER_WIRE_API: 'responses' },
});
}
});

test.each(['apikey', 'entra'])('the actual generated %s config stage installs pricing before AWF launches', mode => {
const lockPath = path.join(root, `.github/workflows/smoke-copilot-byok-aoai-${mode}.lock.yml`);
const content = fs.readFileSync(lockPath, 'utf8');
Expand Down
Loading