| 1 | { |
| 2 | "name": "sigit-code", |
| 3 | "displayName": "siGit Code — On-device AI Coding Agent", |
| 4 | "description": "Local-first AI coding agent for VS Code. Runs the on-device sigit agent, and other ACP-compatible agents, over stdio.", |
| 5 | "version": "1.0.1", |
| 6 | "publisher": "getsigit", |
| 7 | "license": "MIT", |
| 8 | "packageManager": "pnpm@10.33.0", |
| 9 | "homepage": "https://code.sigit.si", |
| 10 | "icon": "media/icon.png", |
| 11 | "repository": { |
| 12 | "type": "git", |
| 13 | "url": "https://github.com/getsigit/sigit-vscode" |
| 14 | }, |
| 15 | "bugs": { |
| 16 | "url": "https://github.com/getsigit/sigit-vscode/issues" |
| 17 | }, |
| 18 | "engines": { |
| 19 | "vscode": "^1.90.0" |
| 20 | }, |
| 21 | "categories": [ |
| 22 | "AI", |
| 23 | "Chat", |
| 24 | "Programming Languages", |
| 25 | "Other" |
| 26 | ], |
| 27 | "keywords": [ |
| 28 | "acp", |
| 29 | "agent client protocol", |
| 30 | "ai", |
| 31 | "coding agent", |
| 32 | "local llm", |
| 33 | "on-device", |
| 34 | "gguf", |
| 35 | "offline", |
| 36 | "claude code", |
| 37 | "gemini", |
| 38 | "copilot alternative" |
| 39 | ], |
| 40 | "main": "./dist/extension.js", |
| 41 | "activationEvents": [], |
| 42 | "capabilities": { |
| 43 | "untrustedWorkspaces": { |
| 44 | "supported": false, |
| 45 | "description": "siGit spawns agent processes that can read and modify workspace files, so it requires a trusted workspace." |
| 46 | }, |
| 47 | "virtualWorkspaces": { |
| 48 | "supported": false, |
| 49 | "description": "siGit spawns local agent processes and needs a local file system." |
| 50 | } |
| 51 | }, |
| 52 | "contributes": { |
| 53 | "commands": [ |
| 54 | { |
| 55 | "command": "sigit.openChat", |
| 56 | "title": "siGit: Open Chat", |
| 57 | "category": "siGit", |
| 58 | "icon": "$(comment-discussion)" |
| 59 | }, |
| 60 | { |
| 61 | "command": "sigit.newSession", |
| 62 | "title": "siGit: New Session", |
| 63 | "category": "siGit", |
| 64 | "icon": "$(add)" |
| 65 | }, |
| 66 | { |
| 67 | "command": "sigit.selectAgent", |
| 68 | "title": "siGit: Select Agent", |
| 69 | "category": "siGit", |
| 70 | "icon": "$(server-process)" |
| 71 | }, |
| 72 | { |
| 73 | "command": "sigit.restartAgent", |
| 74 | "title": "siGit: Restart Agent", |
| 75 | "category": "siGit", |
| 76 | "icon": "$(debug-restart)" |
| 77 | }, |
| 78 | { |
| 79 | "command": "sigit.browseRegistry", |
| 80 | "title": "siGit: Browse Agent Registry", |
| 81 | "category": "siGit", |
| 82 | "icon": "$(cloud-download)" |
| 83 | }, |
| 84 | { |
| 85 | "command": "sigit.refreshRegistry", |
| 86 | "title": "siGit: Refresh Agent Registry", |
| 87 | "category": "siGit", |
| 88 | "icon": "$(refresh)" |
| 89 | }, |
| 90 | { |
| 91 | "command": "sigit.removeAgent", |
| 92 | "title": "siGit: Remove Agent", |
| 93 | "category": "siGit", |
| 94 | "icon": "$(trash)" |
| 95 | } |
| 96 | ], |
| 97 | "menus": { |
| 98 | "view/title": [ |
| 99 | { |
| 100 | "command": "sigit.newSession", |
| 101 | "when": "view == sigit.chat", |
| 102 | "group": "navigation@1" |
| 103 | }, |
| 104 | { |
| 105 | "command": "sigit.selectAgent", |
| 106 | "when": "view == sigit.chat", |
| 107 | "group": "navigation@2" |
| 108 | }, |
| 109 | { |
| 110 | "command": "sigit.browseRegistry", |
| 111 | "when": "view == sigit.chat", |
| 112 | "group": "1_agents@1" |
| 113 | }, |
| 114 | { |
| 115 | "command": "sigit.refreshRegistry", |
| 116 | "when": "view == sigit.chat", |
| 117 | "group": "1_agents@2" |
| 118 | }, |
| 119 | { |
| 120 | "command": "sigit.removeAgent", |
| 121 | "when": "view == sigit.chat", |
| 122 | "group": "1_agents@3" |
| 123 | }, |
| 124 | { |
| 125 | "command": "sigit.restartAgent", |
| 126 | "when": "view == sigit.chat", |
| 127 | "group": "2_session@1" |
| 128 | } |
| 129 | ] |
| 130 | }, |
| 131 | "viewsContainers": { |
| 132 | "activitybar": [ |
| 133 | { |
| 134 | "id": "sigit", |
| 135 | "title": "siGit Code", |
| 136 | "icon": "media/activity-icon.svg" |
| 137 | } |
| 138 | ] |
| 139 | }, |
| 140 | "views": { |
| 141 | "sigit": [ |
| 142 | { |
| 143 | "type": "webview", |
| 144 | "id": "sigit.chat", |
| 145 | "name": "Chat" |
| 146 | } |
| 147 | ] |
| 148 | }, |
| 149 | "configuration": { |
| 150 | "title": "siGit Code", |
| 151 | "properties": { |
| 152 | "sigit.agent.default": { |
| 153 | "type": "string", |
| 154 | "scope": "machine", |
| 155 | "default": "sigit", |
| 156 | "markdownDescription": "Key of the agent to use by default, looked up in `#sigit.agents#`. Defaults to the on-device `sigit` binary." |
| 157 | }, |
| 158 | "sigit.registry.url": { |
| 159 | "type": "string", |
| 160 | "scope": "machine", |
| 161 | "default": "https://cdn.agentclientprotocol.com/registry/v1/latest/registry.json", |
| 162 | "markdownDescription": "URL of the [Agent Client Protocol registry](https://github.com/agentclientprotocol/registry) catalog used by **siGit: Browse Agent Registry**. Installing an agent only registers a launch command in `#sigit.agents#` (via `npx`/`uvx`, or a binary you place on your PATH); siGit never downloads or runs agent binaries on your behalf." |
| 163 | }, |
| 164 | "sigit.agents": { |
| 165 | "type": "object", |
| 166 | "scope": "machine", |
| 167 | "markdownDescription": "Registry of ACP agents that siGit Code can spawn. Each entry maps a key to an agent definition. The on-device `sigit` agent is the local-first default; add other ACP-compatible agents here.", |
| 168 | "default": { |
| 169 | "sigit": { |
| 170 | "name": "siGit (on-device)", |
| 171 | "command": "sigit", |
| 172 | "args": [], |
| 173 | "env": {} |
| 174 | } |
| 175 | }, |
| 176 | "additionalProperties": { |
| 177 | "type": "object", |
| 178 | "properties": { |
| 179 | "name": { |
| 180 | "type": "string", |
| 181 | "description": "Human-readable display name." |
| 182 | }, |
| 183 | "command": { |
| 184 | "type": "string", |
| 185 | "description": "Executable to spawn (on PATH or an absolute path)." |
| 186 | }, |
| 187 | "args": { |
| 188 | "type": "array", |
| 189 | "items": { |
| 190 | "type": "string" |
| 191 | }, |
| 192 | "description": "Arguments passed to the agent binary." |
| 193 | }, |
| 194 | "env": { |
| 195 | "type": "object", |
| 196 | "additionalProperties": { |
| 197 | "type": "string" |
| 198 | }, |
| 199 | "description": "Extra environment variables for the agent process." |
| 200 | } |
| 201 | }, |
| 202 | "required": [ |
| 203 | "command" |
| 204 | ] |
| 205 | } |
| 206 | }, |
| 207 | "sigit.permission.mode": { |
| 208 | "type": "string", |
| 209 | "scope": "machine", |
| 210 | "enum": [ |
| 211 | "prompt", |
| 212 | "allow", |
| 213 | "deny" |
| 214 | ], |
| 215 | "enumDescriptions": [ |
| 216 | "Ask before every agent-requested action.", |
| 217 | "Automatically allow agent-requested actions.", |
| 218 | "Automatically deny agent-requested actions." |
| 219 | ], |
| 220 | "default": "prompt", |
| 221 | "description": "How to handle permission requests from the agent (file writes, tool calls, etc.)." |
| 222 | } |
| 223 | } |
| 224 | } |
| 225 | }, |
| 226 | "scripts": { |
| 227 | "vscode:prepublish": "npm run build", |
| 228 | "build": "node esbuild.js --production", |
| 229 | "watch": "node esbuild.js --watch", |
| 230 | "compile": "tsc --noEmit", |
| 231 | "lint": "eslint src --ext ts", |
| 232 | "test:smoke": "node test/smoke.mjs", |
| 233 | "test:webview": "node test/webview.mjs", |
| 234 | "test:registry": "node test/registry.mjs", |
| 235 | "test": "node test/smoke.mjs && node test/webview.mjs && node test/registry.mjs", |
| 236 | "package": "vsce package" |
| 237 | }, |
| 238 | "devDependencies": { |
| 239 | "@types/node": "^20.11.0", |
| 240 | "@types/vscode": "^1.90.0", |
| 241 | "@typescript-eslint/eslint-plugin": "^7.0.0", |
| 242 | "@typescript-eslint/parser": "^7.0.0", |
| 243 | "@vscode/vsce": "^3.9.2", |
| 244 | "esbuild": "^0.20.0", |
| 245 | "eslint": "^8.57.0", |
| 246 | "ovsx": "^1.0.2", |
| 247 | "typescript": "^5.4.0" |
| 248 | } |
| 249 | } |