{
  "name": "@cursor/july",
  "version": "0.2.22",
  "description": "Build, test, and deploy BDK bots and agents as code on Cursor's agent harness.",
  "license": "SEE LICENSE IN LICENSE.md",
  "repository": {
    "type": "git",
    "url": "https://github.com/cursor/cursor"
  },
  "homepage": "https://cursor.com",
  "type": "module",
  "main": "dist/index.js",
  "module": "dist/index.js",
  "types": "./dist/index.d.ts",
  "bin": {
    "bdk": "./dist/bin/agent-serve.js",
    "agent-sdk": "./dist/bin/agent-sdk.js"
  },
  "publishConfig": {
    "access": "public"
  },
  "files": [
    "dist/**/*",
    "!dist/playground-central/**",
    "!dist/internal/tenant-mcp/**",
    "!dist/internal/tenant-slack/**",
    "!dist/internal/grokbot/**",
    "!dist/internal/review-comments*",
    "!dist/internal/shallow-clone.*",
    "!dist/internal/managed-delivery.*",
    "!dist/filesystem-executors.*",
    "skills/**/*",
    "schemas/**/*.json",
    "templates/**/*",
    "!templates/pr-autofixer/README.md",
    "docs/**/*.md",
    "!docs/.cursor/**",
    "!docs/design/**",
    "!docs/templates/pr-autofixer.md",
    "scripts/install-cursor-skills.mjs",
    "package.json",
    "LICENSE.md",
    "README.md",
    "AGENTS.md"
  ],
  "exports": {
    ".": {
      "anysphere-source": "./src/index.ts",
      "types": "./dist/index.d.ts",
      "import": "./dist/index.js",
      "default": "./dist/index.js"
    },
    "./executors": {
      "anysphere-source": "./src/filesystem-executors.ts",
      "bun": "./dist/executors.js",
      "types": "./dist/executors.d.ts",
      "import": "./dist/executors.js",
      "default": "./dist/executors.js"
    },
    "./internal/cursor-hosted": {
      "anysphere-source": "./src/storage-backends/cursor-hosted.ts",
      "bun": "./dist/storage-backends/cursor-hosted.js",
      "types": "./dist/storage-backends/cursor-hosted.d.ts",
      "import": "./dist/storage-backends/cursor-hosted.js",
      "default": "./dist/storage-backends/cursor-hosted.js"
    },
    "./internal/file-kv": {
      "anysphere-source": "./src/storage-backends/file-kv.ts",
      "bun": "./dist/storage-backends/file-kv.js",
      "types": "./dist/storage-backends/file-kv.d.ts",
      "import": "./dist/storage-backends/file-kv.js",
      "default": "./dist/storage-backends/file-kv.js"
    },
    "./internal/hosted-delivery-protocol": {
      "anysphere-source": "./src/internal/hosted-delivery-protocol.ts",
      "bun": "./dist/internal/hosted-delivery-protocol.js",
      "types": "./dist/internal/hosted-delivery-protocol.d.ts",
      "import": "./dist/internal/hosted-delivery-protocol.js",
      "default": "./dist/internal/hosted-delivery-protocol.js"
    },
    "./internal/memory-kv": {
      "anysphere-source": "./src/kv/memory-kv.ts",
      "bun": "./dist/kv/memory-kv.js",
      "types": "./dist/kv/memory-kv.d.ts",
      "import": "./dist/kv/memory-kv.js",
      "default": "./dist/kv/memory-kv.js"
    },
    "./internal/otel": {
      "anysphere-source": "./src/otel.ts",
      "bun": "./dist/otel.js",
      "types": "./dist/otel.d.ts",
      "import": "./dist/otel.js",
      "default": "./dist/otel.js"
    },
    "./internal/storage": {
      "anysphere-source": "./src/internal/storage.ts",
      "bun": "./dist/internal/storage.js",
      "types": "./dist/internal/storage.d.ts",
      "import": "./dist/internal/storage.js",
      "default": "./dist/internal/storage.js"
    },
    "./tools": {
      "anysphere-source": "./src/tools.ts",
      "types": "./dist/tools.d.ts",
      "import": "./dist/tools.js",
      "default": "./dist/tools.js"
    },
    "./channels": {
      "anysphere-source": "./src/channels.ts",
      "types": "./dist/channels.d.ts",
      "import": "./dist/channels.js",
      "default": "./dist/channels.js"
    },
    "./channels/slack": {
      "anysphere-source": "./src/channels/slack/index.ts",
      "types": "./dist/channels/slack/index.d.ts",
      "import": "./dist/channels/slack/index.js",
      "default": "./dist/channels/slack/index.js"
    },
    "./channels/github": {
      "anysphere-source": "./src/channels/github/index.ts",
      "types": "./dist/channels/github/index.d.ts",
      "import": "./dist/channels/github/index.js",
      "default": "./dist/channels/github/index.js"
    },
    "./channels/origin": {
      "anysphere-source": "./src/channels/origin/index.ts",
      "types": "./dist/channels/origin/index.d.ts",
      "import": "./dist/channels/origin/index.js",
      "default": "./dist/channels/origin/index.js"
    },
    "./channels/gitlab": {
      "anysphere-source": "./src/channels/gitlab/index.ts",
      "types": "./dist/channels/gitlab/index.d.ts",
      "import": "./dist/channels/gitlab/index.js",
      "default": "./dist/channels/gitlab/index.js"
    },
    "./channels/bitbucket": {
      "anysphere-source": "./src/channels/bitbucket/index.ts",
      "types": "./dist/channels/bitbucket/index.d.ts",
      "import": "./dist/channels/bitbucket/index.js",
      "default": "./dist/channels/bitbucket/index.js"
    },
    "./channels/deployments": {
      "anysphere-source": "./src/channels/deployments/index.ts",
      "types": "./dist/channels/deployments/index.d.ts",
      "import": "./dist/channels/deployments/index.js",
      "default": "./dist/channels/deployments/index.js"
    },
    "./channels/change-monitors": {
      "anysphere-source": "./src/channels/change-monitors/index.ts",
      "types": "./dist/channels/change-monitors/index.d.ts",
      "import": "./dist/channels/change-monitors/index.js",
      "default": "./dist/channels/change-monitors/index.js"
    },
    "./channels/runs": {
      "anysphere-source": "./src/channels/runs/index.ts",
      "bun": "./dist/channels/runs/index.js",
      "types": "./dist/channels/runs/index.d.ts",
      "import": "./dist/channels/runs/index.js",
      "default": "./dist/channels/runs/index.js"
    },
    "./channels/issues": {
      "anysphere-source": "./src/channels/issues/index.ts",
      "types": "./dist/channels/issues/index.d.ts",
      "import": "./dist/channels/issues/index.js",
      "default": "./dist/channels/issues/index.js"
    },
    "./skills": {
      "anysphere-source": "./src/skills.ts",
      "types": "./dist/skills.d.ts",
      "import": "./dist/skills.js",
      "default": "./dist/skills.js"
    },
    "./extensions": {
      "anysphere-source": "./src/extensions.ts",
      "bun": "./dist/extensions.js",
      "types": "./dist/extensions.d.ts",
      "import": "./dist/extensions.js",
      "default": "./dist/extensions.js"
    },
    "./extensions/cursor-cloud-agents": {
      "anysphere-source": "./src/extensions/cursor-cloud-agents/extension.ts",
      "bun": "./dist/extensions/cursor-cloud-agents/extension.js",
      "types": "./dist/extensions/cursor-cloud-agents/extension.d.ts",
      "import": "./dist/extensions/cursor-cloud-agents/extension.js",
      "default": "./dist/extensions/cursor-cloud-agents/extension.js"
    },
    "./extensions/cursor-grokbot-agents": {
      "anysphere-source": "./src/extensions/cursor-grokbot-agents/extension.ts",
      "bun": "./dist/extensions/cursor-grokbot-agents/extension.js",
      "types": "./dist/extensions/cursor-grokbot-agents/extension.d.ts",
      "import": "./dist/extensions/cursor-grokbot-agents/extension.js",
      "default": "./dist/extensions/cursor-grokbot-agents/extension.js"
    },
    "./extensions/improve": {
      "anysphere-source": "./src/extensions/improve/extension.ts",
      "bun": "./dist/extensions/improve/extension.js",
      "types": "./dist/extensions/improve/extension.d.ts",
      "import": "./dist/extensions/improve/extension.js",
      "default": "./dist/extensions/improve/extension.js"
    },
    "./extensions/jev": {
      "anysphere-source": "./src/extensions/jev/extension.ts",
      "bun": "./dist/extensions/jev/extension.js",
      "types": "./dist/extensions/jev/extension.d.ts",
      "import": "./dist/extensions/jev/extension.js",
      "default": "./dist/extensions/jev/extension.js"
    },
    "./extensions/slack-communication": {
      "anysphere-source": "./src/extensions/slack-communication/extension.ts",
      "bun": "./dist/extensions/slack-communication/extension.js",
      "types": "./dist/extensions/slack-communication/extension.d.ts",
      "import": "./dist/extensions/slack-communication/extension.js",
      "default": "./dist/extensions/slack-communication/extension.js"
    },
    "./schedules": {
      "anysphere-source": "./src/schedules.ts",
      "types": "./dist/schedules.d.ts",
      "import": "./dist/schedules.js",
      "default": "./dist/schedules.js"
    },
    "./reminders": {
      "anysphere-source": "./src/reminders.ts",
      "types": "./dist/reminders.d.ts",
      "import": "./dist/reminders.js",
      "default": "./dist/reminders.js"
    },
    "./connections": {
      "anysphere-source": "./src/connections.ts",
      "types": "./dist/connections.d.ts",
      "import": "./dist/connections.js",
      "default": "./dist/connections.js"
    },
    "./hooks": {
      "anysphere-source": "./src/hooks.ts",
      "types": "./dist/hooks.d.ts",
      "import": "./dist/hooks.js",
      "default": "./dist/hooks.js"
    },
    "./memory": {
      "anysphere-source": "./src/memory.ts",
      "types": "./dist/memory.d.ts",
      "import": "./dist/memory.js",
      "default": "./dist/memory.js"
    },
    "./prompt": {
      "anysphere-source": "./src/prompt.ts",
      "types": "./dist/prompt.d.ts",
      "import": "./dist/prompt.js",
      "default": "./dist/prompt.js"
    },
    "./evals": {
      "anysphere-source": "./src/evals.ts",
      "types": "./dist/evals.d.ts",
      "import": "./dist/evals.js",
      "default": "./dist/evals.js"
    },
    "./evals/reporters": {
      "anysphere-source": "./src/evals/reporters.ts",
      "types": "./dist/evals/reporters.d.ts",
      "import": "./dist/evals/reporters.js",
      "default": "./dist/evals/reporters.js"
    },
    "./evals/loaders": {
      "anysphere-source": "./src/evals/loaders.ts",
      "types": "./dist/evals/loaders.d.ts",
      "import": "./dist/evals/loaders.js",
      "default": "./dist/evals/loaders.js"
    },
    "./artifacts": {
      "anysphere-source": "./src/artifacts.ts",
      "types": "./dist/artifacts.d.ts",
      "import": "./dist/artifacts.js",
      "default": "./dist/artifacts.js"
    },
    "./kv": {
      "anysphere-source": "./src/kv.ts",
      "bun": "./dist/kv.js",
      "types": "./dist/kv.d.ts",
      "import": "./dist/kv.js",
      "default": "./dist/kv.js"
    },
    "./otel": {
      "anysphere-source": "./src/otel-public.ts",
      "types": "./dist/otel-public.d.ts",
      "import": "./dist/otel-public.js",
      "default": "./dist/otel-public.js"
    },
    "./package.json": {
      "anysphere-source": "./package.json",
      "bun": "./package.json",
      "types": "./package.json",
      "import": "./package.json",
      "default": "./package.json"
    }
  },
  "engines": {
    "node": ">=22.13"
  },
  "dependencies": {
    "@bazel/runfiles": "6.5.0",
    "@cursor/sdk": "1.0.37",
    "@modelcontextprotocol/sdk": "1.30.0",
    "@octokit/auth-app": "^7.2.0",
    "@octokit/rest": "^21.1.1",
    "@opentelemetry/api": "^1.9.0",
    "@opentelemetry/api-logs": "^0.208.0",
    "@opentelemetry/core": "^2.6.1",
    "@opentelemetry/exporter-logs-otlp-http": "^0.208.0",
    "@opentelemetry/exporter-logs-otlp-proto": "^0.208.0",
    "@opentelemetry/exporter-metrics-otlp-http": "^0.208.0",
    "@opentelemetry/exporter-metrics-otlp-proto": "^0.208.0",
    "@opentelemetry/exporter-trace-otlp-http": "^0.208.0",
    "@opentelemetry/exporter-trace-otlp-proto": "^0.208.0",
    "@opentelemetry/resources": "^2.6.1",
    "@opentelemetry/sdk-logs": "^0.208.0",
    "@opentelemetry/sdk-metrics": "^2.2.0",
    "@opentelemetry/sdk-trace-base": "^2.6.1",
    "@opentelemetry/sdk-trace-node": "^2.6.1",
    "@opentelemetry/semantic-conventions": "^1.27.0",
    "@slack/socket-mode": "^2.0.7",
    "@slack/web-api": "^7.18.0",
    "croner": "^8.0.1",
    "esbuild": "^0.25.0",
    "javascript-time-ago": "^2.6.4",
    "js-yaml": "4.3.2",
    "minimatch": "^10.2.5",
    "ms": "^2.1.3",
    "proper-lockfile": "^4.1.2",
    "slackify-markdown": "^5.0.0",
    "tsx": "^4.0.0",
    "zod": "^3.25.0",
    "zod-to-json-schema": "^3.24.5"
  },
  "devDependencies": {
    "@braintree/sanitize-url": "7.1.2",
    "@cursor/sdk-darwin-arm64": "1.0.37",
    "@cursor/sdk-darwin-x64": "1.0.37",
    "@cursor/sdk-linux-arm64": "1.0.37",
    "@cursor/sdk-linux-x64": "1.0.37",
    "@cursor/sdk-win32-x64": "1.0.37",
    "@stylexswc/rs-compiler": "^0.18.0",
    "@tanstack/react-virtual": "3.13.23",
    "@types/js-yaml": "4.0.9",
    "@types/ms": "^2.1.0",
    "@types/node": "22.14.1",
    "@types/pg": "^8.16.0",
    "@types/proper-lockfile": "^4.1.4",
    "@types/react": "^19.0.0",
    "@types/react-dom": "^19.0.0",
    "@typescript/native": "npm:typescript@^7.0.2",
    "@vitejs/plugin-react": "^5.1.2",
    "cytoscape": "3.33.3",
    "cytoscape-cose-bilkent": "4.1.0",
    "dayjs": "1.11.20",
    "mermaid": "^11.14.0",
    "pg": "^8.18.0",
    "pretty-ms": "^9.2.0",
    "react": "^19.2.1",
    "react-dom": "^19.2.1",
    "react-markdown": "^10.1.0",
    "rehype-highlight": "^7.0.2",
    "remark-gfm": "^4.0.1",
    "typescript": "npm:@typescript/typescript6@^6.0.2",
    "vite": "^7.3.0",
    "vitepress": "1.6.4",
    "vitepress-plugin-mermaid": "^2.0.17",
    "vitest": "^4.0.18",
    "yaml": "^2.4.2",
    "zustand": "^5.0.9",
    "@anysphere/agent-exec": "1.0.0",
    "@anysphere/context": "1.0.0",
    "@anysphere/ui": "1.0.0",
    "@anysphere/agent-store-sync": "1.0.0",
    "@anysphere/proto": "1.0.0"
  },
  "scripts": {
    "build": "tsc -p tsconfig.build.json && node scripts/bundle-publish-shims.mjs && node scripts/copy-extension-assets.mjs && pnpm run build:playground && pnpm run docs:build",
    "build:dist": "node scripts/build-hosted-dist.mjs",
    "postinstall": "node -e \"try{const p='./scripts/install-cursor-skills.mjs';if(require('fs').existsSync(p))require('child_process').execFileSync(process.execPath,[p],{stdio:'inherit'})}catch{}\"",
    "build:playground": "vite build --config playground/vite.config.ts",
    "build:playground:central": "vite build --mode central --config playground/vite.config.ts",
    "dev:playground": "vite --config playground/vite.config.ts",
    "check": "oxlint src && tsc --noEmit && tsc --noEmit -p playground/tsconfig.json",
    "docs:dev": "vitepress dev docs",
    "docs:build": "vitepress build docs",
    "docs:preview": "vitepress preview docs",
    "docs:verify-links": "node scripts/verify-docs-links.mjs",
    "fix": "oxlint --fix src && oxfmt --write --no-error-on-unmatched-pattern src",
    "test": "vitest run --passWithNoTests",
    "type-check": "tsc --noEmit && tsc --noEmit -p playground/tsconfig.json",
    "build-dev": "echo noop",
    "build-types": "tsc -p tsconfig.build.json --emitDeclarationOnly",
    "verify-publish": "node scripts/verify-publish-artifacts.mjs",
    "smoke-publish": "node scripts/smoke-publish-artifact.mjs",
    "publish-check": "pnpm run build && pnpm run verify-publish && pnpm run smoke-publish"
  }
}
