{
  "name": "takt",
  "version": "0.74.0",
  "description": "Workflow control for AI coding agents",
  "main": "dist/index.js",
  "types": "dist/index.d.ts",
  "exports": {
    ".": {
      "types": "./dist/index.d.ts",
      "import": "./dist/index.js"
    },
    "./package.json": "./package.json"
  },
  "bin": {
    "takt": "./bin/takt",
    "takt-dev": "./bin/takt",
    "takt-cli": "./dist/app/cli/index.js",
    "takt-acp": "./dist/app/acp/index.js",
    "takt-mcp": "./dist/app/mcp/index.js"
  },
  "scripts": {
    "build": "node scripts/clean-build-output.mjs && tsc && tsc -p tsconfig.opencode-probe.json && node scripts/copy-build-assets.mjs",
    "prebuild": "npm run patch:dependencies",
    "watch": "tsc --watch",
    "prewatch": "npm run patch:dependencies",
    "sync:nix-deps": "node scripts/sync-nix-deps.mjs",
    "analyze:usage": "node dist/commands/analyze-usage.js",
    "eval:prompts:prepare": "node eval/scripts/prepare.mjs",
    "eval:prompts:manager-work-split": "node --test eval/asserts/manager-work-split.test.mjs eval/manager-work-split-prompt.test.mjs eval/providers/manager-work-split.test.mjs eval/manager-work-split-offline.test.mjs eval/suite-registry.test.mjs && node eval/scripts/run-evals.mjs manager-work-split --no-cache --repeat 3",
    "eval:prompts:report-history-inputs:contracts": "node --test eval/scenarios/report-history-inputs/public-artifacts.test.mjs",
    "eval:prompts:merge-ci-recovery:contracts": "node --test eval/asserts/merge-ci-recovery.test.mjs eval/suite-registry.test.mjs",
    "eval:prompts:merge-ci-recovery": "npm run eval:prompts:merge-ci-recovery:contracts && node eval/scripts/run-evals.mjs merge-ci-investigation merge-ci-review --prepare --no-cache --repeat 3",
    "eval:prompts:frontend-mediator-review": "node eval/scripts/run-evals.mjs --prepare frontend-mediator-review --no-cache",
    "eval:prompts:frontend-mediator-coder": "node eval/scripts/run-evals.mjs --prepare frontend-mediator-coder --no-cache",
    "eval:prompts:interactive-topic-boundary": "node --import tsx --test eval/asserts/interactive-topic-boundary.test.mjs eval/suite-registry.test.mjs && node eval/scripts/run-evals.mjs interactive-topic-boundary --no-cache --repeat 3",
    "eval:prompts:db-pagination:contracts": "node --test eval/asserts/db-pagination-fixture.test.mjs eval/asserts/db-pagination-implement.test.mjs eval/providers/pagination-skill-isolation.test.mjs eval/suite-registry.test.mjs",
    "eval:prompts:db-pagination": "npm run eval:prompts:db-pagination:contracts && node eval/scripts/run-evals.mjs --prepare db-pagination db-pagination-adjudication db-pagination-implement --no-cache",
    "eval:prompts": "node eval/scripts/run-evals.mjs --prepare",
    "eval:prompts:retained": "node eval/scripts/run-evals.mjs --prepare --tier retained",
    "eval:prompts:review-external-confirmation": "node eval/scripts/run-evals.mjs review-external-confirmation --prepare",
    "eval:prompts:supervise-external-confirmation": "node eval/scripts/run-evals.mjs supervise-external-confirmation --prepare",
    "eval:prompts:replan-external-confirmation": "node eval/scripts/run-evals.mjs replan-external-confirmation --prepare",
    "eval:prompts:contracts": "node --test eval/providers/adjudicator-no-fix.test.mjs eval/providers/cli-plan-report.test.mjs eval/suite-registry.test.mjs eval/asserts/fix-loop-convergence.test.mjs eval/asserts/remediation-evidence.test.mjs eval/asserts/evidence-judgment.test.mjs eval/asserts/review-proof-boundary.test.mjs eval/asserts/external-confirmation.test.mjs eval/asserts/finding-realistic-premise.test.mjs eval/phase3-judgment-prompt.test.mjs eval/asserts/phase3-judgment.test.mjs eval/scripts/prepare-review-artifact-input-handoff.test.mjs eval/providers/phase-session.test.mjs eval/asserts/phase-awareness.test.mjs",
    "eval:prompts:review-artifact-input-handoff": "node eval/scripts/run-evals.mjs review-artifact-input-handoff --prepare --no-cache --repeat 3 --filter-providers codex-sol-high",
    "eval:prompts:phase3-follow-input": "node eval/scripts/run-evals.mjs phase3-follow-input --no-cache",
    "eval:prompts:write-tests-routing": "npm run build && node eval/scripts/run-evals.mjs write-tests-routing --no-cache",
    "eval:prompts:coding": "node --test eval/asserts/coding-review-metrics.test.mjs && node eval/scripts/prepare.mjs coding-review && node eval/scripts/run-evals.mjs coding",
    "eval:prompts:fix-closure": "node eval/scripts/prepare.mjs fix-closure && node eval/scripts/run-evals.mjs fix-closure",
    "eval:prompts:fix-self-scan": "node eval/scripts/prepare.mjs fix-self-scan && node eval/scripts/run-evals.mjs fix-self-scan",
    "eval:prompts:fix-plan-fresh-findings": "node --test eval/providers/cli-review.test.mjs && node eval/scripts/prepare.mjs fix-plan-fresh-findings && node eval/scripts/run-evals.mjs fix-plan-fresh-findings --no-cache",
    "eval:prompts:fix-plan-boundary-preflight": "node eval/scripts/prepare.mjs fix-plan-boundary-preflight && node eval/scripts/run-evals.mjs fix-plan-boundary-preflight",
    "eval:prompts:fix-plan-cause-check": "node --test eval/providers/cli-review.test.mjs && node eval/scripts/prepare.mjs fix-plan-cause-check && node eval/scripts/run-evals.mjs fix-plan-cause-check --no-cache",
    "eval:prompts:fix-plan-blocker-absorption": "node --test eval/providers/cli-review.test.mjs && node eval/scripts/prepare.mjs fix-plan-blocker-absorption && node eval/scripts/run-evals.mjs fix-plan-blocker-absorption --no-cache",
    "eval:prompts:fix-plan-bounded-proof": "node --test eval/providers/cli-review.test.mjs && node eval/scripts/prepare.mjs fix-plan-bounded-proof && node eval/scripts/run-evals.mjs fix-plan-bounded-proof --no-cache",
    "eval:prompts:fix-plan-impact-closure:contracts": "node --test eval/asserts/fix-plan-impact-closure.test.mjs",
    "eval:prompts:fix-plan-impact-closure": "node --test eval/asserts/fix-plan-impact-closure.test.mjs eval/suite-registry.test.mjs eval/providers/cli-review.test.mjs && node eval/scripts/prepare.mjs fix-plan-impact-closure-primary fix-plan-impact-closure-heldout && node --test eval/asserts/fix-plan-impact-prompt.test.mjs && node eval/scripts/run-evals.mjs fix-plan-impact-closure-primary fix-plan-impact-closure-heldout --no-cache",
    "eval:prompts:fix-loop-convergence": "node eval/scripts/run-evals.mjs fix-loop-convergence",
    "eval:prompts:review-impact-path-coverage": "node --test eval/providers/cli-review.test.mjs eval/asserts/prepare-dynamic-facet-composition.test.mjs && node eval/scripts/prepare.mjs review-impact-path-coverage && node eval/scripts/run-evals.mjs review-impact-path-coverage --no-cache",
    "eval:prompts:initial-review-contract-discovery": "node eval/scripts/prepare.mjs initial-review-contract-discovery && node eval/scripts/run-evals.mjs initial-review-contract-discovery",
    "eval:prompts:testing-review-observable-evidence": "node eval/scripts/prepare.mjs testing-review-observable-evidence && node eval/scripts/run-evals.mjs testing-review-observable-evidence",
    "eval:prompts:state-after-event-plan": "node eval/scripts/prepare.mjs state-after-event-plan && node eval/scripts/run-evals.mjs state-after-event-plan",
    "eval:prompts:state-after-event-plan-config": "node eval/scripts/prepare.mjs state-after-event-plan-config && node eval/scripts/run-evals.mjs state-after-event-plan-config",
    "eval:prompts:state-after-event-write-tests": "node eval/scripts/prepare.mjs state-after-event-write-tests && node eval/scripts/run-evals.mjs state-after-event-write-tests",
    "eval:prompts:state-after-event-testing-review": "node eval/scripts/prepare.mjs state-after-event-testing-review && node eval/scripts/run-evals.mjs state-after-event-testing-review",
    "eval:prompts:initial-plan-contract-closure": "node eval/scripts/prepare.mjs initial-plan-contract-closure && node eval/scripts/run-evals.mjs initial-plan-contract-closure",
    "eval:prompts:replan-contract-closure": "node eval/scripts/prepare.mjs replan-contract-closure && node eval/scripts/run-evals.mjs replan-contract-closure",
    "eval:prompts:issue-plan-samples": "node eval/scripts/prepare.mjs issue-plan-samples && node eval/scripts/run-evals.mjs issue-plan-samples",
    "eval:prompts:plan-report-source-authority": "node eval/scripts/prepare.mjs plan-report-source-authority && node eval/scripts/run-evals.mjs plan-report-source-authority",
    "eval:prompts:write-tests-contract-traceability": "node eval/scripts/prepare.mjs write-tests-contract-traceability && node eval/scripts/run-evals.mjs write-tests-contract-traceability",
    "eval:prompts:default-priority": "node eval/scripts/prepare.mjs write-tests-default-priority && node eval/scripts/run-evals.mjs write-tests-default-priority",
    "eval:prompts:default-priority:codex": "node eval/scripts/prepare.mjs write-tests-default-priority-codex && node eval/scripts/run-evals.mjs write-tests-default-priority-codex",
    "eval:prompts:scope-discipline": "node --test eval/asserts/scope-architecture-search.test.mjs && node eval/scripts/prepare.mjs scope-default-write-tests scope-maintenance-write-tests scope-architecture-search scope-architecture-search-none scope-architecture-search-unrelated scope-architecture-boundary && node eval/scripts/run-evals.mjs scope-default-write-tests scope-maintenance-write-tests scope-architecture-search scope-architecture-search-none scope-architecture-search-unrelated scope-architecture-boundary",
    "eval:prompts:implement-contract-traceability": "node eval/scripts/prepare.mjs implement-contract-traceability implementation-report-contract-traceability && node eval/scripts/run-evals.mjs implement-contract-traceability implementation-report-contract-traceability",
    "eval:prompts:follow-up-review-repair-regression": "node --test eval/providers/cli-review.test.mjs eval/asserts/prepare-dynamic-facet-composition.test.mjs && node eval/scripts/prepare.mjs follow-up-review-repair-regression && node eval/scripts/run-evals.mjs follow-up-review-repair-regression --no-cache",
    "eval:prompts:follow-up-testing-review-repair-regression": "node --test eval/providers/cli-review.test.mjs eval/providers/cli-review-adjudication.test.mjs eval/asserts/prepare-dynamic-facet-composition.test.mjs && node eval/scripts/prepare.mjs follow-up-testing-review-repair-regression follow-up-testing-review-repair-regression-phase2 follow-up-review-adjudication-repair-regression follow-up-review-adjudication-repair-regression-phase2 && node eval/scripts/run-evals.mjs follow-up-testing-review-repair-regression --no-cache",
    "eval:prompts:adjudicator-no-fix:contracts": "npm run build && node --test eval/providers/adjudicator-no-fix.test.mjs eval/providers/cli-review.test.mjs",
    "eval:prompts:adjudicator-no-fix": "node eval/scripts/run-evals.mjs adjudicator-no-fix --prepare --no-cache",
    "eval:prompts:review-adjudication": "node --test eval/providers/cli-review.test.mjs eval/asserts/prepare-dynamic-facet-composition.test.mjs && node eval/scripts/prepare.mjs review-adjudication review-adjudication-phase2 && node eval/scripts/run-evals.mjs review-adjudication review-adjudication-report --no-cache",
    "eval:prompts:review-adjudication-applicable-inputs": "node eval/scripts/run-evals.mjs review-adjudication-applicable-inputs --prepare --no-cache",
    "eval:prompts:fix-verification-applicable-inputs": "node eval/scripts/run-evals.mjs fix-verification-applicable-inputs --prepare --no-cache",
    "eval:prompts:fix-verifier-family-boundary": "node eval/scripts/prepare.mjs fix-verifier-family-boundary && node eval/scripts/run-evals.mjs fix-verifier-family-boundary",
    "eval:prompts:fix-verifier-state-closure": "node eval/scripts/prepare.mjs fix-verifier-state-closure && node eval/scripts/run-evals.mjs fix-verifier-state-closure",
    "eval:prompts:fix-verifier-state-routing": "node eval/scripts/prepare.mjs fix-verifier-state-routing && node eval/scripts/run-evals.mjs fix-verifier-state-routing",
    "eval:prompts:fix-verifier-model-matrix": "node eval/scripts/prepare.mjs fix-verifier-state-closure fix-verifier-state-routing && node eval/scripts/run-evals.mjs fix-verifier-model-matrix fix-verifier-routing-model-matrix --no-cache",
    "eval:prompts:finding-premise-scope": "node eval/scripts/run-evals.mjs finding-premise-scope --prepare --no-cache",
    "eval:prompts:finding-realistic-premise": "node eval/scripts/run-evals.mjs --prepare finding-realistic-premise --no-cache",
    "eval:prompts:review-adjudication-binding": "node eval/scripts/prepare.mjs review-adjudication-binding && node eval/scripts/run-evals.mjs review-adjudication-binding",
    "eval:prompts:security-review-method": "node eval/scripts/prepare.mjs security-review-method && node eval/scripts/run-evals.mjs security-review-method",
    "eval:prompts:security-threat-model": "node eval/scripts/run-evals.mjs security-threat-model --prepare --no-cache",
    "eval:prompts:secondary-platform-adjudication": "node eval/scripts/run-evals.mjs secondary-platform-adjudication --prepare --no-cache",
    "eval:prompts:task-instruction-gherkin": "node eval/scripts/run-evals.mjs task-instruction-gherkin",
    "eval:prompts:final-readiness-supervision": "node --test eval/providers/cli-review.test.mjs eval/asserts/prepare-dynamic-facet-composition.test.mjs && node eval/scripts/prepare.mjs final-readiness-supervision final-readiness-supervision-phase2 && node eval/scripts/run-evals.mjs final-readiness-supervision final-readiness-preservation --no-cache",
    "eval:prompts:initial-review-external-identity-wiring": "node eval/scripts/prepare.mjs initial-review-external-identity-wiring && node eval/scripts/run-evals.mjs initial-review-external-identity-wiring",
    "eval:prompts:final-readiness-precision": "node eval/scripts/prepare.mjs final-readiness-precision && node eval/scripts/run-evals.mjs final-readiness-precision",
    "eval:tell": "vitest run --config vitest.config.tell-eval.ts",
    "test": "npm run test:type-contracts && npm run test:types && node scripts/run-npm-test.mjs",
    "pretest": "npm run patch:dependencies",
    "test:type-contracts": "tsc --noEmit -p tsconfig.type-contracts.json",
    "test:types": "node --max-old-space-size=4096 ./node_modules/typescript/bin/tsc --noEmit -p tsconfig.tests.json",
    "test:pi-sdk-smoke": "node scripts/pi-sdk-cross-platform-smoke.mjs",
    "test:deepseek-harness:live": "npm test -- src/__tests__/deepseek-harness-live-smoke.test.ts",
    "test:unit": "vitest run --config vitest.config.unit.parallel.ts",
    "test:unit:parallel": "vitest run --config vitest.config.unit.parallel.ts",
    "test:it": "npm run test:it:light",
    "pretest:it": "npm run patch:dependencies",
    "test:it:light": "vitest run --config vitest.config.it.parallel.ts",
    "test:it:heavy": "npm run test:it:heavy:parallel && npm run test:it:heavy:serial",
    "test:it:heavy:parallel": "vitest run --config vitest.config.it.heavy.parallel.ts",
    "test:it:heavy:serial": "node scripts/run-it-serial-groups.mjs",
    "test:it:heavy:serial:git": "vitest run --config vitest.config.it.serial.git.ts",
    "test:it:heavy:serial:workflow": "vitest run --config vitest.config.it.serial.workflow.ts",
    "test:it:all": "npm run test:it && npm run test:it:heavy",
    "test:it:parallel": "npm run test:it:light",
    "test:it:serial": "npm run test:it:heavy:serial",
    "test:it:serial:git": "npm run test:it:heavy:serial:git",
    "test:it:serial:workflow": "npm run test:it:heavy:serial:workflow",
    "test:opencode-probe": "node tools/opencode-probe/run-smoke.mjs",
    "test:opencode-v2-probe": "node tools/opencode-probe/v2-smoke.mjs",
    "test:prompt-evals": "npm run test:opencode-probe",
    "test:watch": "vitest --config vitest.config.unit.parallel.ts",
    "test:e2e": "tmp=\"$(mktemp -t takt-e2e.XXXXXX)\"; npm run test:e2e:mock >\"$tmp\" 2>&1; code=$?; cat \"$tmp\"; if grep -q \"error connecting to api.github.com\" \"$tmp\"; then echo \"[takt] GitHub connectivity error detected in E2E output\"; code=1; fi; rm -f \"$tmp\"; if [ \"$code\" -eq 0 ]; then msg='test:e2e passed'; else msg=\"test:e2e failed (exit=$code)\"; fi; if command -v osascript >/dev/null 2>&1; then osascript -e \"display notification \\\"$msg\\\" with title \\\"takt\\\" subtitle \\\"E2E\\\"\" >/dev/null 2>&1 || true; fi; echo \"[takt] $msg\"; exit $code",
    "test:e2e:smoke": "vitest run --config vitest.config.e2e.smoke.ts --outputFile.json=e2e/results/smoke.json",
    "test:e2e:mock": "node scripts/run-e2e-mock-shards.mjs",
    "test:e2e:mock:serial": "TAKT_E2E_PROVIDER=mock vitest run --config vitest.config.e2e.mock.ts --outputFile.json=e2e/results/mock.json",
    "test:e2e:all": "npm run test:e2e:mock && npm run test:e2e:provider",
    "test:global-install": "node scripts/global-install-check.mjs",
    "test:managed-install": "node scripts/managed-install-check.mjs",
    "test:e2e:provider": "npm run test:e2e:provider:claude-headless && npm run test:e2e:provider:claude-sdk && npm run test:e2e:provider:codex && npm run test:e2e:provider:opencode",
    "test:e2e:provider:claude": "TAKT_E2E_PROVIDER=claude vitest run --config vitest.config.e2e.provider.ts --outputFile.json=e2e/results/claude.json",
    "test:e2e:provider:claude-headless": "TAKT_E2E_PROVIDER=claude-headless vitest run --config vitest.config.e2e.provider.ts --outputFile.json=e2e/results/claude-headless.json",
    "test:e2e:provider:claude-sdk": "TAKT_E2E_PROVIDER=claude-sdk vitest run --config vitest.config.e2e.provider.ts --outputFile.json=e2e/results/claude-sdk.json",
    "test:e2e:provider:codex": "TAKT_E2E_PROVIDER=codex vitest run --config vitest.config.e2e.provider.ts --outputFile.json=e2e/results/codex.json",
    "test:e2e:provider:opencode": "TAKT_E2E_PROVIDER=opencode TAKT_E2E_MODEL=${TAKT_E2E_MODEL:-kimi-code-plan-global/k3} TAKT_OPENCODE_VERSION=${TAKT_OPENCODE_VERSION:-v2} vitest run --config vitest.config.e2e.provider.ts --outputFile.json=e2e/results/opencode.json",
    "test:e2e:provider:cursor": "TAKT_AUTO_PR=false TAKT_E2E_PROVIDER=cursor vitest run --config vitest.config.e2e.cursor.ts --outputFile.json=e2e/results/cursor.json",
    "test:e2e:claude": "npm run test:e2e:provider:claude",
    "test:e2e:codex": "npm run test:e2e:provider:codex",
    "test:e2e:opencode": "npm run test:e2e:provider:opencode",
    "test:e2e:cursor": "npm run test:e2e:provider:cursor",
    "lint": "eslint src/",
    "check:release": "node scripts/run-release-check.mjs",
    "prepublishOnly": "npm run lint && npm run build",
    "patch:dependencies": "patch-package",
    "postinstall": "node -e \"const fs = require('node:fs'); if (fs.existsSync('patches/ink+7.1.1.patch') && fs.existsSync('node_modules/patch-package/index.js')) require('node:child_process').execSync('npm run patch:dependencies', {stdio: 'inherit'});\"",
    "canary:coder": "node scripts/canary-coder.mjs",
    "eval:prompts:resource-boundary:contracts": "node --test eval/asserts/resource-flow-fixture.test.mjs",
    "eval:prompts:resource-boundary": "npm run eval:prompts:resource-boundary:contracts && node eval/scripts/run-evals.mjs --prepare resource-flow-review resource-flow-adjudication --no-cache",
    "eval:prompts:phase-awareness:contracts": "node --test eval/providers/phase-session.test.mjs eval/asserts/phase-awareness.test.mjs",
    "eval:prompts:phase-awareness": "node eval/scripts/prepare.mjs phase-awareness && node eval/scripts/phase-awareness-redgreen.mjs --no-cache",
    "eval:prompts:phase-awareness:smoke": "node eval/scripts/prepare.mjs phase-awareness && node eval/scripts/phase-awareness-redgreen.mjs --smoke --no-cache"
  },
  "keywords": [
    "ai",
    "ai-agents",
    "agent",
    "agent-orchestration",
    "anthropic",
    "automation",
    "claude",
    "claude-code",
    "cli",
    "code-review",
    "codex",
    "coding-agents",
    "deepseek",
    "cursor",
    "developer-tools",
    "github-copilot",
    "kiro",
    "llm",
    "mcp",
    "model-context-protocol",
    "openai",
    "opencode",
    "orchestration",
    "pi",
    "workflow",
    "workflow-automation"
  ],
  "author": "nrslib <38722970+nrslib@users.noreply.github.com>",
  "license": "MIT",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/nrslib/takt.git"
  },
  "bugs": {
    "url": "https://github.com/nrslib/takt/issues"
  },
  "homepage": "https://github.com/nrslib/takt#readme",
  "type": "module",
  "imports": {
    "#faceted-prompting": {
      "types": "./vendor/faceted-prompting/dist/index.d.ts",
      "default": "./vendor/faceted-prompting/dist/index.js"
    },
    "#faceted-prompting/cli/facet-includes": {
      "types": "./vendor/faceted-prompting/dist/cli/facet-includes.d.ts",
      "default": "./vendor/faceted-prompting/dist/cli/facet-includes.js"
    }
  },
  "engines": {
    "node": ">=22.22.0"
  },
  "files": [
    "dist/",
    "managed/",
    "bin/",
    "builtins/",
    "docs/assets/takt-logo-dark.svg",
    "web-ui/",
    "vendor/faceted-prompting/"
  ],
  "dependencies": {
    "@agentclientprotocol/sdk": "^1.3.0",
    "@informalsystems/quint": "0.32.0",
    "@modelcontextprotocol/sdk": "1.32.1",
    "@opentelemetry/api": "^1.9.1",
    "@opentelemetry/exporter-metrics-otlp-http": "^0.222.0",
    "@opentelemetry/exporter-trace-otlp-http": "^0.222.0",
    "@opentelemetry/sdk-metrics": "^2.11.0",
    "@opentelemetry/sdk-node": "^0.222.0",
    "@opentelemetry/sdk-trace-base": "^2.11.0",
    "@slack/socket-mode": "3.1.0",
    "@slack/web-api": "8.2.0",
    "ajv": "^6.12.6",
    "chalk": "^5.3.0",
    "commander": "^12.1.0",
    "cross-spawn": "^7.0.6",
    "ink": "7.1.1",
    "react": "19.2.8",
    "semver": "^7.8.5",
    "string-width": "^8.2.2",
    "traced-config": "^0.3.0",
    "wanakana": "^5.3.1",
    "wrap-ansi": "10.0.2",
    "yaml": "^2.9.0",
    "zod": "^4.3.6"
  },
  "devDependencies": {
    "@deepseek-ai/cordis": "4.0.5",
    "@deepseek-ai/dsh": "0.2.1-rc.3",
    "@deepseek-ai/dsh-llm": "0.2.1-rc.3",
    "@deepseek-ai/dsh-scope": "0.2.1-rc.3",
    "@deepseek-ai/dsh-sdk-client": "0.2.1-rc.3",
    "@deepseek-ai/dsh-sdk-protocol": "0.2.1-rc.3",
    "@deepseek-ai/dsh-session": "0.2.1-rc.3",
    "@deepseek-ai/dsh-subagent": "0.2.1-rc.3",
    "@eslint/js": "^9.39.2",
    "@opencode/plugin": "2.0.18",
    "@types/cross-spawn": "^6.0.6",
    "@types/node": "^22.0.0",
    "@types/react": "^19.2.18",
    "@types/semver": "^7.7.1",
    "@types/wanakana": "^4.0.6",
    "@typescript-eslint/eslint-plugin": "^8.0.0",
    "@typescript-eslint/parser": "^8.0.0",
    "@xterm/headless": "^6.0.0",
    "eslint": "^9.0.0",
    "ink-testing-library": "^4.0.0",
    "node-pty": "^1.2.0-beta.15",
    "patch-package": "^8.0.1",
    "playwright": "1.61.1",
    "promptfoo": "^0.121.17",
    "tsx": "4.22.4",
    "typescript": "^5.5.0",
    "typescript-eslint": "^8.53.1",
    "vitest": "^3.2.6",
    "@anthropic-ai/claude-agent-sdk": "0.3.300",
    "@openai/codex-sdk": "0.164.0",
    "@opencode-ai/sdk": "1.18.28",
    "@opencode/client": "2.0.18",
    "@earendil-works/pi-ai": "1.4.0",
    "@earendil-works/pi-coding-agent": "1.4.0",
    "marked": "18.0.11"
  },
  "bundleDependencies": [
    "@modelcontextprotocol/sdk",
    "ink",
    "react",
    "@informalsystems/quint",
    "wrap-ansi"
  ],
  "overrides": {
    "@earendil-works/pi-agent-core": "1.4.0",
    "@earendil-works/pi-codemode": "1.4.0",
    "@earendil-works/pi-mcp": "1.4.0",
    "@earendil-works/pi-telemetry": "1.4.0",
    "@earendil-works/pi-tui": "1.4.0",
    "fflate": "0.8.3",
    "hono": "^4.12.25",
    "vite": "6.4.3",
    "esbuild": "0.28.1",
    "adm-zip": "^0.6.1",
    "get-uri": {
      "basic-ftp": "^6.2.2"
    },
    "promptfoo": {
      "js-yaml": "^5.4.2"
    }
  }
}
