Comprehensive vscode extension redesign with sidebar reorganization, new features, and enhanced agent integration: - Redesign sidebar UI: reduce 6 panels to 3, declutter layout - SCM provider for tracking agent-modified files - Checkpoint system for saving/restoring agent state - Diagnostic integration for surfacing errors in editor - Line-level editor decorations for agent-modified lines - Git integration for visualizing agent changes - Execution plan viewer for live agent step visualization - Approval/permissions mode system - Auto-inject editor selection and diagnostics in chat - Route workflow buttons through Chat panel - Handle extension UI requests from agent (select, confirm, input) - Session persistence, ISO timestamp support, descriptive checkpoints - Bump to v0.3.0
411 lines
10 KiB
JSON
411 lines
10 KiB
JSON
{
|
|
"name": "gsd-2",
|
|
"displayName": "GSD-2",
|
|
"description": "VS Code integration for the GSD-2 coding agent — sidebar dashboard, @gsd chat participant, activity feed, conversation history, code lens, session forking, slash command completion, workflow controls, and 33 commands",
|
|
"publisher": "FluxLabs",
|
|
"version": "0.3.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"
|
|
},
|
|
{
|
|
"command": "gsd.clearActivity",
|
|
"title": "GSD: Clear Activity Feed",
|
|
"icon": "$(clear-all)"
|
|
},
|
|
{
|
|
"command": "gsd.forkSession",
|
|
"title": "GSD: Fork Session"
|
|
},
|
|
{
|
|
"command": "gsd.toggleSteeringMode",
|
|
"title": "GSD: Toggle Steering Mode"
|
|
},
|
|
{
|
|
"command": "gsd.toggleFollowUpMode",
|
|
"title": "GSD: Toggle Follow-Up Mode"
|
|
},
|
|
{
|
|
"command": "gsd.refactorSymbol",
|
|
"title": "GSD: Refactor Symbol"
|
|
},
|
|
{
|
|
"command": "gsd.findBugsSymbol",
|
|
"title": "GSD: Find Bugs in Symbol"
|
|
},
|
|
{
|
|
"command": "gsd.generateTestsSymbol",
|
|
"title": "GSD: Generate Tests for Symbol"
|
|
},
|
|
{
|
|
"command": "gsd.acceptAllChanges",
|
|
"title": "GSD: Accept All Agent Changes",
|
|
"icon": "$(check-all)"
|
|
},
|
|
{
|
|
"command": "gsd.discardAllChanges",
|
|
"title": "GSD: Discard All Agent Changes",
|
|
"icon": "$(discard)"
|
|
},
|
|
{
|
|
"command": "gsd.acceptFileChanges",
|
|
"title": "Accept Changes",
|
|
"icon": "$(check)"
|
|
},
|
|
{
|
|
"command": "gsd.discardFileChanges",
|
|
"title": "Discard Changes",
|
|
"icon": "$(discard)"
|
|
},
|
|
{
|
|
"command": "gsd.restoreCheckpoint",
|
|
"title": "GSD: Restore Checkpoint"
|
|
},
|
|
{
|
|
"command": "gsd.fixProblemsInFile",
|
|
"title": "GSD: Fix Problems in File"
|
|
},
|
|
{
|
|
"command": "gsd.fixAllProblems",
|
|
"title": "GSD: Fix All Problems"
|
|
},
|
|
{
|
|
"command": "gsd.clearDiagnostics",
|
|
"title": "GSD: Clear Agent Diagnostics"
|
|
},
|
|
{
|
|
"command": "gsd.commitAgentChanges",
|
|
"title": "GSD: Commit Agent Changes"
|
|
},
|
|
{
|
|
"command": "gsd.createAgentBranch",
|
|
"title": "GSD: Create Branch for Agent Work"
|
|
},
|
|
{
|
|
"command": "gsd.showAgentDiff",
|
|
"title": "GSD: Show Agent Diff"
|
|
},
|
|
{
|
|
"command": "gsd.clearPlan",
|
|
"title": "GSD: Clear Plan View",
|
|
"icon": "$(clear-all)"
|
|
},
|
|
{
|
|
"command": "gsd.cycleApprovalMode",
|
|
"title": "GSD: Cycle Approval Mode"
|
|
},
|
|
{
|
|
"command": "gsd.selectApprovalMode",
|
|
"title": "GSD: Select Approval Mode"
|
|
}
|
|
],
|
|
"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"
|
|
},
|
|
{
|
|
"id": "gsd-activity",
|
|
"name": "Activity"
|
|
}
|
|
]
|
|
},
|
|
"menus": {
|
|
"view/title": [
|
|
{
|
|
"command": "gsd.refreshSessions",
|
|
"when": "view == gsd-sessions",
|
|
"group": "navigation"
|
|
},
|
|
{
|
|
"command": "gsd.clearActivity",
|
|
"when": "view == gsd-activity",
|
|
"group": "navigation"
|
|
}
|
|
],
|
|
"scm/title": [
|
|
{
|
|
"command": "gsd.acceptAllChanges",
|
|
"group": "navigation",
|
|
"when": "scmProvider == gsd"
|
|
},
|
|
{
|
|
"command": "gsd.discardAllChanges",
|
|
"group": "navigation",
|
|
"when": "scmProvider == gsd"
|
|
}
|
|
],
|
|
"scm/resourceState/context": [
|
|
{
|
|
"command": "gsd.acceptFileChanges",
|
|
"group": "inline",
|
|
"when": "scmProvider == gsd"
|
|
},
|
|
{
|
|
"command": "gsd.discardFileChanges",
|
|
"group": "inline",
|
|
"when": "scmProvider == gsd"
|
|
}
|
|
]
|
|
},
|
|
"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"
|
|
},
|
|
"gsd.showProgressNotifications": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"description": "Show progress notification while the agent is working"
|
|
},
|
|
"gsd.activityFeedMaxItems": {
|
|
"type": "number",
|
|
"default": 100,
|
|
"minimum": 10,
|
|
"maximum": 500,
|
|
"description": "Maximum number of items shown in the Activity feed"
|
|
},
|
|
"gsd.showContextWarning": {
|
|
"type": "boolean",
|
|
"default": true,
|
|
"description": "Warn when context window usage exceeds the threshold"
|
|
},
|
|
"gsd.contextWarningThreshold": {
|
|
"type": "number",
|
|
"default": 80,
|
|
"minimum": 50,
|
|
"maximum": 95,
|
|
"description": "Context window usage percentage that triggers a warning"
|
|
},
|
|
"gsd.approvalMode": {
|
|
"type": "string",
|
|
"default": "auto-approve",
|
|
"enum": ["auto-approve", "ask", "plan-only"],
|
|
"enumDescriptions": [
|
|
"Agent runs freely without prompts",
|
|
"Prompt before file changes and commands",
|
|
"Read-only mode — agent can analyze but not modify"
|
|
],
|
|
"description": "Approval mode for agent actions"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"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"
|
|
}
|
|
}
|