{
  "name": "modustoolbox-ai",
  "displayName": "Infineon ModusToolbox™ AI Assistant",
  "description": "Provides ModusToolbox-specific intelligence to AI chat agents",
  "version": "0.6.0",
  "preview": true,
  "publisher": "InfineonAG",
  "license": "Apache-2.0",
  "homepage": "https://www.infineon.com/modustoolbox",
  "repository": {
    "type": "git",
    "url": "https://github.com/Infineon/modustoolbox-ai-assistant.git"
  },
  "bugs": {
    "url": "https://github.com/Infineon/modustoolbox-ai-assistant/issues"
  },
  "engines": {
    "vscode": "^1.85.0"
  },
  "icon": "images/ModusToolbox_AI_Assistant_256.png",
  "extensionKind": [
    "workspace"
  ],
  "extensionDependencies": [
    "infineonag.modustoolbox-for-vscode"
  ],
  "categories": [
    "AI",
    "Other"
  ],
  "keywords": [
    "ModusToolbox",
    "MCP",
    "AI",
    "Embedded",
    "PSoC",
    "Edge"
  ],
  "activationEvents": [
    "onStartupFinished",
    "workspaceContains:**/Makefile",
    "workspaceContains:**/*.mtb",
    "workspaceContains:**/design.modus"
  ],
  "main": "./dist/extension.js",
  "contributes": {
    "mcpServerDefinitionProviders": [
      {
        "id": "mtbmcpServerProvider",
        "label": "ModusToolbox MCP Server Provider"
      }
    ],
    "commands": [
      {
        "command": "modusToolbox-ai.restartServer",
        "title": "Restart ModusToolbox MCP Server",
        "category": "Infineon ModusToolbox™ AI Assistant"
      },
      {
        "command": "modusToolbox-ai.showStatus",
        "title": "Show ModusToolbox MCP Status",
        "category": "Infineon ModusToolbox™ AI Assistant"
      },
      {
        "command": "modusToolbox-ai.resetMcpCache",
        "title": "Reset MCP Cache",
        "category": "Infineon ModusToolbox™ AI Assistant"
      },
      {
        "command": "modusToolbox-ai.generateInstructions",
        "title": "Generate AI Instructions (Copilot, Cursor, etc.)",
        "category": "Infineon ModusToolbox™ AI Assistant"
      },
      {
        "command": "modusToolbox-ai.libraryManager",
        "title": "Launch ModusToolbox Library Manager",
        "category": "Infineon ModusToolbox™ AI Assistant"
      },
      {
        "command": "modusToolbox-ai.deviceConfigurator",
        "title": "Launch ModusToolbox Device Configurator",
        "category": "Infineon ModusToolbox™ AI Assistant"
      },
      {
        "command": "modusToolbox-ai.toolLauncher",
        "title": "Tool Launcher",
        "category": "Infineon ModusToolbox™ AI Assistant"
      },
      {
        "command": "modusToolbox-ai.setupProjectCreationWorkspace",
        "title": "Setup Project Creation Workspace",
        "category": "Infineon ModusToolbox™ AI Assistant"
      },
      {
        "command": "modusToolbox-ai.openWorkspaceAndContinueWork",
        "title": "Open Workspace and Continue Work",
        "category": "Infineon ModusToolbox™ AI Assistant"
      }
    ],
    "configuration": [
      {
        "id": "modusToolbox-ai",
        "type": "object",
        "title": "Infineon ModusToolbox™ AI Assistant",
        "properties": {
          "modusToolbox-ai.suppressStartupChecks": {
            "type": "boolean",
            "default": false,
            "description": "Suppress startup checks about missing derived files in ModusToolbox projects. Having these files enables better AI coding assistance. It will detect if a minimal build is required and prompt the user to run it if necessary, but won't block AI features while waiting for it to complete. Recommended to run a full build at least once with this disabled to unlock the best AI experience, if you disable this flag"
          },
          "modusToolbox-ai.autoRefreshModusDocs": {
            "type": "boolean",
            "default": false,
            "description": "Automatically refresh .modustoolbox/docs documentation when relevant files change. Always true if agent instructions auto-refresh is enabled."
          },
          "modusToolbox-ai.autoRefreshAgentInstructions": {
            "type": "boolean",
            "default": false,
            "description": "Automatically refresh agent (Copilot, Cursor, Windsurf, etc.) instructions if updates are needed. If true, docs in .modustoolbox/docs are also updated when relevant files change."
          },
          "modusToolbox-ai.serverLogLevel": {
            "type": "string",
            "enum": [
              "debug",
              "info",
              "warn",
              "error",
              "off"
            ],
            "default": "info",
            "description": "Log level for MCP server"
          },
          "modusToolbox-ai.showOutputOnStart": {
            "type": "boolean",
            "default": false,
            "description": "Automatically show output channel when extension activates"
          },
          "modusToolbox-ai.logLevel": {
            "type": "string",
            "enum": [
              "debug",
              "info",
              "warn",
              "error",
              "off"
            ],
            "default": "warn",
            "description": "Log level for extension that launches with MCP server"
          },
          "modusToolbox-ai.toolboxPath": {
            "type": "string",
            "default": "",
            "description": "Custom path to ModusToolbox installation (auto-detected if empty)"
          },
          "modusToolbox-ai.projectCreationWorkspacePath": {
            "type": "string",
            "default": "",
            "description": "Path for the project creation workspace. Defaults to $HOME/.modustoolbox/project_creation_workspace when empty."
          }
        }
      }
    ]
  },
  "scripts": {
    "compile": "npm run check-types && node esbuild.js && npm run build:manifest-util",
    "build:manifest-util": "node esbuild.manifest-util.js",
    "manifest-util": "node dist/manifest-util.js",
    "test": "tsc -p tsconfig.json && NODE_PATH=src/__tests__/mocks node --test out/src/__tests__/ai-manifest.test.js",
    "check-types": "npm run commit-hash && make -C .. tygo && tsc --noEmit",
    "commit-hash": "node ./commit-hash.js",
    "build:server": "cd .. && make go-build-all",
    "watch": "npm-run-all -p watch:*",
    "watch:esbuild": "node esbuild.js --watch",
    "watch:manifest-util": "node esbuild.manifest-util.js --watch",
    "watch:tsc": "tsc --noEmit --watch --project tsconfig.json",
    "compile-prod": "npm run generate:readme-supported-devices && npm run check-types && node esbuild.js --production && node esbuild.manifest-util.js --production && npm run build:server",
    "package": "npm run compile-prod && node scripts/generate-ignore-files.js && npm-run-all package:* && ls -l *.vsix",
    "gen-target-ignores": "node scripts/generate-ignore-files.js",
    "generate:readme-supported-devices": "node scripts/generate-supported-devices-readme.js",
    "package:darwin-arm64": "vsce package --target darwin-arm64 --ignoreFile out/ignore-file.darwin-arm64 --no-rewrite-relative-links",
    "package:darwin-x64": "vsce package --target darwin-x64 --ignoreFile out/ignore-file.darwin-x64 --no-rewrite-relative-links",
    "package:linux-x64": "vsce package --target linux-x64 --ignoreFile out/ignore-file.linux-x64 --no-rewrite-relative-links",
    "package:linux-arm64": "vsce package --target linux-arm64 --ignoreFile out/ignore-file.linux-arm64 --no-rewrite-relative-links",
    "package:win32-x64": "vsce package --target win32-x64 --ignoreFile out/ignore-file.win32-x64 --no-rewrite-relative-links",
    "package:win32-arm64": "vsce package --target win32-arm64 --ignoreFile out/ignore-file.win32-arm64 --no-rewrite-relative-links"
  },
  "devDependencies": {
    "@types/js-yaml": "^4.0.9",
    "@types/node": "^22.19.11",
    "@types/semver": "^7.7.1",
    "@types/vscode": "^1.85.0",
    "@vscode/test-electron": "^2.3.4",
    "@vscode/vsce": "^3.7.0",
    "esbuild": "^0.27.0",
    "npm-run-all": "^4.1.5",
    "prettier": "3.6.2",
    "typescript": "^5.1.6"
  },
  "dependencies": {
    "glob": "^10.3.3",
    "gray-matter": "^4.0.3",
    "jayson": "^4.3.0",
    "js-yaml": "^4.1.1",
    "jsonc-simple-parser": "^3.0.0",
    "minimatch": "^10.2.5",
    "semver": "^7.7.3",
    "ts-command-line-args": "^2.5.1"
  }
}
