{
  "name": "atomcode-tools",
  "displayName": "AtomCode for VS Code",
  "description": "AI coding agent powered by AtomCode — terminal-grade AI inside VS Code",
  "version": "0.0.8",
  "publisher": "atomcode-tools",
  "license": "MIT",
  "repository": {
    "type": "git",
    "url": "https://atomgit.com/atomgit_atomcode/atomcode.git",
    "directory": "extensions/vscode"
  },
  "engines": {
    "vscode": "^1.85.0"
  },
  "categories": [
    "Programming Languages",
    "Other"
  ],
  "keywords": [
    "ai",
    "coding",
    "agent",
    "atomcode",
    "llm"
  ],
  "icon": "resources/icon.png",
  "main": "./out/extension.js",
  "activationEvents": [
    "onStartupFinished"
  ],
  "contributes": {
    "commands": [
      {
        "command": "atomcode.openSidebar",
        "title": "AtomCode: Open in Side Bar",
        "icon": "$(hubot)"
      },
      {
        "command": "atomcode.openTab",
        "title": "AtomCode: Open in New Tab",
        "icon": "$(hubot)"
      },
      {
        "command": "atomcode.openPreferredLocation",
        "title": "AtomCode: Open Preferred Location",
        "icon": "$(hubot)"
      },
      {
        "command": "atomcode.focusInput",
        "title": "AtomCode: Focus Input",
        "icon": "$(edit)"
      },
      {
        "command": "atomcode.newConversation",
        "title": "AtomCode: New Conversation",
        "icon": "$(add)"
      },
      {
        "command": "atomcode.explain",
        "title": "AtomCode: Explain Selection",
        "icon": "$(question)"
      },
      {
        "command": "atomcode.fix",
        "title": "AtomCode: Fix Selection",
        "icon": "$(wrench)"
      },
      {
        "command": "atomcode.optimize",
        "title": "AtomCode: Optimize Selection",
        "icon": "$(rocket)"
      },
      {
        "command": "atomcode.addToChat",
        "title": "AtomCode: Add to Chat",
        "icon": "$(comment-add)"
      },
      {
        "command": "atomcode.stop",
        "title": "AtomCode: Stop Generation",
        "icon": "$(stop-circle)"
      }
    ],
    "viewsContainers": {
      "activitybar": [
        {
          "id": "atomcode",
          "title": "AtomCode",
          "icon": "resources/icon.svg"
        }
      ]
    },
    "views": {
      "atomcode": [
        {
          "type": "webview",
          "id": "atomcode.chatView",
          "name": "Sessions",
          "icon": "resources/icon.svg"
        }
      ]
    },
    "menus": {
      "editor/context": [
        {
          "command": "atomcode.explain",
          "group": "atomcode@1",
          "when": "editorHasSelection"
        },
        {
          "command": "atomcode.fix",
          "group": "atomcode@2",
          "when": "editorHasSelection"
        },
        {
          "command": "atomcode.optimize",
          "group": "atomcode@3",
          "when": "editorHasSelection"
        },
        {
          "command": "atomcode.addToChat",
          "group": "atomcode@4",
          "when": "editorHasSelection"
        }
      ]
    },
    "configuration": {
      "title": "AtomCode",
      "properties": {
        "atomcode.daemon.port": {
          "type": "number",
          "default": 13456,
          "description": "AtomCode daemon HTTP port"
        },
        "atomcode.daemon.autoStart": {
          "type": "boolean",
          "default": true,
          "description": "Auto-start daemon if not running"
        },
        "atomcode.daemon.binaryPath": {
          "type": "string",
          "default": "",
          "description": "Path to atomcode binary (auto-detected if empty)"
        },
        "atomcode.preferredLocation": {
          "type": "string",
          "enum": [
            "sidebar",
            "panel"
          ],
          "default": "sidebar",
          "description": "Where to open the chat panel"
        },
        "atomcode.autoSave": {
          "type": "boolean",
          "default": true,
          "description": "Auto-save files before AI reads them"
        },
        "atomcode.sendWithCtrlEnter": {
          "type": "boolean",
          "default": false,
          "description": "Use Ctrl+Enter instead of Enter to send messages"
        },
        "atomcode.fontSize": {
          "type": "number",
          "default": 13,
          "description": "Font size in chat panel"
        },
        "atomcode.showInlineHints": {
          "type": "boolean",
          "default": true,
          "description": "Show inline diff hints when AI edits files"
        }
      }
    },
    "keybindings": [
      {
        "command": "atomcode.focusInput",
        "key": "ctrl+escape",
        "mac": "cmd+escape"
      },
      {
        "command": "atomcode.openTab",
        "key": "ctrl+shift+escape",
        "mac": "cmd+shift+escape"
      },
      {
        "command": "atomcode.explain",
        "key": "ctrl+shift+alt+e",
        "mac": "cmd+shift+alt+e",
        "when": "editorHasSelection"
      },
      {
        "command": "atomcode.newConversation",
        "key": "ctrl+shift+alt+n",
        "mac": "cmd+shift+alt+n",
        "when": "atomcode.chatFocused"
      }
    ]
  },
  "scripts": {
    "build:webview": "node webview-ui/esbuild.js",
    "watch:webview": "node webview-ui/esbuild.js --watch",
    "bundle:daemon": "node scripts/bundle-daemon.js",
    "bundle:daemon:required": "node scripts/bundle-daemon.js --require",
    "compile": "tsc -p ./ && npm run build:webview",
    "vscode:prepublish": "npm run compile && npm run bundle:daemon",
    "watch": "npx concurrently \"tsc -watch -p ./\" \"npm run watch:webview\"",
    "lint": "eslint src --ext ts",
    "package:local": "vsce package --no-dependencies",
    "package": "npm run bundle:daemon:required && vsce package --no-dependencies"
  },
  "devDependencies": {
    "@types/dompurify": "^3.0.5",
    "@types/node": "^20.0.0",
    "@types/react": "^19.2.14",
    "@types/react-dom": "^19.2.3",
    "@types/vscode": "^1.85.0",
    "@vscode/vsce": "^3.9.1",
    "concurrently": "^9.2.1",
    "esbuild": "^0.28.0",
    "typescript": "^5.3.0"
  },
  "dependencies": {
    "dompurify": "^3.4.1",
    "highlight.js": "^11.9.0",
    "marked": "^12.0.0",
    "react": "^19.2.5",
    "react-dom": "^19.2.5"
  }
}