{ "name": "socraticode", "displayName": "SocratiCode", "description": "Codebase context engine for AI assistants. Hybrid search, dependency and call graphs, symbol-level impact analysis (blast radius), interactive graph explorer, and searchable architecture artefacts. Works with Copilot agent mode, Cline, Continue, Roo Code, and any MCP-compatible host.", "version": "1.8.4", "publisher": "giancarloerra", "license": "AGPL-3.0-only", "icon": "images/icon.png", "galleryBanner": { "color": "#3a3d8c", "theme": "dark" }, "engines": { "vscode": "^1.99.0", "node": ">=18.0.0" }, "categories": [ "AI", "Programming Languages", "Visualization", "Other" ], "keywords": [ "ai", "mcp", "codebase", "context", "search", "semantic search", "dependency graph", "call graph", "impact analysis", "blast radius", "qdrant", "ollama", "copilot" ], "homepage": "https://github.com/giancarloerra/socraticode", "repository": { "type": "git", "url": "https://github.com/giancarloerra/socraticode.git", "directory": "extension" }, "bugs": { "url": "https://github.com/giancarloerra/socraticode/issues" }, "qna": "https://github.com/giancarloerra/socraticode/discussions", "sponsor": { "url": "https://altaire.com" }, "main": "./dist/extension.js", "activationEvents": [ "onStartupFinished" ], "contributes": { "mcpServerDefinitionProviders": [ { "id": "socraticode.mcp", "label": "SocratiCode" } ], "viewsContainers": { "activitybar": [ { "id": "socraticode", "title": "SocratiCode", "icon": "images/icon.png" } ] }, "views": { "socraticode": [ { "id": "socraticode.projects", "name": "Indexed projects", "icon": "images/icon.png", "contextualTitle": "SocratiCode" } ] }, "viewsWelcome": [ { "view": "socraticode.projects", "contents": "SocratiCode indexes your codebase so AI assistants can search, trace dependencies and run impact analysis on it.\n\n[Index this workspace](command:socraticode.indexCurrentWorkspace)\n\nAsk your AI assistant (Copilot agent mode, Cline, Continue, Roo Code) to call any SocratiCode tool. The MCP server registers automatically on activation.\n\n[Open the getting-started walkthrough](command:socraticode.openWalkthrough)\n\n[Read the docs](https://github.com/giancarloerra/socraticode#readme)" } ], "commands": [ { "command": "socraticode.indexCurrentWorkspace", "title": "SocratiCode: Index current workspace", "category": "SocratiCode" }, { "command": "socraticode.openInteractiveGraph", "title": "SocratiCode: Open interactive graph", "category": "SocratiCode" }, { "command": "socraticode.refreshProjects", "title": "SocratiCode: Refresh indexed projects", "category": "SocratiCode", "icon": "$(refresh)" }, { "command": "socraticode.openWalkthrough", "title": "SocratiCode: Open getting-started walkthrough", "category": "SocratiCode" }, { "command": "socraticode.openOutput", "title": "SocratiCode: Show output / logs", "category": "SocratiCode" } ], "menus": { "view/title": [ { "command": "socraticode.refreshProjects", "when": "view == socraticode.projects", "group": "navigation" } ], "commandPalette": [ { "command": "socraticode.refreshProjects" } ] }, "configuration": { "title": "SocratiCode", "properties": { "socraticode.command": { "type": "string", "default": "npx", "description": "Command used to launch the engine. Defaults to `npx -y socraticode`. Override only if you have a custom install.", "scope": "window" }, "socraticode.args": { "type": "array", "default": [ "-y", "socraticode" ], "items": { "type": "string" }, "description": "Arguments passed to `socraticode.command`.", "scope": "window" }, "socraticode.env": { "type": "object", "default": {}, "additionalProperties": { "type": "string" }, "description": "Non-secret environment variables forwarded to the engine. Use this for non-sensitive engine config like external Qdrant URL (`QDRANT_MODE=external`, `QDRANT_URL`), embedding provider selection (`EMBEDDING_PROVIDER`), project IDs, branch-aware indexing, and so on. AVOID storing API keys or tokens here: workspace settings can be synced via VS Code Settings Sync and may end up in committed `.vscode/settings.json` files. For secrets, prefer OS environment variables, a local `.env` file outside settings, or a system keychain.", "scope": "window" }, "socraticode.statusBar": { "type": "boolean", "default": true, "description": "Show the SocratiCode status bar item.", "scope": "window" } } }, "walkthroughs": [ { "id": "socraticode.gettingStarted", "title": "Get started with SocratiCode", "description": "Index your first project and try the interactive graph.", "steps": [ { "id": "index-project", "title": "Index your first project", "description": "Run a one-time index of your current workspace. Subsequent updates are incremental.", "media": { "markdown": "walkthroughs/first-index.md" }, "completionEvents": [ "onCommand:socraticode.indexCurrentWorkspace" ] }, { "id": "try-search", "title": "Search and explore the graph", "description": "Open the interactive graph or ask your AI assistant a search question grounded in the codebase.", "media": { "markdown": "walkthroughs/first-search.md" }, "completionEvents": [ "onCommand:socraticode.openInteractiveGraph" ] } ] } ] }, "scripts": { "compile": "node esbuild.config.mjs", "watch": "node esbuild.config.mjs --watch", "typecheck": "tsc --noEmit", "lint": "biome check src", "test": "node --test --import tsx src/__tests__/*.test.ts", "package": "vsce package --no-dependencies", "publish:vsce": "vsce publish --no-dependencies", "publish:ovsx": "ovsx publish --no-dependencies", "publish:all": "npm run publish:vsce && npm run publish:ovsx", "vscode:prepublish": "npm run compile" }, "devDependencies": { "@biomejs/biome": "^2.0.0", "@types/node": "^20.0.0", "@types/vscode": "^1.99.0", "@vscode/vsce": "^3.2.0", "esbuild": "^0.24.0", "ovsx": "^0.10.0", "tsx": "^4.19.0", "typescript": "^5.6.0" } }