Files
vscode/build/package.json
T
Giuseppe CianciandCopilot 5f3d6235d8 build: verify codex protocol client is regenerated in lockstep
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>
2026-07-10 13:40:10 +02:00

85 lines
2.5 KiB
JSON

{
"name": "code-oss-dev-build",
"version": "1.0.0",
"license": "MIT",
"devDependencies": {
"@azure/core-auth": "^1.9.0",
"@azure/cosmos": "^4",
"@azure/identity": "^4.13.1",
"@azure/msal-node": "^5.2.2",
"@azure/storage-blob": "^12.25.0",
"@electron/get": "^2.0.0",
"@electron/osx-sign": "^2.0.0",
"@types/ansi-colors": "^3.2.0",
"@types/byline": "^4.2.32",
"@types/debounce": "^1.0.0",
"@types/debug": "^4.1.5",
"@types/fancy-log": "^1.3.0",
"@types/fs-extra": "^9.0.12",
"@types/glob": "^7.1.1",
"@types/gulp": "^4.0.17",
"@types/gulp-filter": "^3.0.32",
"@types/gulp-flatmap": "^1.0.0",
"@types/gulp-gzip": "^0.0.31",
"@types/gulp-json-editor": "^2.2.31",
"@types/gulp-plumber": "^0.0.37",
"@types/gulp-rename": "^0.0.33",
"@types/gulp-replace": "^0.0.31",
"@types/gulp-sort": "^2.0.4",
"@types/gulp-sourcemaps": "^0.0.32",
"@types/jws": "^3.2.10",
"@types/lazy.js": "^0.5.9",
"@types/mime": "0.0.29",
"@types/minimatch": "^3.0.3",
"@types/minimist": "^1.2.1",
"@types/node": "24.x",
"@types/p-all": "^1.0.0",
"@types/pump": "^1.0.1",
"@types/rimraf": "^2.0.4",
"@types/through": "^0.0.29",
"@types/through2": "^2.0.36",
"@types/vinyl": "^2.0.12",
"@types/workerpool": "^6.4.0",
"@types/xml2js": "0.0.33",
"@vscode/iconv-lite-umd": "0.7.1",
"@vscode/ripgrep-universal": "^1.18.0",
"@vscode/vsce": "3.6.1",
"ansi-colors": "^3.2.3",
"byline": "^5.0.0",
"debug": "^4.3.2",
"esbuild": "0.27.2",
"extract-zip": "^2.0.1",
"gulp-merge-json": "^2.1.1",
"gulp-sort": "^2.0.0",
"jsonc-parser": "^2.3.0",
"jws": "^4.0.1",
"mime": "^1.4.1",
"source-map": "0.6.1",
"ternary-stream": "^3.0.0",
"through2": "^4.0.2",
"tree-sitter": "^0.22.4",
"vscode-universal-bundler": "^0.1.3",
"workerpool": "^6.4.0",
"yauzl": "^3.3.1",
"zx": "^8.8.5"
},
"type": "module",
"scripts": {
"copy-policy-dto": "node lib/policies/copyPolicyDto.ts",
"pretypecheck": "npm run copy-policy-dto",
"typecheck": "cd .. && npx tsgo --project build/tsconfig.json",
"watch": "npm run typecheck -- --watch",
"test": "node --test '{lib,next,agent-sdk,codex}/**/*.test.ts'"
},
"optionalDependencies": {
"tree-sitter-typescript": "^0.23.2",
"vscode-gulp-watch": "^5.0.3"
},
"overrides": {
"path-scurry": {
"lru-cache": "11.2.1"
},
"yauzl": "^3.3.1"
}
}