Files
AgentCompany/package.json
T
ZacharyZhang-NY e7f879bed0 Build minimal LLM eval harness scaffold (B5) — fixtures recorded separately
Land the B5 harness skeleton: fixture loader (strict JSONL contract with
meta header + ordered turn records + assertions tail), replay-client that
swaps in for pi-ai's streamSimple by replaying recorded assistant turns,
structural assertion judge (tool_called / no_tool_called /
message_contains_substring / tool_call_arg_matches / trace_max_turns), an
eval-runner that sums the token ledger and produces an EvalResult, a
vitest driver (tests/eval/harness.test.ts) that discovers *.jsonl
fixtures, and a record-fixture CLI that writes fixture meta headers.

Hard contracts:
- No fallback: replay-client and fixture-loader throw on exhaustion /
  malformed input rather than synthesizing defaults.
- No mock: types reuse @mariozechner/pi-ai AgentMessage / ToolCall
  verbatim; shadow types are forbidden.
- No fake fixture data: tests/eval/fixtures/ ships only README +
  .gitkeep. Real traces are recorded by the user against live providers.

package.json adds test:eval (vitest --passWithNoTests so an empty
fixture dir is green) and eval:record (CLI entrypoint). electron-builder
already excludes tests/ via its files: glob — fixtures never enter the
shipped .asar.
2026-04-20 11:39:53 -04:00

89 lines
3.4 KiB
JSON

{
"name": "agent-company",
"version": "0.4.167",
"private": true,
"type": "module",
"description": "Cross-platform Electron desktop control plane for local-first AI agent companies.",
"author": {
"name": "AgentCompany",
"email": "dev@agentcompany.ai"
},
"main": "out/main/index.js",
"scripts": {
"assets:generate": "python3 scripts/generate-icons.py",
"dev": "electron-vite dev",
"build:verify": "electron-vite build",
"build": "electron-vite build && node scripts/build-desktop.mjs",
"build:dir": "electron-vite build && node scripts/build-desktop.mjs --dir",
"build:current": "node scripts/build-all-platforms.mjs",
"release:cloudflare": "node scripts/release-public-cloudflare.mjs && node scripts/release-boss.mjs",
"release:cloudflare:public": "node scripts/release-public-cloudflare.mjs",
"release:boss": "node scripts/release-boss.mjs",
"release:local": "node scripts/release-local.mjs",
"lint": "eslint .",
"lint:fix": "eslint . --fix",
"test": "node --disable-warning=ExperimentalWarning ./node_modules/vitest/vitest.mjs run",
"typecheck": "tsc --noEmit",
"test:unit": "node --disable-warning=ExperimentalWarning ./node_modules/vitest/vitest.mjs run --config vitest.config.ts tests/unit",
"test:integration": "node --disable-warning=ExperimentalWarning ./node_modules/vitest/vitest.mjs run --config vitest.config.ts tests/integration",
"test:eval": "node --disable-warning=ExperimentalWarning ./node_modules/vitest/vitest.mjs run --config vitest.config.ts tests/eval --passWithNoTests",
"eval:record": "node --disable-warning=ExperimentalWarning --experimental-strip-types tests/eval/record-fixture.ts",
"test:e2e": "node --no-warnings ./node_modules/@playwright/test/cli.js test -c tests/e2e/playwright.config.ts",
"test:run": "pnpm test:unit && pnpm test:integration && pnpm test:e2e",
"verify": "pnpm typecheck && pnpm lint && pnpm test:unit && pnpm test:integration && pnpm test:e2e",
"verify:release": "pnpm verify && pnpm build:dir",
"postinstall": "node scripts/postinstall.mjs"
},
"dependencies": {
"@mariozechner/pi-agent-core": "0.67.68",
"@mariozechner/pi-ai": "0.67.68",
"@mariozechner/pi-coding-agent": "0.67.68",
"@phosphor-icons/react": "2.1.10",
"@tanstack/react-virtual": "^3.13.23",
"electron-log": "5.4.3",
"electron-updater": "6.8.3",
"framer-motion": "12.36.0",
"react": "19.2.4",
"react-dom": "19.2.4",
"react-markdown": "^10.1.0",
"recharts": "3.8.1",
"remark-gfm": "^4.0.1",
"zod": "4.3.6",
"zustand": "^5.0.12"
},
"devDependencies": {
"@eslint/js": "9.38.0",
"@playwright/test": "1.58.2",
"@tailwindcss/typography": "^0.5.19",
"@tailwindcss/vite": "4.2.1",
"@types/node": "^25.2.3",
"@types/react": "^19.2.2",
"@types/react-dom": "^19.2.2",
"@vitejs/plugin-react": "^5.0.0",
"electron": "39.8.0",
"electron-builder": "26.8.1",
"electron-vite": "5.0.0",
"eslint": "9.38.0",
"eslint-plugin-react-hooks": "7.0.0",
"eslint-plugin-react-refresh": "0.4.24",
"globals": "16.4.0",
"tailwindcss": "4.2.1",
"typescript": "5.9.3",
"typescript-eslint": "8.46.1",
"vite": "^7.0.0",
"vitest": "4.1.0"
},
"engines": {
"node": ">=22.0.0",
"pnpm": ">=10.0.0"
},
"packageManager": "pnpm@10.24.0",
"pnpm": {
"onlyBuiltDependencies": [
"electron",
"electron-winstaller",
"esbuild"
]
}
}