* Codex: regenerate app-server protocol for @openai/codex 0.142.0
Regenerate the vendored Codex app-server protocol client to match the
shipped @openai/codex 0.142.0: bump the pin in build/codex/codex-version.txt
and run `npm run codex:gen-protocol` (build/codex/generate-protocol.mjs).
Include only the minimal hand-written call-site adaptations required to keep
the tree compiling against the regenerated types, so this PR builds on its
own:
- DynamicToolSpec became a discriminated union; tag built tool specs with
`type: 'function'` in codexAgent._buildDynamicTools.
- McpServerElicitationRequestParams gained a third `openai/form` mode whose
schema is opaque; codexElicitationMapper surfaces the message only for any
non-`form` mode.
- ThreadItem userMessage gained required `clientId`; test fixture updated.
- McpServerStatus gained required `serverInfo`; test fixture updated.
The actual agent-host feature work (forking, subagent rendering, single
approvals chip, auto-review denial surfacing) is stacked on top.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* signing commit
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add a PR CI check that fails when the committed codex app-server protocol
client (src/vs/platform/agentHost/node/codex/protocol/generated/**) does not
match what `codex app-server generate-ts` produces for the @openai/codex
dev-dependency version, but only when a PR actually changes the generated
client or the version pin.
- build/codex/generate-protocol.mjs: export the reusable pieces (generate,
resolveCodexBinary, readBinaryVersion, readPinnedVersion, paths) and only
run main() when invoked directly, so the check can import it side-effect
free. Types provided by generate-protocol.d.mts.
- build/codex/check-protocol-sync.ts: gate on a git diff touching the
generated dir or codex-version.txt (its README.md excluded — preserved
across regen), regenerate into a scratch dir with the dev-dependency binary,
byte-compare against the committed client, and assert the pin matches. Never
touches the working tree.
- build/codex/test/checkProtocolSync.test.ts: unit tests for the gate + diff
helpers; wired in via the build/package.json test glob (adds `codex`).
- package.json: `codex:check-protocol` script.
- .github/workflows/pr.yml: run the gated check in the Compile & Hygiene job.
- generated/README.md: document the check.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>