| 1 | { |
| 2 | "name": "codewhale-vscode", |
| 3 | "displayName": "Codewhale", |
| 4 | "description": "Official Codewhale VS Code extension: agentic chat in the secondary sidebar over the local Engine Runtime API, with editor context, streaming turns, approvals, and terminal parity.", |
| 5 | "version": "0.10.0", |
| 6 | "publisher": "codewhale", |
| 7 | "license": "MIT", |
| 8 | "preview": true, |
| 9 | "icon": "media/icon.png", |
| 10 | "homepage": "https://github.com/Hmbown/CodeWhale#readme", |
| 11 | "repository": { |
| 12 | "type": "git", |
| 13 | "url": "https://github.com/Hmbown/CodeWhale.git", |
| 14 | "directory": "extensions/vscode" |
| 15 | }, |
| 16 | "bugs": { |
| 17 | "url": "https://github.com/Hmbown/CodeWhale/issues" |
| 18 | }, |
| 19 | "qna": "https://github.com/Hmbown/CodeWhale/issues", |
| 20 | "engines": { |
| 21 | "vscode": "^1.96.2" |
| 22 | }, |
| 23 | "categories": [ |
| 24 | "AI", |
| 25 | "Chat", |
| 26 | "Other" |
| 27 | ], |
| 28 | "keywords": [ |
| 29 | "codewhale", |
| 30 | "agent", |
| 31 | "ai", |
| 32 | "chat", |
| 33 | "coding" |
| 34 | ], |
| 35 | "activationEvents": [ |
| 36 | "onStartupFinished", |
| 37 | "onCommand:codewhale.ask", |
| 38 | "onCommand:codewhale.newChat", |
| 39 | "onCommand:codewhale.openTerminal", |
| 40 | "onCommand:codewhale.startRuntime", |
| 41 | "onCommand:codewhale.checkRuntime", |
| 42 | "onCommand:codewhale.setRuntimeToken", |
| 43 | "onCommand:codewhale.refreshAgentView", |
| 44 | "onCommand:codewhale.refreshSnapshots", |
| 45 | "onCommand:codewhale.openRuntimeDocs", |
| 46 | "onView:codewhale.chat", |
| 47 | "onView:codewhale.chatSecondary" |
| 48 | ], |
| 49 | "main": "./out/extension.js", |
| 50 | "contributes": { |
| 51 | "commands": [ |
| 52 | { |
| 53 | "command": "codewhale.ask", |
| 54 | "title": "CodeWhale: Ask Codewhale" |
| 55 | }, |
| 56 | { |
| 57 | "command": "codewhale.newChat", |
| 58 | "title": "CodeWhale: New Chat" |
| 59 | }, |
| 60 | { |
| 61 | "command": "codewhale.setRuntimeToken", |
| 62 | "title": "CodeWhale: Set Runtime Token" |
| 63 | }, |
| 64 | { |
| 65 | "command": "codewhale.openTerminal", |
| 66 | "title": "CodeWhale: Open Terminal" |
| 67 | }, |
| 68 | { |
| 69 | "command": "codewhale.startRuntime", |
| 70 | "title": "CodeWhale: Start Local Runtime" |
| 71 | }, |
| 72 | { |
| 73 | "command": "codewhale.checkRuntime", |
| 74 | "title": "CodeWhale: Check Runtime" |
| 75 | }, |
| 76 | { |
| 77 | "command": "codewhale.refreshAgentView", |
| 78 | "title": "CodeWhale: Refresh Agent View" |
| 79 | }, |
| 80 | { |
| 81 | "command": "codewhale.refreshSnapshots", |
| 82 | "title": "CodeWhale: Refresh Restore Points" |
| 83 | }, |
| 84 | { |
| 85 | "command": "codewhale.openRuntimeDocs", |
| 86 | "title": "CodeWhale: Open Runtime API Docs" |
| 87 | } |
| 88 | ], |
| 89 | "keybindings": [ |
| 90 | { |
| 91 | "command": "codewhale.ask", |
| 92 | "key": "ctrl+alt+c", |
| 93 | "mac": "ctrl+alt+c", |
| 94 | "when": "editorTextFocus" |
| 95 | } |
| 96 | ], |
| 97 | "menus": { |
| 98 | "editor/context": [ |
| 99 | { |
| 100 | "command": "codewhale.ask", |
| 101 | "when": "editorTextFocus", |
| 102 | "group": "codewhale" |
| 103 | } |
| 104 | ] |
| 105 | }, |
| 106 | "configuration": { |
| 107 | "title": "Codewhale", |
| 108 | "properties": { |
| 109 | "codewhale.commandPath": { |
| 110 | "type": "string", |
| 111 | "default": "codewhale", |
| 112 | "scope": "machine", |
| 113 | "description": "Command or absolute path used to launch Codewhale. Machine-scoped: a workspace cannot point the client at another executable." |
| 114 | }, |
| 115 | "codewhale.runtimeHost": { |
| 116 | "type": "string", |
| 117 | "default": "127.0.0.1", |
| 118 | "scope": "machine", |
| 119 | "description": "Local host used for Codewhale runtime attach checks. Machine-scoped: a workspace cannot retarget the client at another host." |
| 120 | }, |
| 121 | "codewhale.runtimePort": { |
| 122 | "type": "number", |
| 123 | "default": 7878, |
| 124 | "minimum": 1, |
| 125 | "maximum": 65535, |
| 126 | "scope": "machine", |
| 127 | "description": "Local port used for Codewhale runtime attach checks. Machine-scoped: a workspace cannot retarget the client at another port." |
| 128 | }, |
| 129 | "codewhale.runtimeToken": { |
| 130 | "type": "string", |
| 131 | "default": "", |
| 132 | "scope": "machine", |
| 133 | "description": "Optional bearer token for authenticated runtime endpoints. Prefer CodeWhale: Set Runtime Token, which stores it in VS Code secret storage.", |
| 134 | "deprecationMessage": "Tokens set here live in plaintext settings. Use CodeWhale: Set Runtime Token instead; values entered there take precedence.", |
| 135 | "markdownDeprecationMessage": "Tokens set here live in plaintext settings. Use **CodeWhale: Set Runtime Token** instead; a token in secret storage takes precedence." |
| 136 | }, |
| 137 | "codewhale.agentViewRefreshIntervalSeconds": { |
| 138 | "type": "number", |
| 139 | "default": 15, |
| 140 | "minimum": 0, |
| 141 | "maximum": 300, |
| 142 | "description": "Seconds between read-only runtime refreshes. Set to 0 to disable automatic refresh." |
| 143 | } |
| 144 | } |
| 145 | }, |
| 146 | "viewsContainers": { |
| 147 | "activitybar": [ |
| 148 | { |
| 149 | "id": "codewhale", |
| 150 | "title": "Codewhale", |
| 151 | "icon": "media/codewhale.svg", |
| 152 | "when": "codewhale.noSecondarySidebar" |
| 153 | } |
| 154 | ], |
| 155 | "secondarySidebar": [ |
| 156 | { |
| 157 | "id": "codewhaleSecondary", |
| 158 | "title": "Codewhale", |
| 159 | "icon": "media/codewhale.svg", |
| 160 | "when": "!codewhale.noSecondarySidebar" |
| 161 | } |
| 162 | ] |
| 163 | }, |
| 164 | "views": { |
| 165 | "codewhale": [ |
| 166 | { |
| 167 | "type": "webview", |
| 168 | "id": "codewhale.chat", |
| 169 | "name": "Codewhale", |
| 170 | "when": "codewhale.noSecondarySidebar" |
| 171 | }, |
| 172 | { |
| 173 | "type": "webview", |
| 174 | "id": "codewhale.runtimeStatus", |
| 175 | "name": "Runtime", |
| 176 | "when": "codewhale.noSecondarySidebar" |
| 177 | } |
| 178 | ], |
| 179 | "codewhaleSecondary": [ |
| 180 | { |
| 181 | "type": "webview", |
| 182 | "id": "codewhale.chatSecondary", |
| 183 | "name": "Codewhale", |
| 184 | "when": "!codewhale.noSecondarySidebar" |
| 185 | }, |
| 186 | { |
| 187 | "type": "webview", |
| 188 | "id": "codewhale.runtimeStatus", |
| 189 | "name": "Runtime", |
| 190 | "when": "!codewhale.noSecondarySidebar" |
| 191 | } |
| 192 | ] |
| 193 | } |
| 194 | }, |
| 195 | "scripts": { |
| 196 | "vscode:prepublish": "npm run compile", |
| 197 | "compile": "tsc -p ./", |
| 198 | "check": "npm run compile", |
| 199 | "test": "npm run compile && node --test out/test/*.test.js", |
| 200 | "package": "vsce package --no-dependencies" |
| 201 | }, |
| 202 | "devDependencies": { |
| 203 | "@types/node": "^20.19.27", |
| 204 | "@types/vscode": "1.96.0", |
| 205 | "@vscode/vsce": "^3.7.0", |
| 206 | "typescript": "^5.9.3" |
| 207 | } |
| 208 | } |
| 209 |