mirror of
https://github.com/compiler-explorer/compiler-explorer.git
synced 2025-12-27 09:23:52 -05:00
Add Claude Explain feature for AI-powered code explanations This PR introduces Claude Explain, a new feature that provides AI-powered explanations of compiler output directly within Compiler Explorer. Key features: Claude Explain functionality: - New explain view pane - Explains compiler output with full context of source code and compilation output - Configurable audience level and explanation type - Response caching to improve performance and reduce API calls - Usage statistics display showing requests used and token counts User experience: - Consent flow on first use explaining data handling and privacy - AI disclaimer banner warning about potential LLM inaccuracies - Respects "no-ai" directive in source code for users who don't want AI processing Privacy and security: - Data sent to Anthropic's Claude API as documented in privacy policy - No data used for model training - Clear consent required before first use - Support for opting out via "no-ai" directive The feature is marked as beta and can be enabled via configuration. Co-authored-by: Claude <noreply@anthropic.com>
170 lines
5.6 KiB
JSON
170 lines
5.6 KiB
JSON
{
|
|
"name": "compiler-explorer",
|
|
"description": "Interactively investigate compiler output",
|
|
"type": "module",
|
|
"private": true,
|
|
"author": {
|
|
"name": "Matt Godbolt",
|
|
"email": "matt@godbolt.org",
|
|
"url": "https://xania.org"
|
|
},
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "compiler-explorer/compiler-explorer"
|
|
},
|
|
"version": "0.0.3",
|
|
"engines": {
|
|
"node": ">=20.0.0"
|
|
},
|
|
"main": "./app.ts",
|
|
"dependencies": {
|
|
"@aws-sdk/client-dynamodb": "^3.848.0",
|
|
"@aws-sdk/client-ec2": "^3.854.0",
|
|
"@aws-sdk/client-s3": "^3.850.0",
|
|
"@aws-sdk/client-sqs": "^3.854.0",
|
|
"@aws-sdk/client-ssm": "^3.849.0",
|
|
"@aws-sdk/credential-providers": "^3.848.0",
|
|
"@flatten-js/interval-tree": "^1.1.3",
|
|
"@fortawesome/fontawesome-free": "^7.0.0",
|
|
"@orchidjs/sifter": "^1.1.0",
|
|
"@popperjs/core": "^2.11.8",
|
|
"@sentry/browser": "^9.42.1",
|
|
"@sentry/node": "^9.42.1",
|
|
"@types/semver": "^7.7.0",
|
|
"big-integer": "^1.6.52",
|
|
"bootstrap": "^5.3.7",
|
|
"buffer": "^6.0.3",
|
|
"chart.js": "^4.5.0",
|
|
"clipboard": "^2.0.11",
|
|
"commander": "^14.0.0",
|
|
"compression": "^1.8.1",
|
|
"copy-webpack-plugin": "^13.0.0",
|
|
"cross-env": "^10.0.0",
|
|
"enhanced-ms": "^4.1.0",
|
|
"events": "^3.3.0",
|
|
"express": "^5.1.0",
|
|
"file-saver": "^2.0.5",
|
|
"golden-layout": "^1.5.9",
|
|
"http-proxy": "^1.18.1",
|
|
"jquery": "^3.7.1",
|
|
"js-cookie": "^3.0.5",
|
|
"jszip": "^3.10.1",
|
|
"lodash.clonedeep": "^4.5.0",
|
|
"lru-cache": "^11.1.0",
|
|
"lz-string": "^1.5.0",
|
|
"marked": "^15.0.12",
|
|
"monaco-editor": "^0.49.0",
|
|
"monaco-vim": "^0.4.2",
|
|
"morgan": "^1.10.1",
|
|
"node-targz": "^0.2.0",
|
|
"p-queue": "^8.1.0",
|
|
"path-browserify": "^1.0.1",
|
|
"profanities": "^3.0.1",
|
|
"prom-client": "^15.1.3",
|
|
"pug": "^3.0.3",
|
|
"response-time": "^2.3.4",
|
|
"sanitize-filename": "^1.6.3",
|
|
"scroll-into-view-if-needed": "^3.1.0",
|
|
"semver": "^7.7.2",
|
|
"systemd-socket": "0.0.0",
|
|
"tar-stream": "^3.1.7",
|
|
"tom-select": "^2.4.3",
|
|
"tree-kill": "^1.2.2",
|
|
"triple-beam": "^1.4.1",
|
|
"tsx": "^4.20.3",
|
|
"underscore": "^1.13.7",
|
|
"url-join": "^5.0.0",
|
|
"whatwg-fetch": "^3.6.20",
|
|
"which": "^5.0.0",
|
|
"winston": "^3.17.0",
|
|
"winston-loki": "^6.1.3",
|
|
"winston-papertrail": "^1.0.5",
|
|
"winston-transport": "^4.9.0",
|
|
"ws": "^8.18.3",
|
|
"yaml": "^2.8.0"
|
|
},
|
|
"devDependencies": {
|
|
"@biomejs/biome": "^2.1.2",
|
|
"@sentry/types": "^9.42.1",
|
|
"@smithy/util-stream": "^4.2.3",
|
|
"@types/bootstrap": "^5.2.10",
|
|
"@types/chai": "^5.2.2",
|
|
"@types/compression": "^1.8.1",
|
|
"@types/express": "^5.0.3",
|
|
"@types/file-saver": "^2.0.7",
|
|
"@types/http-proxy": "^1.17.16",
|
|
"@types/jquery": "^3.5.32",
|
|
"@types/js-cookie": "^3.0.6",
|
|
"@types/node-targz": "^0.2.4",
|
|
"@types/request": "^2.48.12",
|
|
"@types/response-time": "^2.3.9",
|
|
"@types/temp": "^0.9.4",
|
|
"@types/underscore": "^1.13.0",
|
|
"@types/webpack-env": "^1.18.8",
|
|
"@types/which": "^3.0.4",
|
|
"@types/ws": "^8.18.1",
|
|
"@vitest/coverage-v8": "^3.2.4",
|
|
"aws-sdk-client-mock": "^4.1.0",
|
|
"cheerio": "^1.1.2",
|
|
"css-loader": "^7.1.2",
|
|
"css-minimizer-webpack-plugin": "^7.0.2",
|
|
"cypress": "^14.5.3",
|
|
"file-loader": "^6.2.0",
|
|
"happy-dom": "^18.0.1",
|
|
"husky": "^9.1.7",
|
|
"lint-staged": "^16.1.2",
|
|
"mini-css-extract-plugin": "^2.9.2",
|
|
"mock-fs": "^5.5.0",
|
|
"monaco-editor-webpack-plugin": "^7.1.0",
|
|
"nock": "^14.0.7",
|
|
"npm-run-all": "^4.1.5",
|
|
"sass": "^1.89.2",
|
|
"sass-loader": "^16.0.5",
|
|
"source-map-loader": "^5.0.0",
|
|
"supertest": "^7.1.4",
|
|
"terser-webpack-plugin": "^5.3.14",
|
|
"ts-loader": "^9.5.2",
|
|
"typescript": "^5.8.3",
|
|
"vitest": "^3.0.7",
|
|
"vitest-fetch-mock": "^0.4.5",
|
|
"webpack": "^5.100.2",
|
|
"webpack-cli": "^6.0.1",
|
|
"webpack-dev-middleware": "^7.4.2",
|
|
"webpack-manifest-plugin": "^5.0.1"
|
|
},
|
|
"optionalDependencies": {
|
|
"@rollup/rollup-darwin-arm64": "*",
|
|
"@rollup/rollup-darwin-x64": "*",
|
|
"@rollup/rollup-linux-x64-gnu": "*",
|
|
"@rollup/rollup-linux-x64-musl": "*",
|
|
"@rollup/rollup-win32-x64-msvc": "*"
|
|
},
|
|
"scripts": {
|
|
"cypress": "cypress run",
|
|
"lint": "biome check . --write",
|
|
"lint-check": "biome check .",
|
|
"test-coverage": "vitest run --coverage",
|
|
"test": "vitest run",
|
|
"test:watch": "vitest",
|
|
"test-min": "cross-env SKIP_EXPENSIVE_TESTS=true vitest run",
|
|
"check": "npm run ts-check && npm run lint-check && npm run check-frontend-imports && npm run test-min -- --reporter dot",
|
|
"check-frontend-imports": "node ./etc/scripts/check-frontend-imports.js",
|
|
"dev": "cross-env NODE_ENV=DEV node --no-warnings=ExperimentalWarning --import=tsx app.ts",
|
|
"debugger": "cross-env NODE_ENV=DEV node --import=tsx --inspect-brk app.ts",
|
|
"debug": "cross-env NODE_ENV=DEV node --no-warnings=ExperimentalWarning --import=tsx app.ts --debug",
|
|
"start": "npm run webpack && cross-env NODE_ENV=LOCAL node --no-warnings=ExperimentalWarning --import=tsx app.ts",
|
|
"sentry": "npx -p @sentry/cli sentry-cli",
|
|
"update-browserslist": "npx browserslist@latest -- --update-db",
|
|
"prepare": "husky",
|
|
"ts-compile": "tsc",
|
|
"ts-check": "npm-run-all ts-check:*",
|
|
"ts-check:backend": "tsc -p ./tsconfig.backend.json --noEmit",
|
|
"ts-check:frontend": "tsc -p ./tsconfig.frontend.json --noEmit",
|
|
"ts-check:tests": "tsc -p ./tsconfig.tests.json --noEmit",
|
|
"ts-check:frontend-tests": "tsc -p ./tsconfig.frontend.tests.json --noEmit",
|
|
"webpack": "node --no-warnings=ExperimentalWarning --import=tsx ./node_modules/webpack-cli/bin/cli.js --node-env=production --config webpack.config.esm.ts"
|
|
},
|
|
"license": "BSD-2-Clause",
|
|
"packageManager": "npm@11.2.0"
|
|
}
|