{
  "name": "ur-inline-diffs",
  "displayName": "UR Inline Diffs",
  "description": "Review, apply, and reject UR inline diff bundles from .ur/ide/diffs inside VS Code.",
  "version": "1.81.8",
  "publisher": "ur-nexus",
  "engines": {
    "vscode": "^1.92.0"
  },
  "categories": [
    "Other"
  ],
  "activationEvents": [
    "onView:urChat",
    "onView:urInlineDiffs",
    "onView:urActions",
    "onCommand:urInlineDiffs.refresh",
    "onCommand:urInlineDiffs.open",
    "onCommand:urInlineDiffs.comment",
    "onCommand:urInlineDiffs.apply",
    "onCommand:urInlineDiffs.reject",
    "onCommand:urInlineDiffs.status",
    "onCommand:urInlineDiffs.chat.new",
    "onCommand:urInlineDiffs.chat.open",
    "onCommand:urInlineDiffs.chat.cancel",
    "onCommand:urInlineDiffs.chat.addFile",
    "onCommand:urInlineDiffs.chat.addSelection",
    "onCommand:urInlineDiffs.chat.explainSelection",
    "onCommand:urInlineDiffs.chat.fixSelection",
    "onCommand:urInlineDiffs.chat.generateTests",
    "onCommand:urInlineDiffs.agentStatus",
    "onCommand:urInlineDiffs.agentOptions",
    "onCommand:urInlineDiffs.reviewCurrentDiff",
    "onCommand:urInlineDiffs.runVerifier",
    "onCommand:urInlineDiffs.searchActions",
    "onCommand:urInlineDiffs.pickModel",
    "onCommand:urInlineDiffs.openSettings",
    "onCommand:urInlineDiffs.openDocs",
    "onCommand:urInlineDiffs.openArtifacts",
    "onCommand:urInlineDiffs.runSpec",
    "onCommand:urInlineDiffs.runWorkflow",
    "onCommand:urActions.refresh",
    "onCommand:urActions.runBackground",
    "onCommand:urActions.cancelBackground",
    "onCommand:urActions.openBackgroundLog"
  ],
  "main": "./out/extension.js",
  "scripts": {
    "build": "node esbuild.js",
    "typecheck": "tsc --noEmit -p tsconfig.json"
  },
  "devDependencies": {
    "@types/node": "^22.0.0",
    "@types/vscode": "^1.92.0",
    "bun-types": "^1.2.0",
    "esbuild": "^0.28.1",
    "typescript": "^5.7.0"
  },
  "contributes": {
    "configuration": {
      "title": "UR",
      "properties": {
        "ur.executablePath": {
          "type": "string",
          "default": "",
          "description": "Absolute path or command name for the UR executable the extension should run. Leave empty to prefer a repo-local UR checkout in the workspace, then fall back to ur on PATH."
        },
        "ur.executableArgs": {
          "type": "array",
          "default": [],
          "items": {
            "type": "string"
          },
          "description": "Optional arguments inserted after ur.executablePath and before UR command arguments. Use this only for custom wrappers, for example when ur.executablePath points to bun and the first arg is a dist/cli.js path."
        }
      }
    },
    "viewsContainers": {
      "activitybar": [
        {
          "id": "ur",
          "title": "UR",
          "icon": "media/ur.svg"
        }
      ]
    },
    "views": {
      "ur": [
        {
          "id": "urChat",
          "name": "Chat"
        },
        {
          "id": "urInlineDiffs",
          "name": "Inline Diffs"
        },
        {
          "id": "urActions",
          "name": "Actions"
        }
      ]
    },
    "commands": [
      {
        "command": "urInlineDiffs.refresh",
        "title": "UR: Refresh Inline Diffs",
        "icon": "$(refresh)"
      },
      {
        "command": "urInlineDiffs.open",
        "title": "UR: Open Inline Diff",
        "icon": "$(diff)"
      },
      {
        "command": "urInlineDiffs.comment",
        "title": "UR: Comment On Inline Diff",
        "icon": "$(comment-discussion)"
      },
      {
        "command": "urInlineDiffs.apply",
        "title": "UR: Apply Inline Diff",
        "icon": "$(check)"
      },
      {
        "command": "urInlineDiffs.reject",
        "title": "UR: Reject Inline Diff",
        "icon": "$(circle-slash)"
      },
      {
        "command": "urInlineDiffs.status",
        "title": "UR: Show Status (provider, model, plugins)",
        "icon": "$(pulse)"
      },
      {
        "command": "urInlineDiffs.chat.new",
        "title": "UR: New Chat",
        "icon": "$(comment-add)"
      },
      {
        "command": "urInlineDiffs.chat.open",
        "title": "UR: Open Chat",
        "icon": "$(comment)"
      },
      {
        "command": "urInlineDiffs.chat.cancel",
        "title": "UR: Cancel Current Chat Request",
        "icon": "$(stop-circle)"
      },
      {
        "command": "urInlineDiffs.chat.addFile",
        "title": "UR: Add Current File to Chat"
      },
      {
        "command": "urInlineDiffs.chat.addSelection",
        "title": "UR: Add Selection to Chat"
      },
      {
        "command": "urInlineDiffs.chat.explainSelection",
        "title": "UR: Explain Selection"
      },
      {
        "command": "urInlineDiffs.chat.fixSelection",
        "title": "UR: Fix Selection"
      },
      {
        "command": "urInlineDiffs.chat.generateTests",
        "title": "UR: Generate Tests for Selection"
      },
      {
        "command": "urInlineDiffs.agentStatus",
        "title": "UR: Agent Status",
        "icon": "$(info)"
      },
      {
        "command": "urInlineDiffs.agentOptions",
        "title": "UR: Agent Options",
        "icon": "$(settings-gear)"
      },
      {
        "command": "urInlineDiffs.reviewCurrentDiff",
        "title": "UR: Review Current Diff",
        "icon": "$(git-compare)"
      },
      {
        "command": "urInlineDiffs.runVerifier",
        "title": "UR: Run Verifier",
        "icon": "$(shield)"
      },
      {
        "command": "urInlineDiffs.searchActions",
        "title": "UR: Search Actions",
        "icon": "$(search)"
      },
      {
        "command": "urInlineDiffs.pickModel",
        "title": "UR: Pick Model",
        "icon": "$(symbol-variable)"
      },
      {
        "command": "urInlineDiffs.openSettings",
        "title": "UR: Open Settings"
      },
      {
        "command": "urInlineDiffs.openDocs",
        "title": "UR: Open Docs"
      },
      {
        "command": "urInlineDiffs.openArtifacts",
        "title": "UR: Open Artifacts"
      },
      {
        "command": "urInlineDiffs.runSpec",
        "title": "UR: Run Spec"
      },
      {
        "command": "urInlineDiffs.runWorkflow",
        "title": "UR: Run Workflow"
      },
      {
        "command": "urActions.refresh",
        "title": "UR: Refresh IDE Actions",
        "icon": "$(refresh)"
      },
      {
        "command": "urActions.runBackground",
        "title": "UR: Start Background Task",
        "icon": "$(play)"
      },
      {
        "command": "urActions.cancelBackground",
        "title": "UR: Cancel Background Task",
        "icon": "$(stop-circle)"
      },
      {
        "command": "urActions.openBackgroundLog",
        "title": "UR: Open Background Task Log",
        "icon": "$(output)"
      }
    ],
    "viewsWelcome": [
      {
        "view": "urChat",
        "contents": "Start a UR chat.\n[New Chat](command:urInlineDiffs.chat.new)  [Open Chat](command:urInlineDiffs.chat.open)  [Pick Model](command:urInlineDiffs.pickModel)"
      },
      {
        "view": "urInlineDiffs",
        "contents": "Review diff bundles captured by `ur ide diff capture`.\n[Refresh](command:urInlineDiffs.refresh)  [Show Status](command:urInlineDiffs.status)"
      },
      {
        "view": "urActions",
        "contents": "Background tasks and diff actions will appear here.\n[Start Task](command:urActions.runBackground)  [Refresh](command:urActions.refresh)  [Search Actions](command:urInlineDiffs.searchActions)"
      }
    ],
    "menus": {
      "view/title": [
        {
          "command": "urInlineDiffs.chat.new",
          "when": "view == urChat",
          "group": "navigation@1"
        },
        {
          "command": "urInlineDiffs.chat.open",
          "when": "view == urChat",
          "group": "navigation@2"
        },
        {
          "command": "urInlineDiffs.searchActions",
          "when": "view == urChat",
          "group": "navigation@3"
        },
        {
          "command": "urInlineDiffs.pickModel",
          "when": "view == urChat",
          "group": "navigation@4"
        },
        {
          "command": "urInlineDiffs.chat.new",
          "when": "view == urInlineDiffs",
          "group": "navigation"
        },
        {
          "command": "urInlineDiffs.chat.open",
          "when": "view == urInlineDiffs",
          "group": "navigation"
        },
        {
          "command": "urInlineDiffs.refresh",
          "when": "view == urInlineDiffs",
          "group": "navigation"
        },
        {
          "command": "urInlineDiffs.status",
          "when": "view == urInlineDiffs",
          "group": "navigation"
        },
        {
          "command": "urActions.runBackground",
          "when": "view == urActions",
          "group": "navigation@1"
        },
        {
          "command": "urActions.refresh",
          "when": "view == urActions",
          "group": "navigation@2"
        },
        {
          "command": "urInlineDiffs.agentStatus",
          "when": "view == urActions",
          "group": "navigation@3"
        }
      ],
      "view/item/context": [
        {
          "command": "urInlineDiffs.open",
          "when": "(view == urInlineDiffs || view == urActions) && viewItem == diff",
          "group": "inline"
        },
        {
          "command": "urInlineDiffs.apply",
          "when": "(view == urInlineDiffs || view == urActions) && viewItem == diff",
          "group": "1_actions"
        },
        {
          "command": "urInlineDiffs.reject",
          "when": "(view == urInlineDiffs || view == urActions) && viewItem == diff",
          "group": "1_actions"
        },
        {
          "command": "urInlineDiffs.comment",
          "when": "(view == urInlineDiffs || view == urActions) && viewItem == diff",
          "group": "2_review"
        },
        {
          "command": "urActions.openBackgroundLog",
          "when": "view == urActions && (viewItem == backgroundTask || viewItem == backgroundTaskActive)",
          "group": "inline"
        },
        {
          "command": "urActions.cancelBackground",
          "when": "view == urActions && viewItem == backgroundTaskActive",
          "group": "1_actions"
        }
      ],
      "editor/context": [
        {
          "command": "urInlineDiffs.chat.explainSelection",
          "when": "editorHasSelection",
          "group": "ur@1"
        },
        {
          "command": "urInlineDiffs.chat.fixSelection",
          "when": "editorHasSelection",
          "group": "ur@2"
        },
        {
          "command": "urInlineDiffs.chat.generateTests",
          "when": "editorHasSelection",
          "group": "ur@3"
        },
        {
          "command": "urInlineDiffs.chat.addSelection",
          "when": "editorHasSelection",
          "group": "ur@4"
        }
      ]
    }
  }
}
