singularity-forge/vscode-extension/package.json
Jeremy McSpadden c2cd8bcc0a feat(vscode): status bar, file decorations, bash terminal, session tree, conversation history, code lens [1/2] (#2651)
* feat(vscode): status bar, auto-retry, session name, copy response, keyboard shortcuts, full stats

* feat(vscode): file decorations, bash terminal, session tree view

* feat(vscode): conversation history webview, slash completion, code lens

- conversation-history.ts: GsdConversationHistoryPanel webview panel using
  getMessages() RPC; renders user/assistant turns with a Refresh button
- slash-completion.ts: GsdSlashCompletionProvider triggers on '/' at line
  start in md/plaintext/ts/js; fetches getCommands() RPC and caches results
- code-lens.ts: GsdCodeLensProvider adds 'Ask GSD' lens above named
  functions/classes in ts/js/py/go/rust; respects gsd.codeLens setting
- extension.ts: registers all three providers and new commands
  (gsd.showHistory, gsd.askAboutSymbol)
- package.json: declares new commands and gsd.codeLens config toggle
2026-03-26 16:18:37 -06:00

253 lines
5.9 KiB
JSON

{
"name": "gsd-2",
"displayName": "GSD-2",
"description": "VS Code integration for the GSD-2 coding agent — sidebar dashboard, @gsd chat participant, conversation history, code lens, slash command completion, and 25 commands",
"publisher": "FluxLabs",
"version": "0.1.0",
"icon": "logo.jpg",
"license": "MIT",
"repository": {
"type": "git",
"url": "https://github.com/gsd-build/gsd-2"
},
"homepage": "https://github.com/gsd-build/gsd-2/blob/main/vscode-extension/README.md",
"bugs": {
"url": "https://github.com/gsd-build/gsd-2/issues"
},
"keywords": [
"ai",
"agent",
"coding",
"gsd",
"chat",
"automation",
"claude",
"openai",
"llm"
],
"galleryBanner": {
"color": "#1a1a2e",
"theme": "dark"
},
"extensionKind": ["workspace"],
"engines": {
"vscode": "^1.95.0"
},
"categories": [
"AI",
"Chat"
],
"activationEvents": [
"onStartupFinished"
],
"main": "dist/extension.js",
"contributes": {
"commands": [
{
"command": "gsd.start",
"title": "GSD: Start Agent"
},
{
"command": "gsd.stop",
"title": "GSD: Stop Agent"
},
{
"command": "gsd.newSession",
"title": "GSD: New Session"
},
{
"command": "gsd.sendMessage",
"title": "GSD: Send Message"
},
{
"command": "gsd.cycleModel",
"title": "GSD: Cycle Model"
},
{
"command": "gsd.cycleThinking",
"title": "GSD: Cycle Thinking Level"
},
{
"command": "gsd.compact",
"title": "GSD: Compact Context"
},
{
"command": "gsd.abort",
"title": "GSD: Abort Current Operation"
},
{
"command": "gsd.exportHtml",
"title": "GSD: Export Conversation as HTML"
},
{
"command": "gsd.sessionStats",
"title": "GSD: Show Session Stats"
},
{
"command": "gsd.runBash",
"title": "GSD: Run Bash Command"
},
{
"command": "gsd.switchModel",
"title": "GSD: Switch Model"
},
{
"command": "gsd.setThinking",
"title": "GSD: Set Thinking Level"
},
{
"command": "gsd.steer",
"title": "GSD: Steer Agent"
},
{
"command": "gsd.listCommands",
"title": "GSD: List Available Commands"
},
{
"command": "gsd.toggleAutoRetry",
"title": "GSD: Toggle Auto-Retry"
},
{
"command": "gsd.abortRetry",
"title": "GSD: Abort Retry"
},
{
"command": "gsd.setSessionName",
"title": "GSD: Set Session Name"
},
{
"command": "gsd.copyLastResponse",
"title": "GSD: Copy Last Response"
},
{
"command": "gsd.switchSession",
"title": "GSD: Switch Session"
},
{
"command": "gsd.refreshSessions",
"title": "GSD: Refresh Sessions",
"icon": "$(refresh)"
},
{
"command": "gsd.clearFileDecorations",
"title": "GSD: Clear File Decorations"
},
{
"command": "gsd.showHistory",
"title": "GSD: Show Conversation History"
},
{
"command": "gsd.askAboutSymbol",
"title": "GSD: Ask About Symbol"
}
],
"keybindings": [
{
"command": "gsd.newSession",
"key": "ctrl+shift+g ctrl+shift+n",
"mac": "cmd+shift+g cmd+shift+n"
},
{
"command": "gsd.cycleModel",
"key": "ctrl+shift+g ctrl+shift+m",
"mac": "cmd+shift+g cmd+shift+m"
},
{
"command": "gsd.cycleThinking",
"key": "ctrl+shift+g ctrl+shift+t",
"mac": "cmd+shift+g cmd+shift+t"
},
{
"command": "gsd.abort",
"key": "ctrl+shift+g ctrl+shift+a",
"mac": "cmd+shift+g cmd+shift+a"
},
{
"command": "gsd.steer",
"key": "ctrl+shift+g ctrl+shift+i",
"mac": "cmd+shift+g cmd+shift+i"
},
{
"command": "gsd.sendMessage",
"key": "ctrl+shift+g ctrl+shift+p",
"mac": "cmd+shift+g cmd+shift+p"
}
],
"viewsContainers": {
"activitybar": [
{
"id": "gsd",
"title": "GSD",
"icon": "$(hubot)"
}
]
},
"views": {
"gsd": [
{
"type": "webview",
"id": "gsd-sidebar",
"name": "GSD Agent"
},
{
"id": "gsd-sessions",
"name": "Sessions"
}
]
},
"menus": {
"view/title": [
{
"command": "gsd.refreshSessions",
"when": "view == gsd-sessions",
"group": "navigation"
}
]
},
"chatParticipants": [
{
"id": "gsd.agent",
"name": "gsd",
"fullName": "GSD Agent",
"description": "GSD-2 coding agent",
"isSticky": true
}
],
"configuration": {
"title": "GSD",
"properties": {
"gsd.binaryPath": {
"type": "string",
"default": "gsd",
"description": "Path to the GSD binary"
},
"gsd.autoStart": {
"type": "boolean",
"default": false,
"description": "Automatically start the GSD agent when the extension activates"
},
"gsd.autoCompaction": {
"type": "boolean",
"default": true,
"description": "Enable automatic context compaction"
},
"gsd.codeLens": {
"type": "boolean",
"default": true,
"description": "Show 'Ask GSD' code lens above functions and classes"
}
}
}
},
"scripts": {
"build": "tsc",
"watch": "tsc --watch",
"package": "vsce package",
"publish": "vsce publish"
},
"devDependencies": {
"@types/vscode": "^1.95.0",
"@vscode/vsce": "^3.7.1",
"typescript": "^5.7.0"
}
}