{
  "name": "codeflash",
  "displayName": "Codeflash - Python Optimization",
  "description": "Codeflash automates Python performance optimization with AI. It discovers the fastest version of your code through AI-powered optimizations, verifies correctness, and automatically delivers performance gains.",
  "version": "0.0.19",
  "icon": "media/Codeflash_black_background.jpg",
  "publisher": "codeflash",
  "repository": {
    "type": "git",
    "url": "https://github.com/codeflash-ai/codeflash.git"
  },
  "engines": {
    "vscode": "^1.94.0"
  },
  "activationEvents": [
    "onLanguage:python"
  ],
  "main": "./dist/extension.js",
  "contributes": {
    "configuration": {
      "title": "Codeflash",
      "type": "object",
      "properties": {
        "codeflash.gitHookEnabled": {
          "type": "boolean",
          "default": true,
          "description": "Enable Git hooks to automatically optimize changed functions in new commits."
        },
        "codeflash.autoOpenOptimizationViewOnComplete": {
          "type": "boolean",
          "default": true,
          "description": "Automatically open the optimization view after an optimization completes."
        },
        "codeflash.defaultInterpreterPath": {
          "type": "string",
          "description": "The default Python interpreter to use. If unset, Codeflash uses the interpreter from the Microsoft Python extension.",
          "scope": "machine-overridable"
        },
        "codeflash.configFilePath": {
          "type": "string",
          "description": "Path to the config file (.toml format) to use. If unset, Codeflash will try to auto-detect one.",
          "scope": "machine-overridable"
        }
      }
    },
    "viewsContainers": {
      "activitybar": [
        {
          "id": "codeflash-sidebar",
          "title": "Codeflash",
          "icon": "media/codeflash.svg"
        }
      ]
    },
    "views": {
      "codeflash-sidebar": [
        {
          "type": "webview",
          "id": "codeflash-sidebar",
          "name": "Codeflash",
          "icon": "media/codeflash.svg"
        }
      ]
    },
    "commands": [
      {
        "command": "codeflash.optimizeFunction",
        "title": "Optimize Function with Codeflash",
        "category": "Codeflash"
      },
      {
        "command": "codeflash.optimizeAll",
        "title": "Optimize all functions in the current file",
        "category": "Codeflash"
      },
      {
        "command": "codeflash.reloadExtension",
        "title": "Reload Codeflash Extension",
        "category": "Codeflash"
      },
      {
        "command": "codeflash.dev.showGlobalState",
        "title": "Show Global State",
        "category": "Codeflash"
      },
      {
        "command": "codeflash.clearAllTasks",
        "title": "Delete all non-running tasks",
        "category": "Codeflash"
      },
      {
        "command": "codeflash.viewPatch",
        "title": "Show optimization"
      },
      {
        "command": "codeflash.acceptInlineRefactor",
        "title": "Accept"
      },
      {
        "command": "codeflash.rejectInlineRefactor",
        "title": "Reject"
      }
    ],
    "menus": {
      "comments/commentThread/title": [
        {
          "command": "codeflash.viewPatch",
          "when": "commentController == codeflash-comments",
          "group": "inline@1"
        },
        {
          "command": "codeflash.acceptInlineRefactor",
          "when": "commentController == codeflash-comments",
          "group": "inline@2"
        },
        {
          "command": "codeflash.rejectInlineRefactor",
          "when": "commentController == codeflash-comments",
          "group": "inline@3"
        }
      ],
      "commandPalette": [
        {
          "command": "codeflash.optimizeFunction",
          "when": "editorLangId == python"
        },
        {
          "command": "codeflash.optimizeAll",
          "when": "editorLangId == python"
        },
        {
          "command": "codeflash.showRefactorActions",
          "when": "editorLangId == python"
        },
        {
          "command": "codeflash.acceptInlineRefactor",
          "when": "editorLangId == python"
        },
        {
          "command": "codeflash.rejectInlineRefactor",
          "when": "editorLangId == python"
        },
        {
          "command": "codeflash.showRefactorDiff",
          "when": "editorLangId == python"
        },
        {
          "command": "codeflash.viewPatch",
          "when": "false"
        },
        {
          "command": "codeflash.acceptInlineRefactor",
          "when": "false"
        }
      ]
    }
  },
  "scripts": {
    "vsce": "vsce package",
    "vscode:prepublish": "npm run package",
    "dev": "concurrently \"npm run watch\" \"npm run build:watch --prefix packages/sidebar-webview\"",
    "build:webview": "npm run build --prefix packages/sidebar-webview",
    "build": "npm run check-types && npm run lint && npm run build:webview && node esbuild.js",
    "compile": "npm run build",
    "watch": "npm-run-all -p watch:*",
    "watch:esbuild": "node esbuild.js --watch",
    "watch:tsc": "tsc --noEmit --watch --project tsconfig.json",
    "package": "npm run check-types && npm run lint && npm run build:webview && node esbuild.js --production",
    "compile-tests": "tsc -p . --outDir out",
    "watch-tests": "tsc -p . -w --outDir out",
    "pretest": "npm run compile-tests && npm run build && npm run lint",
    "check-types": "tsc --noEmit",
    "lint": "eslint src --fix",
    "lint:check": "eslint src",
    "test": "vscode-test",
    "clean": "rm -rf dist out",
    "rebuild": "npm run clean && npm run build",
    "format": "prettier --write .",
    "pre-commit": "lint-staged"
  },
  "lint-staged": {
    "*.{js,jsx,ts,tsx,html,css}": "prettier --write",
    "*.{js,jsx,ts,tsx}": [
      "eslint --fix"
    ]
  },
  "devDependencies": {
    "@shikijs/langs": "^3.12.2",
    "@shikijs/themes": "^3.12.2",
    "@types/mocha": "^10.0.10",
    "@types/node": "20.x",
    "@types/semver": "^7.7.1",
    "@types/split2": "^4.2.3",
    "@types/vscode": "^1.94.0",
    "@typescript-eslint/eslint-plugin": "^8.25.0",
    "@typescript-eslint/parser": "^8.25.0",
    "@vscode/test-cli": "^0.0.10",
    "@vscode/test-electron": "^2.4.1",
    "@vscode/vsce": "^3.6.0",
    "concurrently": "^9.2.0",
    "debounce": "^2.2.0",
    "esbuild": "^0.25.0",
    "eslint": "^9.21.0",
    "husky": "^9.1.7",
    "lint-staged": "^15.5.2",
    "npm-run-all": "^4.1.5",
    "prettier": "^3.6.2",
    "react-virtuoso": "^4.14.0",
    "split2": "^4.2.0",
    "typescript": "^5.7.3"
  },
  "dependencies": {
    "@codeflash/shared": "*",
    "@codeflash/types": "*",
    "@sentry/node": "^10.20.0",
    "@vscode/python-extension": "^1.0.5",
    "diff": "^8.0.3",
    "marked": "^15.0.12",
    "p-queue": "^8.1.0",
    "posthog-node": "^5.10.1",
    "semver": "^7.7.3",
    "vscode-languageclient": "^9.0.1"
  },
  "private": true,
  "workspaces": [
    "packages/*"
  ],
  "extensionDependencies": [
    "ms-python.python",
    "vscode.git"
  ]
}
