{
    "name": "atopile",
    "displayName": "atopile",
    "icon": "ato_logo_256x256.png",
    "description": "IDE support for atopile.",
    "version": "0.0.0",
    "preview": false,
    "publisher": "atopile",
    "license": "MIT",
    "homepage": "https://github.com/atopile/atopile",
    "repository": {
        "type": "git",
        "url": "https://github.com/atopile/atopile.git",
        "directory": "src/vscode-atopile/"
    },
    "bugs": {
        "url": "https://github.com/atopile/atopile/issues"
    },
    "keywords": [
        "atopile"
    ],
    "engines": {
        "vscode": "^1.78.0"
    },
    "categories": [
        "Programming Languages",
        "Linters",
        "Formatters",
        "Snippets"
    ],
    "extensionDependencies": [
        "ms-python.python",
        "vscode.git"
    ],
    "capabilities": {
        "virtualWorkspaces": {
            "supported": false,
            "description": "Virtual Workspaces are not supported with atopile."
        },
        "hoverProvider": "true"
    },
    "activationEvents": [
        "onLanguage:atopile",
        "workspaceContains:*.ato",
        "workspaceContains:ato.yaml",
        "command:atopile.example",
        "onStartupFinished"
    ],
    "main": "./dist/extension.js",
    "scripts": {
        "vscode:prepublish": "npm run build:webviews && npm run package",
        "build:webviews": "cd ../ui-server && npm install && npm run build -- --outDir ../vscode-atopile/resources/webviews",
        "compile": "webpack",
        "watch": "webpack --watch",
        "package": "webpack --mode production --devtool source-map --config ./webpack.config.js",
        "compile-tests": "tsc -p . --outDir out",
        "watch-tests": "tsc -p . -w --outDir out",
        "pretest": "npm run compile-tests && npm run compile && npm run lint",
        "lint": "eslint src --ext ts",
        "format-check": "prettier --check 'src/**/*.ts' 'build/**/*.yml' '.github/**/*.yml'",
        "test": "node ./out/test/runTest.js"
    },
    "contributes": {
        "snippets": [
            {
                "language": "ato",
                "path": "./snippets/snippets.json"
            }
        ],
        "configuration": {
            "properties": {
                "atopile.ato": {
                    "description": "When set to a full path to atopile binary, extension will use that.",
                    "scope": "resource",
                    "type": "string"
                },
                "atopile.from": {
                    "description": "When set to a uv source string, extension will use that. ATTENTION: Ignored if ato path is set. Example: 'atopile==0.14.0' or 'git+https://github.com/atopile/atopile.git@main'",
                    "scope": "resource",
                    "type": "string"
                },
                "atopile.telemetry": {
                    "description": "Send telemetry data",
                    "scope": "resource",
                    "type": "boolean",
                    "default": true
                },
                "atopile.autoInstall": {
                    "description": "Automatically install atopile when not found (recommended)",
                    "scope": "resource",
                    "type": "boolean",
                    "default": true
                },
                "atopile.llm.autoSetup": {
                    "description": "Automatically create LLM rules and MCP config files (disabled by default)",
                    "scope": "resource",
                    "type": "boolean",
                    "default": false
                }
            }
        },
        "viewsContainers": {
            "activitybar": [
                {
                    "id": "atopile-explorer",
                    "title": "atopile",
                    "icon": "ato_logo_256x256.png"
                }
            ],
            "panel": [
                {
                    "id": "atopile-panel",
                    "title": "atopile Logs",
                    "icon": "ato_logo_256x256.png"
                }
            ]
        },
        "views": {
            "atopile-explorer": [
                {
                    "id": "atopile.sidebar",
                    "name": "",
                    "contextualTitle": "atopile Project",
                    "type": "webview"
                }
            ],
            "atopile-panel": [
                {
                    "id": "atopile.logViewer",
                    "name": "Logs",
                    "type": "webview"
                }
            ]
        },
        "viewsWelcome": [
            {
                "view": "atopile.sidebar",
                "contents": "You have not opened an atopile project.\n\n[Create New Project](command:atopile.create_project)\n\n[Open Existing Project](command:vscode.openFolder)\n\n[Open Example Projects](command:atopile.example)\n\nRead the [docs](https://docs.atopile.io) or checkout the [source code](https://github.com/atopile/atopile)."
            }
        ],
        "commands": [
            {
                "title": "Restart Server",
                "category": "atopile",
                "command": "atopile.restart"
            },
            {
                "command": "atopile.add_part",
                "title": "Add part",
                "category": "atopile",
                "when": "editorLangId == ato"
            },
            {
                "command": "atopile.create_project",
                "title": "Create project",
                "category": "atopile"
            },
            {
                "command": "atopile.build",
                "title": "Build",
                "category": "atopile",
                "when": "editorLangId == ato"
            },
            {
                "command": "atopile.export",
                "title": "Generate Manufacturing Data",
                "category": "atopile",
                "when": "editorLangId == ato"
            },
            {
                "command": "atopile.add_package",
                "title": "Add package dependency",
                "category": "atopile",
                "when": "editorLangId == ato"
            },
            {
                "command": "atopile.remove_package",
                "title": "Remove package dependency",
                "category": "atopile",
                "when": "editorLangId == ato"
            },
            {
                "command": "atopile.choose_build",
                "title": "Choose build targets",
                "category": "atopile",
                "when": "editorLangId == ato"
            },
            {
                "command": "atopile.choose_project",
                "title": "Choose project folder",
                "category": "atopile",
                "when": "editorLangId == ato"
            },
            {
                "command": "atopile.launch_kicad",
                "title": "Launches KiCAD PCB Editor with the current board",
                "category": "atopile",
                "when": "editorLangId == ato"
            },
            {
                "command": "atopile.example",
                "title": "Open Example Project",
                "category": "atopile"
            },
            {
                "command": "atopile.shell",
                "title": "Open ato shell",
                "category": "atopile"
            },
            {
                "command": "atopile.package_explorer",
                "title": "Open package explorer",
                "category": "atopile"
            },
            {
                "command": "atopile.kicanvas_preview",
                "title": "Open Layout Preview",
                "category": "atopile"
            },
            {
                "command": "atopile.model_viewer_preview",
                "title": "Open 3D Model Preview",
                "category": "atopile"
            },
            {
                "command": "atopile.llm.setup",
                "title": "Setup LLM rules & MCP",
                "category": "atopile"
            },
            {
                "command": "atopile.showBuildLogs",
                "title": "Show Build Logs",
                "category": "atopile"
            },
            {
                "command": "atopile.showMenu",
                "title": "Show Menu",
                "category": "atopile"
            }
        ],
        "languages": [
            {
                "id": "ato",
                "aliases": [
                    "atopile",
                    "ato"
                ],
                "extensions": [
                    ".ato"
                ],
                "icon": {
                    "dark": "./ato_logo_256x256.png",
                    "light": "./ato_logo_256x256.png"
                },
                "configuration": "./language-configuration.json"
            }
        ],
        "grammars": [
            {
                "language": "ato",
                "scopeName": "source.ato",
                "path": "./syntaxes/ato.tmLanguage.json"
            }
        ]
    },
    "dependencies": {
        "@types/decompress": "^4.2.7",
        "@vscode/python-extension": "^1.0.5",
        "axios": "^1.9.0",
        "decompress": "^4.2.1",
        "fs-extra": "^11.2.0",
        "ovsx": "^0.10.1",
        "posthog-node": "^5.1.1",
        "vscode-languageclient": "^9.0.1",
        "vscode-variables": "^1.0.1",
        "which": "^5.0.0",
        "ws": "^8.19.0",
        "yaml": "^2.8.0",
        "@gltf-transform/cli": "^4.1.0"
    },
    "devDependencies": {
        "@types/fs-extra": "^11.0.4",
        "@types/glob": "^8.1.0",
        "@types/js-yaml": "^4.0.9",
        "@types/node": "^16.18.126",
        "@types/vscode": "1.78.0",
        "@types/which": "^3.0.4",
        "@types/ws": "^8.18.1",
        "@typescript-eslint/eslint-plugin": "^8.16.0",
        "@typescript-eslint/parser": "^8.19.0",
        "@vscode/test-electron": "^2.4.0",
        "@vscode/vsce": "^3.2.1",
        "eslint": "^9.17.0",
        "glob": "^10.4.5",
        "prettier": "^3.4.2",
        "ts-loader": "^9.5.1",
        "typescript": "^5.7.2",
        "webpack": "^5.97.1",
        "webpack-cli": "^5.1.4"
    }
}
