mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-10-19 13:30:37 +00:00
* ci(release): preview-artifact build-once workflow with artifact identity (#8084) Manual (workflow_dispatch pr_number) or `preview-artifact` label lane that builds the PR head once (npm ci + build:release), validates that build with check:pack-artifact and check:pack-boot (fake secrets, ephemeral DATA_DIR), proves the uploaded tarball is byte-identical to a re-pack of the validated tree, records its identity (head/base SHA, lockfile hash, platform/arch/node ABI, bundler, build policy) and uploads tarball + identity + SHA256SUMS. A separate GitHub-hosted `attest` job, the only one holding id-token/ attestations write, verifies the checksums and attests the tarball. Fork PRs are refused on both trigger paths; nothing publishes. Refs #8084 * feat(release): dry-run script for the 3.9.0 LTS cut (rail 3.8.58) `npm run release:dry-run-lts-cut` prints and validates the cut without executing anything: preconditions (source resolves, previous tag v3.8.59, package.json = 3.9.0, release-freeze open, release branch green per the "Release branch not green" issue, stable/v3 + develop absent), stable/v3 from the tip, develop with the 4.0.0 bump (package.json x3, lockfile, openapi), which dormant-workflow triggers/`if:` turn true (and which stay gated by a repository variable or are pinned to the canonical repo), expected dist-tags (latest -> 3.9.0, next/nightly empty; uses scripts/release/dist-tag.mjs when present, a minimal fallback otherwise) and the rollback. `--execute --remote <fork>` runs the two branch steps (or `--rollback`) only against a fork: origin and any remote whose URL is the canonical repository are refused, every step is confirmed on the terminal, the develop bump commit is built with git plumbing (no working tree touched) and every command is an execFile argv array. Rehearsal parameters (`--target-version`, `--previous-tag`, `--advisory`) let 3.8.58 run it on the current tip. * feat(release): print the stable/v3 and develop SHAs after an LTS-cut rehearsal * docs(release): 3.9.0 LTS cut runbook and GO/NO-GO checklist (rail 3.8.58-.59) RELEASE_CHECKLIST gains "3.9.0 LTS cut (rehearsed in 3.8.58)": the read-only dry-run (`npm run release:dry-run-lts-cut`), the fork-only rehearsal and its rollback, the PR preview-artifact lane (download, checksum, attestation verify, install the same bytes) and the ordered real cut. New docs/ops/LTS_GO_NO_GO.md: rail gates G0/G1/G2/G11/G12/G13/G14 and the 10-item closing battery, each with the command that proves it and an empty evidence column for the owner, ending in the GO / NO-GO line. Linked from the ROADMAP (Phase 3), the docs index and the ops sidebar. * fix(release): model G11 as the Mergify queue and report base-green as unknown for missing branches G11 is the Mergify `release` queue (GitHub's native merge queue was rejected in v3.8.49: no branch wildcards on a personal-account repo), not a ruleset `merge_queue` rule. The dry-run now reads `.mergify.yml` at the cut source (queue_rules[release] targeting release/*, entered via the `queue` label, with a checks_timeout) and checks the `queue` label exists; the release/* ruleset is checked separately for deletion + non_fast_forward only. base-green no longer reads "green" when the release branch does not exist on origin: no open base-red issue is not evidence for a branch the observer cannot see, so it reports `unknown ... (not verifiable)` and fails closed.
595 lines
37 KiB
JSON
595 lines
37 KiB
JSON
{
|
|
"name": "omniroute",
|
|
"version": "3.8.52",
|
|
"description": "Unified AI router with 372 providers, RTK+Caveman compression, auto fallback, MCP/A2A, desktop, PWA, and OpenAI-compatible APIs.",
|
|
"type": "module",
|
|
"bin": {
|
|
"omniroute": "bin/omniroute.mjs",
|
|
"omniroute-reset-password": "bin/reset-password.mjs"
|
|
},
|
|
"files": [
|
|
"config/cli-tools-manifest.json",
|
|
"bin/",
|
|
"dist/",
|
|
"@omniroute/",
|
|
"open-sse/",
|
|
"src/domain/",
|
|
"src/lib/",
|
|
"src/models/",
|
|
"src/mitm/",
|
|
"src/server/",
|
|
"src/shared/",
|
|
"src/sse/",
|
|
"src/types/",
|
|
".env.example",
|
|
"config/i18n.json",
|
|
".npmrc",
|
|
"scripts/build/postinstall.mjs",
|
|
"scripts/build/betterSqlitePrebuildTarget.mjs",
|
|
"scripts/build/fixPlaywrightAndroid.mjs",
|
|
"bin/cli/runtime/",
|
|
"scripts/postinstall.mjs",
|
|
"scripts/build/postinstallSupport.mjs",
|
|
"scripts/build/runtime-env.mjs",
|
|
"scripts/build/colocateOptionals.mjs",
|
|
"scripts/build/sync-env.mjs",
|
|
"scripts/dev/responses-ws-proxy.mjs",
|
|
"scripts/dev/peer-stamp.mjs",
|
|
"scripts/dev/tls-options.mjs",
|
|
"scripts/check/check-supported-node-runtime.ts",
|
|
"scripts/dev/sync-env.mjs",
|
|
"scripts/build/assembleStandalone.mjs",
|
|
"scripts/build/backendOnlyPages.mjs",
|
|
"scripts/build/build-tproxy-native.mjs",
|
|
"scripts/build/native-binary-compat.mjs",
|
|
"scripts/build/wreqJsNative.mjs",
|
|
"config/release/wreq-js-native-manifest.json",
|
|
"config/release/wreq-js-rust-license-inventory.json",
|
|
"config/release/wreq-js-rust-notices.md",
|
|
"scripts/build/build-next-isolated.mjs",
|
|
"scripts/build/runtime-env.mjs",
|
|
"scripts/packs/optionalPackManifest.mjs",
|
|
"scripts/packs/optionalPackInstaller.mjs",
|
|
"README.md",
|
|
"LICENSE",
|
|
"!**/node_modules/**",
|
|
"THIRD_PARTY_NOTICES.md",
|
|
"!**/__tests__/**",
|
|
"!**/*.test.ts",
|
|
"!**/*.test.tsx",
|
|
"!**/*.test.js",
|
|
"!**/*.test.mjs",
|
|
"!**/*.spec.ts",
|
|
"!**/*.spec.tsx",
|
|
"!**/*.nft.json"
|
|
],
|
|
"workspaces": [
|
|
"open-sse",
|
|
"packages/browser-pool"
|
|
],
|
|
"engines": {
|
|
"node": ">=22.22.2 <23 || >=24.0.0 <27"
|
|
},
|
|
"keywords": [
|
|
"ai",
|
|
"router",
|
|
"proxy",
|
|
"openai",
|
|
"claude",
|
|
"anthropic",
|
|
"gemini",
|
|
"fallback",
|
|
"cursor",
|
|
"cline",
|
|
"codex",
|
|
"llm",
|
|
"auto-fallback"
|
|
],
|
|
"license": "MIT",
|
|
"author": "diegosouzapw",
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "https://github.com/diegosouzapw/OmniRoute"
|
|
},
|
|
"homepage": "https://omniroute.online",
|
|
"scripts": {
|
|
"dev": "node --max-old-space-size=8192 scripts/dev/run-next.mjs dev",
|
|
"dev:candidate": "node scripts/dev/candidate.mjs",
|
|
"prebuild:docs": "node scripts/docs/gen-openapi-module.mjs",
|
|
"gen:provider-reference": "bun scripts/docs/gen-provider-reference.ts",
|
|
"gen:i18n-routes": "node scripts/i18n/generate-route-namespaces.mjs",
|
|
"bench:compression": "bun scripts/compression/benchmark.ts",
|
|
"bench:heap-body": "node --expose-gc --import tsx/esm scripts/perf/request-body-heap.ts",
|
|
"bench:routing-events": "node --import tsx/esm scripts/perf/routing-events-bench.ts",
|
|
"bench:highwatermark": "node --import tsx/esm scripts/perf/benchmark-highwatermark.ts",
|
|
"perf:lts-baseline": "node scripts/perf/lts-baseline.mjs",
|
|
"eval:compression": "node --import tsx scripts/compression-eval/index.ts",
|
|
"eval:router": "node --import tsx scripts/router-eval/index.ts",
|
|
"eval:router:compare": "node --import tsx scripts/router-eval/compare.ts",
|
|
"eval:router:patch-compare": "node --import tsx scripts/router-eval/patch-compare.ts",
|
|
"eval:router:search": "node --import tsx scripts/router-eval/search.ts",
|
|
"eval:router:trends": "node --import tsx scripts/router-eval/trends.ts",
|
|
"release:sync-changelog-i18n": "node scripts/release/sync-changelog-i18n.mjs",
|
|
"prebuild": "npm run check:native-deps",
|
|
"prebuild:fast": "npm run check:native-deps",
|
|
"build": "node scripts/build/build-next-isolated.mjs",
|
|
"build:fast": "cross-env OMNIROUTE_SKIP_STANDALONE=1 node scripts/build/build-next-isolated.mjs",
|
|
"build:secure": "OMNIROUTE_BUILD_PROFILE=minimal node scripts/build/build-next-isolated.mjs",
|
|
"build:backend": "cross-env OMNIROUTE_BUILD_BACKEND_ONLY=1 node scripts/build/build-next-isolated.mjs",
|
|
"build:contributor": "cross-env OMNIROUTE_BUILD_PROFILE=contributor OMNIROUTE_USE_TURBOPACK=0 node scripts/build/build-next-isolated.mjs",
|
|
"build:cli": "node --import tsx scripts/build/prepublish.ts",
|
|
"omniroute:verify": "node scripts/check/omniroute-verify.mjs",
|
|
"build:release": "rm -rf .build dist && OMNIROUTE_BUILD_SHA=$(git rev-parse --short HEAD) npm run build && npm run build:cli && node scripts/build/write-build-sha.mjs",
|
|
"build:native:tproxy": "cd src/mitm/tproxy/native && npx --yes node-gyp rebuild",
|
|
"start": "node scripts/dev/run-next.mjs start",
|
|
"start:fast": "cross-env OMNIROUTE_SKIP_STANDALONE=1 node scripts/dev/run-next.mjs start",
|
|
"homolog": "node scripts/homolog/run.mjs",
|
|
"lint": "eslint . --cache --cache-location .eslintcache --suppressions-location config/quality/eslint-suppressions.json",
|
|
"lint:json": "node scripts/quality/run-eslint-json.mjs",
|
|
"lint:md": "npx --yes markdownlint-cli2 \"docs/**/*.md\" \"*.md\" \"!docs/i18n\" \"!docs/research\"",
|
|
"lint:prose": "vale docs",
|
|
"electron:dev": "concurrently \"npm run dev\" \"wait-on http://localhost:${PORT:-20128} && cd electron && npm run dev\"",
|
|
"electron:build": "npm run build && cd electron && npm run build",
|
|
"electron:build:win": "npm run build && cd electron && npm run build:win",
|
|
"electron:build:mac": "npm run build && cd electron && npm run build:mac",
|
|
"electron:build:linux": "npm run build && cd electron && npm run build:linux",
|
|
"electron:smoke:packaged": "node scripts/dev/smoke-electron-packaged.mjs",
|
|
"test": "cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --max-old-space-size=8192 --import tsx/esm --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=4 tests/unit/*.test.ts \"tests/unit/{api,auth,authz,build,chatcore,cli,cli-helper,combo,compression,correctness,cors,db,db-adapters,docs,gamification,guardrails,lib,mcp,memory,runtime,security,services,settings,shared,translator,ui,usage}/**/*.test.ts\" \"tests/unit/**/*.test.mjs\" && cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --max-old-space-size=8192 --import tsx --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=4 \"tests/unit/dashboard/**/*.test.ts\" && npm run test:unit:serial",
|
|
"test:unit": "cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --max-old-space-size=8192 --import tsx/esm --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=4 tests/unit/*.test.ts \"tests/unit/{api,auth,authz,build,chatcore,cli,cli-helper,combo,compression,correctness,cors,db,db-adapters,docs,gamification,guardrails,lib,mcp,memory,runtime,security,services,settings,shared,translator,ui,usage}/**/*.test.ts\" \"tests/unit/**/*.test.mjs\" && cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --max-old-space-size=8192 --import tsx --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=4 \"tests/unit/dashboard/**/*.test.ts\" && npm run test:unit:serial",
|
|
"test:unit:ci": "cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --max-old-space-size=8192 --import tsx/esm --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=4 tests/unit/*.test.ts \"tests/unit/{api,auth,authz,build,chatcore,cli,cli-helper,combo,compression,correctness,cors,db,db-adapters,docs,gamification,guardrails,lib,mcp,memory,runtime,security,services,settings,shared,translator,ui,usage}/**/*.test.ts\" \"tests/unit/**/*.test.mjs\" && cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --max-old-space-size=8192 --import tsx --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=4 \"tests/unit/dashboard/**/*.test.ts\" && npm run test:unit:serial",
|
|
"test:unit:ci:shard": "cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --max-old-space-size=8192 --import tsx/esm --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=4 --test-shard=$TEST_SHARD tests/unit/*.test.ts \"tests/unit/{api,auth,authz,build,chatcore,cli,cli-helper,combo,compression,correctness,cors,db,db-adapters,docs,gamification,guardrails,lib,mcp,memory,runtime,security,services,settings,shared,translator,ui,usage}/**/*.test.ts\" \"tests/unit/**/*.test.mjs\" && cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --max-old-space-size=8192 --import tsx --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=4 --test-shard=$TEST_SHARD \"tests/unit/dashboard/**/*.test.ts\" && cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --max-old-space-size=8192 --import tsx/esm --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=1 --test-shard=$TEST_SHARD \"tests/unit/serial/**/*.test.ts\"",
|
|
"test:unit:fast": "cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --max-old-space-size=8192 --import tsx/esm --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-isolation=none tests/unit/*.test.ts \"tests/unit/{api,auth,authz,build,chatcore,cli,cli-helper,combo,compression,correctness,cors,db,db-adapters,docs,gamification,guardrails,lib,mcp,memory,runtime,security,services,settings,shared,translator,ui,usage}/**/*.test.ts\" \"tests/unit/**/*.test.mjs\" && cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --max-old-space-size=8192 --import tsx --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-isolation=none \"tests/unit/dashboard/**/*.test.ts\" && npm run test:unit:serial",
|
|
"test:scoped": "bash scripts/quality/test-scoped.sh",
|
|
"test:scoped:staged": "bash scripts/quality/test-scoped.sh --staged",
|
|
"test:scoped:full": "bash scripts/quality/test-scoped.sh --full",
|
|
"test:unit:shard": "concurrently --kill-others-on-fail -n s1,s2 \"npm:test:unit:shard:1\" \"npm:test:unit:shard:2\"",
|
|
"test:unit:shard:1": "cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --max-old-space-size=8192 --import tsx/esm --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=10 --test-shard=1/2 tests/unit/*.test.ts \"tests/unit/{api,auth,authz,build,chatcore,cli,cli-helper,combo,compression,correctness,cors,db,db-adapters,docs,gamification,guardrails,lib,mcp,memory,runtime,security,services,settings,shared,translator,ui,usage}/**/*.test.ts\" \"tests/unit/**/*.test.mjs\" && cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --max-old-space-size=8192 --import tsx --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=10 --test-shard=1/2 \"tests/unit/dashboard/**/*.test.ts\" && cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --max-old-space-size=8192 --import tsx/esm --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=1 --test-shard=1/2 \"tests/unit/serial/**/*.test.ts\"",
|
|
"test:unit:shard:2": "cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --max-old-space-size=8192 --import tsx/esm --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=10 --test-shard=2/2 tests/unit/*.test.ts \"tests/unit/{api,auth,authz,build,chatcore,cli,cli-helper,combo,compression,correctness,cors,db,db-adapters,docs,gamification,guardrails,lib,mcp,memory,runtime,security,services,settings,shared,translator,ui,usage}/**/*.test.ts\" \"tests/unit/**/*.test.mjs\" && cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --max-old-space-size=8192 --import tsx --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=10 --test-shard=2/2 \"tests/unit/dashboard/**/*.test.ts\" && cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --max-old-space-size=8192 --import tsx/esm --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=1 --test-shard=2/2 \"tests/unit/serial/**/*.test.ts\"",
|
|
"test:bun:db": "bun test tests/unit/db-adapters/bunSqliteAdapter.test.ts tests/unit/db-adapters/driverFactory.test.ts tests/unit/db-adapters/cliSqlite.test.mjs",
|
|
"test:plan3": "cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --import tsx/esm --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test tests/unit/plan3-p0.test.ts",
|
|
"test:fixes": "cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --import tsx/esm --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test tests/unit/fixes-p1.test.ts",
|
|
"test:security": "cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --import tsx/esm --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test tests/unit/security-fase01.test.ts",
|
|
"test:property": "cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --import tsx/esm --test --test-force-exit tests/unit/correctness/*.property.test.ts",
|
|
"check:cycles": "node scripts/check/check-cycles.mjs",
|
|
"check:cycles:ratchet": "node scripts/check/check-cycles.mjs --ratchet",
|
|
"vendor:chatgpt-web:status": "node scripts/dev/vendor-chatgpt-web.mjs status",
|
|
"vendor:chatgpt-web:diff": "node scripts/dev/vendor-chatgpt-web.mjs diff",
|
|
"check:route-validation:t06": "node scripts/check/check-route-validation.mjs",
|
|
"check:any-budget:t11": "node scripts/check/check-t11-any-budget.mjs",
|
|
"check:docs-sync": "node scripts/check/check-docs-sync.mjs",
|
|
"check:env-doc-sync": "node scripts/check/check-env-doc-sync.mjs",
|
|
"check:docs-counts": "node scripts/check/check-docs-counts-sync.mjs",
|
|
"check:deprecated-versions": "node scripts/check/check-deprecated-versions.mjs",
|
|
"check:compression-budget": "bun scripts/check/check-compression-budget.ts",
|
|
"check:router-eval": "node --import tsx scripts/check/check-router-eval-regression.ts",
|
|
"check:doc-links": "node scripts/check/check-doc-links.mjs",
|
|
"check:fabricated-docs": "node scripts/check/check-fabricated-docs.mjs --strict",
|
|
"check:docs-frontmatter": "node scripts/check/check-docs-frontmatter.mjs",
|
|
"check:docs-all": "npm run check:docs-sync && npm run check:docs-frontmatter && npm run check:docs-counts && npm run check:env-doc-sync && npm run check:deprecated-versions && npm run check:doc-links && npm run check:fabricated-docs",
|
|
"docs:render-diagrams": "node scripts/docs/render-diagrams.mjs",
|
|
"i18n:run": "node scripts/i18n/run-translation.mjs",
|
|
"i18n:run:dry": "node scripts/i18n/run-translation.mjs --dry-run",
|
|
"i18n:check": "node scripts/i18n/check-translation-drift.mjs",
|
|
"i18n:sync-ui": "node scripts/i18n/sync-ui-keys.mjs",
|
|
"i18n:sync-ui:dry": "node scripts/i18n/sync-ui-keys.mjs --dry-run",
|
|
"i18n:check-ui-coverage": "node scripts/i18n/check-ui-keys-coverage.mjs",
|
|
"i18n:check-value-drift": "node scripts/i18n/check-ui-value-drift.mjs",
|
|
"i18n:check-value-drift:warn": "node scripts/i18n/check-ui-value-drift.mjs --warn",
|
|
"i18n:check-glossary": "node scripts/i18n/check-glossary-consistency.mjs",
|
|
"i18n:check-glossary:ko": "node scripts/i18n/check-glossary-consistency.mjs --locale=ko",
|
|
"i18n:check-ratio": "node scripts/i18n/check-translation-ratio.mjs",
|
|
"i18n:check-ratio:update": "node scripts/i18n/check-translation-ratio.mjs --update",
|
|
"i18n:sync-bars": "node scripts/i18n/sync-language-bars.mjs",
|
|
"i18n:add-locale": "node scripts/i18n/add-locale.mjs",
|
|
"check:native-deps": "node scripts/check/check-native-deps.mjs",
|
|
"check:node-runtime": "node --import tsx scripts/check/check-supported-node-runtime.ts",
|
|
"check:pack-artifact": "node --import tsx scripts/build/validate-pack-artifact.ts",
|
|
"check:pack-boot": "node scripts/check/check-pack-boot.mjs",
|
|
"check:install-upgrade": "node scripts/check/check-install-upgrade.mjs",
|
|
"check:pack-policy": "node --import tsx scripts/build/validate-pack-artifact.ts --policy-only",
|
|
"check:cli-i18n": "node scripts/check/check-cli-i18n.mjs",
|
|
"check:ui-icu": "node scripts/i18n/check-ui-icu.mjs",
|
|
"check:openapi-coverage": "node scripts/check/check-openapi-coverage.mjs",
|
|
"check:openapi-security-tiers": "node scripts/check/check-openapi-security-tiers.mjs",
|
|
"check:model-lifecycle": "node --import tsx/esm scripts/check/check-model-lifecycle.mjs",
|
|
"check:provider-consistency": "bun scripts/check/check-provider-consistency.ts",
|
|
"check:provider-assets": "node scripts/check/check-provider-assets.mjs",
|
|
"check:provider-order-sync": "node scripts/check/check-provider-order-sync.mjs",
|
|
"check:provider-asset-provenance": "node scripts/check/check-provider-asset-provenance.mjs",
|
|
"check:radar-sentinels": "node scripts/check/check-radar-sentinels.mjs",
|
|
"check:nvidia-catalog-drift": "node --import tsx/esm scripts/check/check-nvidia-catalog-drift.ts",
|
|
"check:cli-fingerprint-drift": "node --import tsx/esm scripts/check/check-cli-fingerprint-drift.ts",
|
|
"check:fetch-targets": "node scripts/check/check-fetch-targets.mjs",
|
|
"check:openapi-routes": "node scripts/check/check-openapi-routes.mjs",
|
|
"check:api-docs-refs": "node scripts/check/check-api-docs-refs.mjs",
|
|
"check:openapi-breaking": "node scripts/check/check-openapi-breaking.mjs",
|
|
"check:deps": "node scripts/check/check-deps.mjs",
|
|
"check:file-size": "node scripts/check/check-file-size.mjs",
|
|
"check:duplication": "node scripts/check/check-duplication.mjs",
|
|
"check:tracked-artifacts": "node scripts/check/check-tracked-artifacts.mjs",
|
|
"check:ai-attribution": "node scripts/check/check-ai-attribution.mjs",
|
|
"check:test-masking": "node scripts/check/check-test-masking.mjs",
|
|
"check:test-runner-api": "node scripts/check/check-test-runner-api.mjs",
|
|
"check:changelog-integrity": "node scripts/check/check-changelog-integrity.mjs",
|
|
"sweep:stale-fragments": "node scripts/release/sweep-stale-fragments.mjs",
|
|
"changelog:aggregate": "node scripts/release/aggregate-changelog.mjs",
|
|
"check:agent-skills-sync": "node --import tsx/esm scripts/skills/generate-agent-skills.mjs",
|
|
"check:build-scope": "node scripts/check/check-build-scope.mjs",
|
|
"check:error-helper": "node scripts/check/check-error-helper.mjs",
|
|
"check:routing-error-guard": "node scripts/check/check-routing-error-guard.mjs",
|
|
"check:migration-numbering": "node scripts/check/check-migration-numbering.mjs",
|
|
"check:public-creds": "node scripts/check/check-public-creds.mjs",
|
|
"check:db-rules": "node scripts/check/check-db-rules.mjs",
|
|
"check:docs-symbols": "node scripts/check/check-docs-symbols.mjs",
|
|
"check:known-symbols": "bun scripts/check/check-known-symbols.ts",
|
|
"check:route-guard-membership": "node --import tsx scripts/check/check-route-guard-membership.ts",
|
|
"check:test-discovery": "node scripts/check/check-test-discovery.mjs",
|
|
"check:forgotten-sibling-tests": "node scripts/check/check-forgotten-sibling-tests.mjs",
|
|
"check:mutation-test-coverage": "node scripts/check/check-mutation-test-coverage.mjs --strict",
|
|
"check:complexity": "node scripts/check/check-complexity.mjs",
|
|
"check:dead-code": "node scripts/check/check-dead-code.mjs",
|
|
"check:cognitive-complexity": "node scripts/check/check-cognitive-complexity.mjs",
|
|
"check:complexity-ratchets": "node scripts/check/check-complexity-ratchets.mjs",
|
|
"check:release-green": "node scripts/quality/validate-release-green.mjs",
|
|
"check:ratchet-bank": "node scripts/quality/verify-ratchet-bank.mjs",
|
|
"check:type-coverage": "node scripts/check/check-type-coverage.mjs",
|
|
"check:lockfile": "node scripts/check/check-lockfile.mjs",
|
|
"check:bundle-size": "node scripts/check/check-bundle-size.mjs",
|
|
"check:circular-deps": "node scripts/check/check-circular-deps.mjs",
|
|
"check:mutation-ratchet": "node scripts/check/check-mutation-ratchet.mjs",
|
|
"check:rtl-ratchet": "node scripts/check/check-rtl-ratchet.mjs",
|
|
"check:licenses": "node scripts/check/check-licenses.mjs",
|
|
"check:pr-evidence": "node scripts/check/check-pr-evidence.mjs",
|
|
"check:vuln-ratchet": "node scripts/check/check-vuln-ratchet.mjs",
|
|
"check:codeql-ratchet": "node scripts/check/check-codeql-ratchet.mjs",
|
|
"check:secrets": "node scripts/check/check-secrets.mjs",
|
|
"check:workflows": "node scripts/check/check-workflows.mjs",
|
|
"quality:collect": "node scripts/quality/collect-metrics.mjs",
|
|
"quality:ratchet": "node scripts/quality/check-quality-ratchet.mjs",
|
|
"quality:headroom": "node scripts/quality/baseline-headroom.mjs",
|
|
"quality:relax-baselines": "node scripts/quality/relax-baselines.mjs",
|
|
"quality:refresh-model-lifecycle": "node scripts/quality/refresh-model-lifecycle.mjs",
|
|
"quality:boundary": "node scripts/quality/measure-boundary.mjs",
|
|
"quality:gate": "npm run quality:collect && npm run quality:ratchet -- --allow-missing",
|
|
"check:gate-manifest": "node scripts/quality/gate-manifest.mjs",
|
|
"check:quality-skill-contract": "node scripts/quality/check-skill-contract.mjs",
|
|
"quality:scan": "node scripts/quality/run-all-gates.mjs",
|
|
"quality:scan:fast": "node scripts/quality/run-all-gates.mjs --fast",
|
|
"audit:deps": "npm audit --audit-level=critical && (npm audit --audit-level=high || echo '::warning::high-severity advisories present (non-blocking)') && npm run audit:electron",
|
|
"audit:electron": "npm --prefix electron audit --audit-level=critical && (npm --prefix electron audit --audit-level=high || echo '::warning::electron high-severity advisories present (non-blocking)')",
|
|
"typecheck:core": "tsc --pretty false -p tsconfig.typecheck-core.json",
|
|
"typecheck:noimplicit:core": "tsc --pretty false -p tsconfig.typecheck-noimplicit-core.json",
|
|
"check:dashboard-typecheck": "node scripts/check/check-dashboard-typecheck.mjs",
|
|
"check:open-sse-typecheck": "node scripts/check/check-open-sse-typecheck.mjs",
|
|
"check:ts7-diagnostics-ratchet": "node scripts/check/check-ts7-diagnostics-ratchet.mjs",
|
|
"backfill-aggregation": "node --import tsx src/scripts/backfillAggregation.ts",
|
|
"env:sync": "node scripts/dev/sync-env.mjs",
|
|
"test:integration": "cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --import tsx/esm --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=1 tests/integration/*.test.ts \"tests/integration/combo-matrix/*.test.ts\"",
|
|
"test:integration:ci": "cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --import tsx/esm --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=1 --test-shard=$TEST_SHARD tests/integration/*.test.ts \"tests/integration/combo-matrix/*.test.ts\"",
|
|
"test:combo:matrix": "cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --import tsx/esm --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=1 \"tests/integration/combo-matrix/*.test.ts\"",
|
|
"test:combo:live": "cross-env RUN_COMBO_LIVE=1 DISABLE_SQLITE_AUTO_BACKUP=true node --import tsx/esm --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=1 \"tests/integration/combo-live/*.live.test.ts\"",
|
|
"test:combo:live:vps": "node scripts/test/combo-live-vps.mjs",
|
|
"test:combo:live:vps:failover": "node scripts/test/combo-live-vps.mjs --failover",
|
|
"test:services:int": "cross-env RUN_SERVICES_INT=1 DISABLE_SQLITE_AUTO_BACKUP=true node --import tsx/esm --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=1 \"tests/integration/services/*.test.ts\"",
|
|
"test:boundary:live": "cross-env RUN_BOUNDARY_LIVE=1 DISABLE_SQLITE_AUTO_BACKUP=true node --import tsx/esm --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=1 \"tests/boundary/*.live.test.ts\"",
|
|
"test:heap": "node --expose-gc --import tsx/esm --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit tests/integration/heap-growth.test.ts",
|
|
"test:chaos": "cross-env RUN_CHAOS_INT=1 node --import tsx/esm --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=1 tests/integration/resilience-chaos.test.ts",
|
|
"test:e2e": "node scripts/dev/run-playwright-tests.mjs test tests/e2e/*.spec.ts",
|
|
"test:protocols:e2e": "node scripts/dev/run-protocol-clients-tests.mjs",
|
|
"test:vitest": "vitest run --config vitest.mcp.config.ts",
|
|
"test:vitest:ui": "vitest run --config vitest.config.ts",
|
|
"test:mutation": "stryker run",
|
|
"test:ecosystem": "node scripts/dev/run-ecosystem-tests.mjs",
|
|
"test:system": "cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --import tsx/esm --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=1 tests/e2e/system-failover.test.ts",
|
|
"pretest:coverage": "rm -rf coverage",
|
|
"test:coverage": "cross-env DISABLE_SQLITE_AUTO_BACKUP=true NODE_OPTIONS=--max-old-space-size=8192 c8 --merge-async --output-dir coverage --exclude=tests/** --exclude=**/*.test.* --reporter=text-summary --reporter=html --reporter=json-summary --reporter=lcov --check-coverage --statements 60 --lines 60 --functions 60 --branches 60 npm run test:coverage:runner",
|
|
"test:coverage:legacy": "c8 --output-dir coverage --exclude=open-sse --check-coverage --lines 50 --functions 50 --branches 50 node --import tsx/esm --test tests/unit/*.test.ts",
|
|
"coverage:report": "cross-env NODE_OPTIONS=--max-old-space-size=8192 c8 report --merge-async --output-dir coverage --exclude=tests/** --exclude=**/*.test.* --reporter=text --reporter=text-summary --reporter=html --reporter=json-summary --reporter=lcov",
|
|
"coverage:summary": "node scripts/check/test-report-summary.mjs --input coverage/coverage-summary.json --output coverage/coverage-report.md",
|
|
"check:pr-test-policy": "node scripts/check/check-pr-test-policy.mjs",
|
|
"check:pricing-freshness": "node scripts/check/check-pricing-freshness.mjs",
|
|
"coverage:report:legacy": "c8 report --output-dir coverage --exclude=open-sse --reporter=text --reporter=text-summary",
|
|
"test:all": "npm run test:unit && npm run test:vitest && npm run test:vitest:ui && npm run test:ecosystem && npm run test:e2e",
|
|
"check": "npm run lint && npm run test",
|
|
"prepublishOnly": "npm run build:cli-api && npm run build:cli && npm run check:pack-artifact",
|
|
"postinstall": "node scripts/build/postinstall.mjs",
|
|
"uninstall": "node scripts/build/uninstall.mjs",
|
|
"uninstall:full": "node scripts/build/uninstall.mjs --full",
|
|
"prepare": "node -e \"try{require.resolve('husky')}catch(e){process.exit(0)};require('child_process').execSync('husky',{stdio:'inherit'})\"",
|
|
"system-info": "node scripts/dev/system-info.mjs",
|
|
"build:cli-api": "node --import tsx/esm scripts/cli/generate-api-commands.mjs",
|
|
"postbuild": "node scripts/build/colocate-standalone.mjs",
|
|
"release:contributors": "node scripts/release/gen-contributors.mjs",
|
|
"release:uncovered": "node scripts/release/list-uncovered-commits.mjs",
|
|
"release:reconcile": "node scripts/release/reconcile-changelog.mjs",
|
|
"release:dry-run-lts-cut": "node scripts/release/dry-run-lts-cut.mjs",
|
|
"labels:sync": "node scripts/release/sync-labels.mjs",
|
|
"test:coverage:runner": "node --max-old-space-size=8192 --import tsx/esm --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=8 tests/unit/*.test.ts \"tests/unit/{api,auth,authz,build,chatcore,cli,cli-helper,combo,compression,correctness,cors,db,db-adapters,docs,gamification,guardrails,lib,mcp,memory,runtime,security,services,settings,shared,translator,ui,usage}/**/*.test.ts\" \"tests/unit/**/*.test.mjs\" && cross-env DISABLE_SQLITE_AUTO_BACKUP=true NODE_OPTIONS=--max-old-space-size=8192 c8 --merge-async --output-dir coverage --exclude=tests/** --exclude=**/*.test.* --reporter=text-summary --reporter=html --reporter=json-summary --reporter=lcov --check-coverage --statements 60 --lines 60 --functions 60 --branches 60 node --max-old-space-size=8192 --import tsx --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=8 \"tests/unit/dashboard/**/*.test.ts\" && npm run test:unit:serial",
|
|
"test:unit:serial": "cross-env DISABLE_SQLITE_AUTO_BACKUP=true node --max-old-space-size=8192 --import tsx/esm --import ./open-sse/utils/setupPolyfill.ts --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=1 \"tests/unit/serial/**/*.test.ts\"",
|
|
"alibaba:sync-allowlist": "node --import tsx/esm scripts/ops/sync-alibaba-allowlist.mjs",
|
|
"check:vitest-exclusions": "node scripts/check/check-vitest-exclusions.mjs",
|
|
"i18n:check-new-keys": "node scripts/i18n/check-new-key-coverage.mjs",
|
|
"i18n:translate-new-keys": "bash scripts/i18n/translate-new-keys.sh",
|
|
"i18n:check-keys": "node scripts/i18n/check-key-completeness.mjs",
|
|
"i18n:check-keys:cli": "node scripts/i18n/check-key-completeness.mjs --catalog=cli"
|
|
},
|
|
"dependencies": {
|
|
"@agentclientprotocol/sdk": "1.4.0",
|
|
"@aws-sdk/client-bedrock-runtime": "^3.1120.0",
|
|
"@dnd-kit/core": "^6.3.1",
|
|
"@dnd-kit/sortable": "^10.0.0",
|
|
"@dnd-kit/utilities": "^3.2.2",
|
|
"@lobehub/icons": "^5.16.0",
|
|
"@modelcontextprotocol/sdk": "^1.31.0",
|
|
"@monaco-editor/react": "^4.7.0",
|
|
"@ngrok/ngrok": "^1.7.0",
|
|
"@swc/helpers": "0.5.23",
|
|
"@toon-format/toon": "^4.1.1",
|
|
"@types/mdx": "^2.0.13",
|
|
"@xyflow/react": "^12.11.5",
|
|
"ajv": "^8.20.0",
|
|
"ajv-formats": "^3.0.1",
|
|
"axios": "^1.20.0",
|
|
"katex": "^0.18.2",
|
|
"simple-git": "^4.0.1",
|
|
"shell-quote": "^1.11.0",
|
|
"proxy-addr": "^2.0.8",
|
|
"compression": "^1.8.2",
|
|
"source-map-js": "^1.2.2",
|
|
"postcss-selector-parser": "^7.1.6",
|
|
"fast-copy": "^4.1.0",
|
|
"bcryptjs": "^3.0.3",
|
|
"bottleneck": "^2.19.5",
|
|
"clsx": "^2.1.1",
|
|
"commander": "^15.0.0",
|
|
"cron-parser": "^5.10.0",
|
|
"csv-stringify": "^6.8.3",
|
|
"dompurify": "^3.4.14",
|
|
"express": "^5.2.1",
|
|
"fetch-socks": "^1.3.3",
|
|
"fflate": "^0.8.3",
|
|
"fumadocs-core": "^16.15.4",
|
|
"fumadocs-ui": "^16.15.4",
|
|
"http-proxy-middleware": "^4.0.0",
|
|
"https-proxy-agent": "^9.0.0",
|
|
"ink": "^7.0.3",
|
|
"ink-spinner": "^5.0.0",
|
|
"ink-text-input": "^6.0.0",
|
|
"ioredis": "^5.10.1",
|
|
"jose": "^6.2.10",
|
|
"js-yaml": "^5.4.1",
|
|
"jsonc-parser": "^3.3.1",
|
|
"lowdb": "^7.0.1",
|
|
"lucide-react": "^1.33.0",
|
|
"marked": "^18.0.11",
|
|
"marked-terminal": "^7.3.0",
|
|
"material-symbols": "^0.47.0",
|
|
"mermaid": "^11.17.2",
|
|
"monaco-editor": "^0.56.0",
|
|
"next": "16.3.8",
|
|
"next-intl": "^4.14.0",
|
|
"next-themes": "^0.4.6",
|
|
"node-machine-id": "^1.1.12",
|
|
"omniglyph": "^1.4.0",
|
|
"open": "^11.0.2",
|
|
"ora": "^9.4.1",
|
|
"parse5": "^8.0.1",
|
|
"pino": "^10.3.1",
|
|
"pino-abstract-transport": "^3.0.0",
|
|
"pino-pretty": "^13.1.3",
|
|
"playwright": "1.62.1",
|
|
"playwright-core": "1.62.1",
|
|
"react": "19.2.8",
|
|
"react-dom": "19.2.8",
|
|
"react-is": "^19.2.6",
|
|
"react-markdown": "^10.1.0",
|
|
"react-reconciler": "^0.33.0",
|
|
"react18-json-view": "0.2.10",
|
|
"recharts": "^3.8.1",
|
|
"remark-gfm": "^4.0.1",
|
|
"safe-regex": "^2.1.1",
|
|
"selfsigned": "^5.5.0",
|
|
"sharp": "^0.35.5",
|
|
"smol-toml": "1.9.0",
|
|
"socks": "^2.8.7",
|
|
"sql.js": "^1.14.2",
|
|
"tailwind-merge": "^3.6.0",
|
|
"tiktoken": "^1.0.22",
|
|
"tsx": "^4.23.13",
|
|
"turndown": "7.2.4",
|
|
"turndown-plugin-gfm": "1.0.2",
|
|
"undici": "^8.11.2",
|
|
"update-notifier": "^7.3.1",
|
|
"uuid": "^14.0.2",
|
|
"ws": "^8.21.3",
|
|
"xxhash-wasm": "^1.1.0",
|
|
"yazl": "^3.3.1",
|
|
"zod": "^4.5.4",
|
|
"zustand": "^5.0.15"
|
|
},
|
|
"optionalDependencies": {
|
|
"@atjsh/llmlingua-2": "3.0.0",
|
|
"@huggingface/transformers": "^4.2.0",
|
|
"better-sqlite3": "^13.0.3",
|
|
"js-tiktoken": "^1.0.20",
|
|
"keytar": "^7.9.0",
|
|
"onnxruntime-node": "1.30.0",
|
|
"sqlite-vec": "^0.1.9",
|
|
"wreq-js": "3.2.0"
|
|
},
|
|
"devDependencies": {
|
|
"@axe-core/playwright": "^4.13.0",
|
|
"@cyclonedx/cyclonedx-npm": "6.0.1",
|
|
"@eslint/compat": "^2.1.1",
|
|
"@playwright/test": "^1.63.0",
|
|
"@size-limit/file": "^14.1.0",
|
|
"@stryker-mutator/core": "^10.0.0",
|
|
"@stryker-mutator/tap-runner": "^10.0.0",
|
|
"@tailwindcss/postcss": "^4.3.0",
|
|
"@testing-library/dom": "^10.4.1",
|
|
"@testing-library/jest-dom": "^7.0.1",
|
|
"@testing-library/react": "^16.3.3",
|
|
"@testing-library/user-event": "^14.6.7",
|
|
"@types/better-sqlite3": "^9.6.0",
|
|
"@types/bun": "1.4.2",
|
|
"@types/node": "^26.5.1",
|
|
"@types/react": "^19.2.18",
|
|
"@types/react-dom": "^19.2.5",
|
|
"@types/safe-regex": "^1.1.6",
|
|
"@types/ws": "^8.18.0",
|
|
"@vitejs/plugin-react": "^6.1.0",
|
|
"babel-plugin-react-compiler": "^1.0.0",
|
|
"bun": "1.4.2",
|
|
"c8": "^12.0.0",
|
|
"concurrently": "^10.0.5",
|
|
"cross-env": "^10.1.0",
|
|
"ctrf": "^0.4.0",
|
|
"dpdm": "^4.3.0",
|
|
"esbuild": "0.28.2",
|
|
"eslint": "^10.10.0",
|
|
"eslint-config-next": "16.3.8",
|
|
"eslint-plugin-react-hooks": "7.1.1",
|
|
"eslint-plugin-sonarjs": "^4.1.0",
|
|
"espree": "^11.2.0",
|
|
"fast-check": "^4.10.0",
|
|
"fumadocs-mdx": "^15.4.0",
|
|
"glob": "^13.0.6",
|
|
"httpyac": "^6.16.7",
|
|
"husky": "^9.1.7",
|
|
"intl-messageformat": "11.2.14",
|
|
"istanbul-lib-instrument": "6.0.3",
|
|
"jscpd": "^4.3.0",
|
|
"jsdom": "^30.0.1",
|
|
"junit-to-ctrf": "^0.0.14",
|
|
"knip": "^6.35.1",
|
|
"license-checker-rseidelsohn": "^5.0.1",
|
|
"lint-staged": "^17.5.1",
|
|
"lockfile-lint": "^5.0.1",
|
|
"node-loader": "^2.1.0",
|
|
"opencode-ai": "1.18.34",
|
|
"playwright-ctrf-json-reporter": "^0.1.0",
|
|
"prettier": "^3.9.6",
|
|
"promptfoo": "^0.123.0",
|
|
"size-limit": "^14.1.0",
|
|
"tailwindcss": "^4.3.0",
|
|
"type-coverage": "^2.30.1",
|
|
"typescript": "^6.0.3",
|
|
"typescript-eslint": "^8.70.0",
|
|
"vite": "^8.0.16",
|
|
"vitest": "^5.0.0",
|
|
"wait-on": "^9.1.0",
|
|
"wtfnode": "^0.10.1"
|
|
},
|
|
"lint-staged": {
|
|
"*.{js,jsx,ts,tsx,mjs}": [
|
|
"prettier --write",
|
|
"eslint --fix --no-error-on-unmatched-pattern --no-warn-ignored --suppressions-location config/quality/eslint-suppressions.json"
|
|
],
|
|
"*.{json,md,yml,yaml,css}": [
|
|
"prettier --write"
|
|
]
|
|
},
|
|
"pnpm": {
|
|
"onlyBuiltDependencies": [
|
|
"@parcel/watcher",
|
|
"@swc/core",
|
|
"better-sqlite3",
|
|
"esbuild",
|
|
"omniroute",
|
|
"sharp"
|
|
]
|
|
},
|
|
"allowScripts": {
|
|
"better-sqlite3": true,
|
|
"esbuild": true,
|
|
"@swc/core": true,
|
|
"@parcel/watcher": true,
|
|
"keytar": true,
|
|
"protobufjs": true,
|
|
"unrs-resolver": true,
|
|
"@playwright/browser-chromium@1.61.1": true,
|
|
"bun@1.4.2": true,
|
|
"libxmljs2@0.37.0": true,
|
|
"opencode-ai@1.18.30": true,
|
|
"better-sqlite3@13.0.3": true,
|
|
"@huggingface/transformers@4.2.0": true,
|
|
"keytar@7.9.0": true,
|
|
"sharp@0.35.4": true,
|
|
"onnxruntime-node@1.24.3": true
|
|
},
|
|
"overrides": {
|
|
"browserslist": "^4.28.8",
|
|
"joi": "^18.2.9",
|
|
"onnxruntime-node": "1.30.0",
|
|
"eslint-plugin-react-hooks": "7.1.1",
|
|
"fast-xml-parser": "^5.10.1",
|
|
"sharp": "^0.35.5",
|
|
"postcss": "^8.5.18",
|
|
"ip-address": "^10.7.2",
|
|
"axios": "^1.20.0",
|
|
"qs": "^6.16.0",
|
|
"uuid": "^14.0.2",
|
|
"form-data": "^4.0.6",
|
|
"vite": "^8.0.16",
|
|
"protobufjs": "^7.6.5",
|
|
"@babel/core": "^7.29.6",
|
|
"hono": "^4.13.7",
|
|
"@hono/node-server": "^2.0.5",
|
|
"fast-uri": "^3.1.7",
|
|
"body-parser": "^2.3.0",
|
|
"@yarnpkg/parsers": {
|
|
"js-yaml": "^4.3.2"
|
|
},
|
|
"@openai/codex-security": {
|
|
"smol-toml": "^1.9.0"
|
|
},
|
|
"jsdom": {
|
|
"undici": "^7.29.0"
|
|
},
|
|
"node-gyp": {
|
|
"undici": "^6.28.0"
|
|
},
|
|
"concurrently": {
|
|
"shell-quote": "^1.9.0"
|
|
},
|
|
"adm-zip": "^0.6.1",
|
|
"promptfoo": {
|
|
"js-yaml": "^5.2.2",
|
|
"undici@7": "^7.29.0",
|
|
"simple-git": "^4.0.1",
|
|
"@simple-git/argv-parser": "^2.0.1"
|
|
},
|
|
"mermaid": {
|
|
"katex": "^0.18.2"
|
|
},
|
|
"socket.io-parser": "^4.2.7",
|
|
"tar": "^7.5.21",
|
|
"libxmljs2": {
|
|
"minimatch": {
|
|
"brace-expansion": "^2.1.4"
|
|
}
|
|
},
|
|
"rimraf": {
|
|
"minimatch@9": {
|
|
"brace-expansion": "^2.1.4"
|
|
}
|
|
},
|
|
"@apidevtools/json-schema-ref-parser": {
|
|
"js-yaml": "^4.3.1"
|
|
},
|
|
"@eslint/eslintrc": {
|
|
"js-yaml": "^4.3.1"
|
|
},
|
|
"lockfile-lint": {
|
|
"js-yaml": "^4.3.1"
|
|
},
|
|
"xmlbuilder2": {
|
|
"js-yaml": "^4.3.1"
|
|
},
|
|
"nanoid": "^3.3.17",
|
|
"monaco-editor": {
|
|
"dompurify": "^3.4.14"
|
|
},
|
|
"csv-parse": "^7.0.2"
|
|
}
|
|
}
|