mirror of
https://github.com/deepseek-ai/deepseek-harness.git
synced 2026-09-11 04:00:38 +00:00
Add a benchmark lane (`vitest.bench.config.ts`, `pnpm run test:bench`, gate mode `ci-bench`) and a required `node 24 / benchmarks` CI job that runs it alone. Benchmarks synthesize their input in-process from fixed parameters and fail on documented budgets: - `open-generation.bench.ts`: a 200-turn released-v0 log with 500 text and 125 reasoning deltas per reply (127,400 events, ~2.8 MB) encoded through the frozen v0 codec; the migrating first `open()` must finish within 2,000 ms in a child process capped at 128 MB of old space, and a fresh process must open the published current generation within 500 ms. - `conversation-fold.bench.client.ts`: 200 replies whose compact streams hold 2,000 text + 500 reasoning deltas each, folded through every Chat Definition by the real assembler; the fold must finish within 150 ms and stay within 3x the fold of the same window with 100 deltas per reply. On this commit both gates fail: the migration exhausts the 128 MB heap (4.8 s and 696 MB peak RSS without the cap; the pre-stack decode of the same bytes took 34 ms and 168 MB) and the fold scales 11x with the delta count. The stacked fixes bring both paths to O(records).
205 lines
12 KiB
JSON
205 lines
12 KiB
JSON
{
|
|
"name": "@deepseek-ai/dsh-root",
|
|
"version": "0.1.3-alpha.1",
|
|
"license": "MIT",
|
|
"private": true,
|
|
"type": "module",
|
|
"packageManager": "pnpm@11.7.0",
|
|
"engines": {
|
|
"node": "^22.19.0 || >=24.0.0"
|
|
},
|
|
"workspaces": [
|
|
"vendor/*",
|
|
"packages/*/*",
|
|
"native/landlock-run",
|
|
"native/landlock-run/packages/*",
|
|
"apps/*",
|
|
"website"
|
|
],
|
|
"scripts": {
|
|
"build": "tsx scripts/build.ts",
|
|
"build:official": "tsx scripts/build.ts --profile official",
|
|
"build:lib": "npm run build:lib:host && npm run build:lib:client",
|
|
"build:lib:host": "node --max-old-space-size=4096 ./node_modules/typescript/bin/tsc -b tsconfig.host.json && tsdown --env.DSH_BUILD_FACE host",
|
|
"build:lib:client": "tsc -b tsconfig.client.json && tsdown --env.DSH_BUILD_FACE client",
|
|
"build:web": "pnpm --filter @deepseek-ai/dsh-web-frontend run build",
|
|
"clean": "tsx scripts/clean.ts",
|
|
"change-scope": "tsx scripts/change-scope.ts",
|
|
"typecheck": "npm run build:lib:host && npm run typecheck:contracts-ready",
|
|
"typecheck:contracts-ready": "tsc -b tsconfig.client.json",
|
|
"lint": "npm run build:lib:host && npm run lint:contracts-ready",
|
|
"lint:contracts-ready": "tsx scripts/run-oxlint.ts .",
|
|
"lint:fix": "npm run build:lib:host && npm run lint:fix:contracts-ready",
|
|
"lint:fix:contracts-ready": "tsx scripts/run-oxlint.ts --config .oxlintrc.staged.json packages/typert/generator/tests/fixtures/type-model --fix && tsx scripts/run-oxlint.ts . --fix",
|
|
"duplication": "jscpd --config .jscpd.json packages scripts",
|
|
"test": "vitest run",
|
|
"test:coverage": "vitest run --coverage",
|
|
"test:coverage:partitioned": "tsx scripts/run-coverage-partitions.ts",
|
|
"test:e2e": "vitest run --config vitest.e2e.config.ts",
|
|
"test:bench": "vitest run --config vitest.bench.config.ts",
|
|
"test:expected": "vitest run --config vitest.expected.config.ts",
|
|
"test:expected:refresh": "DSH_SNAPSHOT=refresh vitest run --config vitest.expected.config.ts",
|
|
"test:issue-management": "node .github/issue-management/policy.test.mjs",
|
|
"test:snapshot": "vitest run --config vitest.snapshot.config.ts",
|
|
"test:snapshot:record": "DSH_SNAPSHOT=record vitest run --config vitest.snapshot.config.ts --update",
|
|
"test:snapshot:refresh": "DSH_SNAPSHOT=refresh vitest run --config vitest.snapshot.config.ts",
|
|
"migrate:packed-session-fixtures": "tsx scripts/migrate-packed-session-fixtures.ts",
|
|
"test:web": "npm run build && npm run test:web:built",
|
|
"test:web:refresh": "npm run build && DSH_SNAPSHOT=refresh vitest run --config vitest.web.config.ts",
|
|
"test:web:built": "vitest run --config vitest.web.config.ts",
|
|
"test:web:ci": "tsx scripts/run-web-snapshots.ts",
|
|
"test:web:perf": "npm run build && npm run test:web:perf:built",
|
|
"test:web:perf:built": "DSH_SNAPSHOT=replay vitest run --config vitest.web.perf.config.ts",
|
|
"test:web:stress": "npm run build && vitest run --config vitest.web-stress.config.ts",
|
|
"benchmark:npm-resolution": "tsx scripts/benchmark-npm-resolution.ts",
|
|
"benchmark:npm-resolution:next": "tsx scripts/benchmark-next-package-dependency.ts",
|
|
"test:gui": "vitest run packages/client packages/host",
|
|
"check:all": "tsx scripts/run-gates.ts check-all",
|
|
"check:ci": "tsx scripts/run-gates.ts ci-primary",
|
|
"check:ci:linux-primary": "tsx scripts/run-gates.ts ci-linux-primary",
|
|
"check:ci:static": "tsx scripts/run-gates.ts ci-static",
|
|
"check:ci:lint:contracts-ready": "tsx scripts/run-gates.ts ci-lint-contracts-ready",
|
|
"check:ci:coverage": "tsx scripts/run-gates.ts ci-coverage",
|
|
"check:ci:bench": "tsx scripts/run-gates.ts ci-bench",
|
|
"check:ci:snapshot": "tsx scripts/run-gates.ts ci-snapshot",
|
|
"check:ci:artifacts": "tsx scripts/run-gates.ts ci-artifacts",
|
|
"check:ci:consumers": "tsx scripts/run-gates.ts ci-consumers",
|
|
"check:windows-wine": "bash scripts/wine-windows-gates.sh",
|
|
"check:ci:windows-blocking": "tsx scripts/run-gates.ts ci-windows-blocking",
|
|
"check:ci:windows-complete": "tsx scripts/run-gates.ts ci-windows-complete",
|
|
"check:ci:windows-observational": "tsx scripts/run-gates.ts ci-windows-observational",
|
|
"check:node-compat": "tsx scripts/run-gates.ts node-compat",
|
|
"publint": "tsx scripts/publint-all.ts",
|
|
"doc-typecheck": "npm run build:lib:host && npm run doc-typecheck:contracts-ready",
|
|
"doc-typecheck:contracts-ready": "tsx scripts/doc-typecheck.ts",
|
|
"verify-md-wrap": "tsx scripts/verify-md-wrap.ts",
|
|
"verify-md-links": "tsx scripts/verify-md-links.ts",
|
|
"verify-doc-site-fragments": "tsx scripts/verify-doc-site-fragments.ts",
|
|
"verify-public-repository-links": "tsx scripts/verify-public-repository-links.ts",
|
|
"verify-doc-refs": "tsx scripts/verify-doc-refs.ts",
|
|
"verify-subsystem-pages": "tsx scripts/verify-subsystem-pages.ts",
|
|
"verify-package-paths": "tsx scripts/verify-package-paths.ts",
|
|
"verify-dsh-package-licenses": "tsx scripts/verify-dsh-package-licenses.ts",
|
|
"verify-config-source-ownership": "tsx scripts/verify-config-source-ownership.ts",
|
|
"verify-package-invariants": "tsx scripts/verify-package-invariants.ts",
|
|
"verify-built-package-invariants": "node scripts/verify-built-package-invariants.mjs",
|
|
"verify-package-readme-model-experience": "tsx scripts/verify-package-readme-model-experience.ts",
|
|
"verify-mermaid": "tsx scripts/verify-mermaid.ts",
|
|
"verify-agent-note-classification": "tsx scripts/verify-agent-note-classification.ts",
|
|
"verify-agent-note-format": "tsx scripts/verify-agent-note-format.ts",
|
|
"verify-archived-agent-notes": "tsx scripts/verify-archived-agent-notes.ts",
|
|
"verify-type-equiv": "tsx scripts/verify-type-equiv.ts",
|
|
"verify-skill-invocation-metadata": "tsx scripts/verify-skill-invocation-metadata.ts",
|
|
"verify-translation-prompt": "tsx scripts/verify-translation-prompt.ts",
|
|
"verify-translation-pairing": "tsx scripts/verify-translation-pairing.ts",
|
|
"test:docs": "tsx scripts/run-gates.ts doc-quick",
|
|
"resolve-translation-pairing-conflicts": "tsx scripts/merge-translation-pairing.ts --resolve",
|
|
"gen-translation-brief": "tsx scripts/gen-translation-brief.ts",
|
|
"verify-doc-budgets": "tsx scripts/verify-doc-budgets.ts",
|
|
"docs:dev": "pnpm --filter @deepseek-ai/website run dev",
|
|
"docs:build": "tsx website/build.ts && pnpm run verify-doc-site-fragments",
|
|
"docs:build:mpa": "tsx website/build.ts --mpa && pnpm run verify-doc-site-fragments",
|
|
"docs:preview": "pnpm --filter @deepseek-ai/website run preview",
|
|
"docs:check": "pnpm exec vitest run scripts/project-doc-site.spec.ts scripts/verify-doc-site-fragments.spec.ts && pnpm run docs:build",
|
|
"website:dev": "pnpm run docs:dev",
|
|
"website:build": "pnpm run docs:build",
|
|
"verify-package-readme-limitations": "tsx scripts/verify-package-readme-limitations.ts",
|
|
"verify-node-next-types": "tsx scripts/verify-node-next-types.ts",
|
|
"verify-optional-dependency-imports": "tsx scripts/verify-optional-dependency-imports.ts",
|
|
"verify-runtime-closure": "tsx scripts/verify-runtime-closure.ts",
|
|
"verify-application-entrypoints": "tsx scripts/verify-application-entrypoints.ts",
|
|
"verify-package-dependencies": "tsx scripts/verify-package-dependencies.ts",
|
|
"verify-npm-install-layout": "tsx scripts/verify-npm-install-layout.ts",
|
|
"verify-client-packages": "tsx scripts/verify-client-packages.ts",
|
|
"verify-client-ui-i18n": "tsx scripts/verify-client-ui-i18n.ts",
|
|
"verify-no-bare-dispatcher": "tsx scripts/verify-no-bare-dispatcher.ts",
|
|
"verify-vendored-links": "tsx scripts/verify-vendored-links.ts",
|
|
"verify-cordis-config": "tsx scripts/verify-cordis-config.ts",
|
|
"rescope-vendor": "tsx scripts/rescope-vendor.ts",
|
|
"rescope-vendor:check": "tsx scripts/rescope-vendor.ts --check",
|
|
"verify-client-domain-graph": "tsx scripts/verify-client-domain-graph.ts",
|
|
"gen-tsconfig-paths": "tsx scripts/gen-tsconfig-paths.ts",
|
|
"verify-tsconfig-paths": "tsx scripts/gen-tsconfig-paths.ts --check",
|
|
"gen-cordis-catalog": "tsx scripts/gen-cordis-catalog.ts",
|
|
"verify-cordis-catalog": "tsx scripts/gen-cordis-catalog.ts --check",
|
|
"gen-cordis-api": "tsx scripts/gen-cordis-api.ts",
|
|
"verify-cordis-api": "tsx scripts/gen-cordis-api.ts --check",
|
|
"gen-client-catalog": "tsx scripts/gen-client-catalog.ts",
|
|
"gen-cordis-inspect-catalog": "tsx scripts/gen-cordis-inspect-catalog.ts",
|
|
"verify-cordis-inspect-catalog": "tsx scripts/gen-cordis-inspect-catalog.ts --check",
|
|
"verify-client-catalog": "tsx scripts/gen-client-catalog.ts --check",
|
|
"verify-export-jsdoc": "tsx scripts/verify-export-jsdoc.ts",
|
|
"gen-tool-catalog": "tsx scripts/gen-tool-catalog.ts",
|
|
"verify-tool-catalog": "tsx scripts/gen-tool-catalog.ts --check",
|
|
"gen-config-catalog": "tsx scripts/gen-config-catalog.ts",
|
|
"verify-config-catalog": "tsx scripts/gen-config-catalog.ts --check",
|
|
"gen-doc-graphs": "tsx scripts/gen-doc-graphs.ts",
|
|
"verify-doc-graphs": "tsx scripts/gen-doc-graphs.ts --check",
|
|
"gen-persistence-catalog": "tsx scripts/gen-persistence-catalog.ts",
|
|
"verify-persistence-catalog": "tsx scripts/gen-persistence-catalog.ts --check",
|
|
"gen-session-format-catalog": "tsx scripts/gen-session-format-catalog.ts",
|
|
"verify-session-format-catalog": "tsx scripts/gen-session-format-catalog.ts --check",
|
|
"gen-third-party-notices": "tsx scripts/gen-third-party-notices.ts",
|
|
"verify-third-party-notices": "tsx scripts/gen-third-party-notices.ts --check",
|
|
"gen-module-graph": "tsx scripts/gen-module-graph.ts",
|
|
"gen-scoped-events": "tsx scripts/gen-scoped-events.ts",
|
|
"verify-scoped-events": "tsx scripts/gen-scoped-events.ts --check",
|
|
"verify-module-graph": "tsx scripts/gen-module-graph.ts --check",
|
|
"constraints": "tsx scripts/check-workspace-constraints.ts",
|
|
"doc-sync": "tsx scripts/run-gates.ts doc-sync",
|
|
"hygiene": "tsx scripts/run-gates.ts hygiene",
|
|
"publish:npm-baseline": "tsx scripts/publish-npm-baseline.ts",
|
|
"release:dsh": "tsx scripts/release/bump.ts --family dsh",
|
|
"release:vendor": "tsx scripts/release/bump.ts --family vendor",
|
|
"release:verify": "tsx scripts/release/verify.ts",
|
|
"release:pack": "tsx scripts/release/pack.ts",
|
|
"release:verify-packed-install": "tsx scripts/release/verify-packed-install.ts",
|
|
"release:publish": "tsx scripts/release/publish.ts",
|
|
"dsh": "node --import tsx/esm apps/cli/src/bin.ts",
|
|
"demo:ptc": "node scripts/demo-ptc.mjs",
|
|
"demo:inspector": "node --import tsx/esm apps/cli/src/bin.ts web --patch ./packages/experimental/inspector/cordis.source.patch.yml",
|
|
"mock:llm": "node --import tsx packages/test-support/llm-mock-server/src/bin.ts",
|
|
"dev:web": "tsx scripts/dev-web.ts --poll",
|
|
"postinstall": "node scripts/install-lefthook.mjs"
|
|
},
|
|
"devDependencies": {
|
|
"@deepseek-ai/dsh-package-manifest": "workspace:^",
|
|
"@deepseek-ai/dsh-tool-session-query": "workspace:^",
|
|
"@deepseek-ai/dsh-web-fetch-http": "workspace:^",
|
|
"@stylistic/eslint-plugin": "^5.10.0",
|
|
"@testing-library/dom": "^10.4.1",
|
|
"@testing-library/react": "^16.3.2",
|
|
"@types/js-yaml": "^4.0.9",
|
|
"@types/jsdom": "^28.0.3",
|
|
"@types/mdast": "^4.0.4",
|
|
"@types/node": "^22.20.0",
|
|
"@types/spdx-expression-parse": "^4.0.0",
|
|
"@vitest/coverage-v8": "^4.1.8",
|
|
"@yao-pkg/pkg": "6.21.0",
|
|
"@yarnpkg/cli-dist": "4.17.1",
|
|
"eslint-plugin-sonarjs": "^4.1.0",
|
|
"execa": "^10.0.0",
|
|
"fast-check": "^4.8.0",
|
|
"istanbul-lib-report": "^3.0.1",
|
|
"js-yaml": "^4.2.0",
|
|
"jscpd": "^5.0.12",
|
|
"jsdom": "29.1.1",
|
|
"lefthook": "^2.1.9",
|
|
"lightningcss": "^1.32.0",
|
|
"mdast-util-from-markdown": "^2.0.3",
|
|
"mdast-util-gfm": "^3.1.0",
|
|
"mermaid": "11.16.0",
|
|
"micromark-extension-gfm": "^3.0.0",
|
|
"oxlint": "1.76.0",
|
|
"oxlint-tsgolint": "7.0.2001",
|
|
"publint": "^0.3.21",
|
|
"smol-toml": "^1.7.1",
|
|
"spdx-expression-parse": "^5.0.0",
|
|
"tsdown": "^0.22.2",
|
|
"tsx": "^4.22.4",
|
|
"typescript": "^6.0.3",
|
|
"vite-tsconfig-paths": "^6.1.1",
|
|
"vitest": "^4.1.8"
|
|
}
|
|
}
|