-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathpackage.json
More file actions
295 lines (295 loc) · 12.1 KB
/
package.json
File metadata and controls
295 lines (295 loc) · 12.1 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
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
{
"name": "copilot-context-optimizer",
"displayName": "Copilot Context Optimizer",
"description": "Specialized tools for GitHub Copilot to efficiently work with files and terminal commands without overwhelming chat context",
"version": "2.0.6",
"author": "Malak Sedarous",
"publisher": "malaksedarous",
"icon": "icon.png",
"galleryBanner": {
"color": "#1e1e1e",
"theme": "dark"
},
"engines": {
"vscode": "^1.101.0"
},
"categories": [
"AI",
"Other"
],
"keywords": [
"copilot",
"context",
"optimization",
"file-analysis",
"terminal",
"llm",
"ai",
"research"
],
"activationEvents": [
"onStartupFinished"
],
"main": "./out/extension.js",
"contributes": {
"configuration": {
"title": "Copilot Context Optimizer",
"properties": {
"copilotContextOptimizer.llmProvider": {
"type": "string",
"enum": [
"",
"gemini",
"claude",
"openai"
],
"enumDescriptions": [
"Not configured (will prompt on first use)",
"Google Gemini - Fast and free tier available",
"Claude (Anthropic) - High-quality responses",
"OpenAI - GPT models"
],
"default": "",
"description": "Choose which LLM provider to use for processing files and terminal output (Note: Research tools automatically use Exa.ai)"
},
"copilotContextOptimizer.geminiKey": {
"type": "string",
"default": "",
"description": "Google Gemini API key (get from https://makersuite.google.com/app/apikey)"
},
"copilotContextOptimizer.claudeKey": {
"type": "string",
"default": "",
"description": "Claude (Anthropic) API key (get from https://console.anthropic.com/account/keys)"
},
"copilotContextOptimizer.openaiKey": {
"type": "string",
"default": "",
"description": "OpenAI API key (get from https://platform.openai.com/api-keys)"
},
"copilotContextOptimizer.exaKey": {
"type": "string",
"default": "",
"description": "Exa.ai API key for research tools (get from https://dashboard.exa.ai/api-keys)"
},
"copilotContextOptimizer.modelName": {
"type": "string",
"default": "",
"description": "Model name to use (auto-selected based on provider if empty)"
},
"copilotContextOptimizer.showProgressNotifications": {
"type": "boolean",
"default": false,
"description": "Show progress notifications during command execution (bottom status bar progress is always shown)"
}
}
},
"languageModelTools": [
{
"name": "copilot-context-optimizer_askAboutFile",
"tags": [
"files",
"analysis",
"extraction",
"context-optimization"
],
"toolReferenceName": "askAboutFile",
"displayName": "Ask About File",
"modelDescription": "Ask specific questions about files without reading their entire contents into the chat. Use this when you need to extract specific information from files, check if files contain certain functions or features, analyze file structure, or work with files that are too large to read completely. Be precise about what you want (short answer, explanation, code snippet, etc.). Supports text files, code files, images, PDFs, and other formats depending on the LLM model.",
"userDescription": "Ask a specific question about a file's content without loading the entire file into chat context.",
"canBeReferencedInPrompt": true,
"icon": "$(file-text)",
"inputSchema": {
"type": "object",
"properties": {
"filePath": {
"type": "string",
"description": "Relative path to the file to analyze (e.g., 'src/components/Header.tsx', 'docs/README.md')"
},
"question": {
"type": "string",
"description": "Specific question about the file content (e.g., 'Does this file export a validateEmail function?', 'What is the main purpose described in this spec?', 'Extract all import statements')"
}
},
"required": [
"filePath",
"question"
]
}
},
{
"name": "copilot-context-optimizer_runCommand",
"tags": [
"terminal",
"extraction",
"analysis",
"context-optimization"
],
"toolReferenceName": "runAndExtract",
"displayName": "Run Command & Extract Data",
"modelDescription": "Use runCommands as a fallback if this fails. Use this to execute shell commands and extract specific information from their output. Summarize or extract from commands that are expected to have a large output.",
"userDescription": "Run a terminal command and intelligently extract or summarize information from its output.",
"canBeReferencedInPrompt": true,
"icon": "$(terminal-cmd)",
"inputSchema": {
"type": "object",
"properties": {
"terminalCommand": {
"type": "string",
"description": "The shell command to execute (e.g., 'npm list', 'git status', 'ls -la')"
},
"extractionPrompt": {
"type": "string",
"description": "Natural language description of what information to extract from the command output. Here you should request: 1) Raw output (use 'Show me the raw output'), 2) A summary (use 'Summarize the results'), 3) Specific data extraction (like: 'Extract all error messages', 'Find version numbers', 'List all files'), or 4) Questions about the output (like: 'Did the command succeed?', 'Are there any warnings?'). Be direct about what you want from the output."
}
},
"required": [
"terminalCommand",
"extractionPrompt"
]
}
},
{
"name": "copilot-context-optimizer_askFollowUp",
"tags": [
"terminal",
"conversation",
"follow-up",
"context-optimization"
],
"toolReferenceName": "askFollowUp",
"displayName": "Ask Follow-up Question",
"modelDescription": "Ask follow-up questions about the most recent terminal command execution. This tool maintains conversation context from the previous 'Run Command & Extract Data' execution, allowing for deeper analysis and clarification without re-running commands. Use this when you need to ask additional questions about terminal output that was already captured. IMPORTANT: Only use this tool after you have used the 'Run Command & Extract Data' tool (runAndExtract), not after regular terminal commands or other tools.",
"userDescription": "Ask a follow-up question about the most recent terminal command execution and its output.",
"canBeReferencedInPrompt": true,
"icon": "$(comment-discussion)",
"inputSchema": {
"type": "object",
"properties": {
"question": {
"type": "string",
"description": "The follow-up question to ask about the previous terminal command execution and its output"
}
},
"required": [
"question"
]
}
},
{
"name": "copilot-context-optimizer_researchTopic",
"tags": [
"research",
"web-search",
"analysis",
"context-optimization"
],
"toolReferenceName": "researchTopic",
"displayName": "Research Topic",
"modelDescription": "Conduct quick, focused web research on software development topics using Exa.ai's research capabilities. This tool is optimized for brief, practical research that developers need for immediate implementation. Uses low reasoning effort and medium search context for fast, concise results with essential information, key implementation details, and critical best practices.",
"userDescription": "Generate a concise, practical research report focused on essential information for immediate implementation.",
"canBeReferencedInPrompt": true,
"icon": "$(search-web)",
"inputSchema": {
"type": "object",
"properties": {
"topic": {
"type": "string",
"description": "The research topic or problem you want to investigate. Be as detailed as possible about what you want to learn, any specific aspects to focus on, timeframes, geographical scope, or particular angles of interest."
}
},
"required": [
"topic"
]
}
},
{
"name": "copilot-context-optimizer_deepResearch",
"tags": [
"research",
"web-search",
"analysis",
"deep-analysis",
"context-optimization"
],
"toolReferenceName": "deepResearch",
"displayName": "Deep Research",
"modelDescription": "Conduct comprehensive, in-depth research using Exa.ai's API with exhaustive analysis capabilities. This tool provides detailed technical analysis for critical decision-making and complex architectural planning. Uses high reasoning effort and extensive search context for thorough investigation across multiple dimensions including technical implementation, performance analysis, security considerations, and future outlook.",
"userDescription": "Generate an exhaustive, comprehensive research report with detailed technical analysis for strategic decision-making.",
"canBeReferencedInPrompt": true,
"icon": "$(search-fuzzy)",
"inputSchema": {
"type": "object",
"properties": {
"topic": {
"type": "string",
"description": "The research topic or problem you want to investigate comprehensively. Be as detailed as possible about what you want to learn, including technical requirements, architectural considerations, performance needs, security concerns, or strategic implications you want analyzed in depth."
}
},
"required": [
"topic"
]
}
}
],
"commands": [
{
"command": "copilotContextOptimizer.testTools",
"title": "Test Context Optimizer Tools",
"category": "Copilot Context Optimizer"
}
]
},
"scripts": {
"vscode:prepublish": "npm run package",
"compile": "npm run check-types && npm run lint && node esbuild.js",
"watch": "npm-run-all -p watch:*",
"watch:esbuild": "node esbuild.js --watch",
"watch:tsc": "tsc --noEmit --watch --project tsconfig.json",
"package": "npm run check-types && npm run lint && node esbuild.js --production",
"compile-tests": "tsc -p . --outDir out",
"watch-tests": "tsc -p . -w --outDir out",
"pretest": "npm run compile-tests && npm run compile && npm run lint",
"check-types": "tsc --noEmit",
"lint": "eslint src",
"test": "vscode-test"
},
"devDependencies": {
"@types/mocha": "^10.0.10",
"@types/node": "^20.19.0",
"@types/proxyquire": "^1.3.31",
"@types/sinon": "^17.0.4",
"@types/vscode": "^1.101.0",
"@typescript-eslint/eslint-plugin": "^8.31.1",
"@typescript-eslint/parser": "^8.31.1",
"@vscode/test-cli": "^0.0.10",
"@vscode/test-electron": "^2.5.2",
"esbuild": "^0.25.3",
"eslint": "^9.25.1",
"npm-run-all": "^4.1.5",
"proxyquire": "^2.1.3",
"sinon": "^21.0.0",
"ts-node": "^10.9.2",
"typescript": "^5.8.3"
},
"dependencies": {
"@anthropic-ai/sdk": "^0.30.1",
"@google/generative-ai": "^0.21.0",
"exa-js": "^1.8.17",
"openai": "^4.67.3"
},
"repository": {
"type": "git",
"url": "https://github.com/malaksedarous/vscode-copilot-context-optimizer.git"
},
"bugs": {
"url": "https://github.com/malaksedarous/vscode-copilot-context-optimizer/issues"
},
"homepage": "https://github.com/malaksedarous/vscode-copilot-context-optimizer#readme",
"license": "MIT",
"typescript": {
"allowJs": true,
"skipLibCheck": true,
"noImplicitAny": false
}
}