Repository navigation
Expand file tree
/
Copy pathpackage.json
More file actions
221 lines (221 loc) · 7.08 KB
/
Copy pathpackage.json
File metadata and controls
221 lines (221 loc) · 7.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
{
"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.10.0",
"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"
}
}