-
-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathpackage.json
More file actions
258 lines (258 loc) · 8.47 KB
/
Copy pathpackage.json
File metadata and controls
258 lines (258 loc) · 8.47 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
{
"$schema": "https://json.schemastore.org/package.json",
"name": "teamxray",
"displayName": "Team X-Ray",
"description": "Human discovery through code analysis - reveal team expertise, communication styles, and hidden strengths using the Copilot SDK and git history",
"version": "2.1.3",
"publisher": "AndreaGriffiths",
"author": {
"name": "alacolombiadev"
},
"license": "MIT",
"repository": {
"type": "git",
"url": "https://github.com/AndreaGriffiths11/teamxray"
},
"bugs": {
"url": "https://github.com/AndreaGriffiths11/teamxray/issues"
},
"homepage": "https://github.com/AndreaGriffiths11/teamxray#readme",
"engines": {
"vscode": "^1.100.0"
},
"categories": [
"Other",
"Data Science",
"Machine Learning"
],
"keywords": [
"team",
"expertise",
"github",
"git",
"ai",
"analysis",
"collaboration",
"human-discovery",
"copilot",
"team-insights"
],
"galleryBanner": {
"color": "#007ACC",
"theme": "dark"
},
"icon": "resources/icon.png",
"activationEvents": [
"onStartupFinished"
],
"main": "./dist/extension.js",
"capabilities": {
"untrustedWorkspaces": {
"supported": false,
"description": "Team X-Ray runs local Git and Copilot CLI analysis, so it requires a trusted workspace."
}
},
"scripts": {
"postinstall": "node -e \"const fs=require('fs');const f='node_modules/@github/copilot-sdk/dist/session.js';if(fs.existsSync(f)){let c=fs.readFileSync(f,'utf8');c=c.replace(/from \\\"vscode-jsonrpc\\/node\\\"/g,'from \\\"vscode-jsonrpc/node.js\\\"');fs.writeFileSync(f,c)}\"",
"vscode:prepublish": "npm run package",
"compile": "webpack",
"watch": "webpack --watch",
"package": "webpack --mode production --devtool hidden-source-map",
"compile-tests": "tsc -p . --outDir out",
"watch-tests": "tsc -p . -w --outDir out",
"pretest": "npm run compile-tests && npm run compile && npm run lint",
"lint": "eslint src --ext ts",
"test": "vitest run --dir src",
"clean": "rimraf ./dist",
"eval:dev": "evalite watch",
"eval:run": "evalite run",
"eval:ci": "evalite run --reporter json"
},
"contributes": {
"commands": [
{
"command": "teamxray.analyzeRepository",
"title": "Team X-Ray: Analyze Repository Expertise"
},
{
"command": "teamxray.setGitHubToken",
"title": "Team X-Ray: Set GitHub Token"
},
{
"command": "teamxray.setByokApiKey",
"title": "Team X-Ray: Set BYOK API Key (Secure)"
},
{
"command": "teamxray.findExpertForFile",
"title": "Team X-Ray: Find Expert for This File"
},
{
"command": "teamxray.showTeamOverview",
"title": "Team X-Ray: Show Team Expertise Overview"
},
{
"command": "teamxray.analyzeFile",
"title": "Team X-Ray: Analyze This File"
},
{
"command": "teamxray.setHistoryWindow",
"title": "Team X-Ray: Set History Window"
},
{
"command": "teamxray.showStatusMenu",
"title": "Team X-Ray: Show Status Menu"
}
],
"menus": {
"explorer/context": [
{
"command": "teamxray.findExpertForFile",
"when": "resourceExtname =~ /\\.(js|ts|jsx|tsx|py|java|cpp|c|h|cs|rb|php|go|rs|kt|swift)$/",
"group": "1_modification"
}
],
"editor/context": [
{
"command": "teamxray.findExpertForFile",
"when": "resourceExtname =~ /\\.(js|ts|jsx|tsx|py|java|cpp|c|h|cs|rb|php|go|rs|kt|swift)$/",
"group": "1_modification"
}
]
},
"views": {
"explorer": [
{
"id": "teamxray.expertiseView",
"name": "Team Expertise",
"when": "teamxray.hasAnalysis",
"icon": "$(organization)"
}
]
},
"viewsContainers": {
"activitybar": [
{
"id": "teamxray",
"title": "Team X-Ray",
"icon": "$(organization)"
}
]
},
"configuration": {
"title": "Team X-Ray",
"properties": {
"teamxray.githubToken": {
"type": "string",
"scope": "machine",
"description": "DEPRECATED: Team X-Ray stores GitHub tokens in VS Code SecretStorage.",
"deprecationMessage": "Team X-Ray no longer reads tokens from settings. Use the 'Team X-Ray: Set GitHub Token' command instead."
},
"teamxray.cliPath": {
"type": "string",
"scope": "machine",
"description": "Absolute path to the Copilot CLI executable. This can only be set in user or remote settings."
},
"teamxray.aiProvider": {
"type": "string",
"scope": "machine",
"enum": [
"copilot",
"byok-openai",
"byok-anthropic",
"byok-azure",
"github-models"
],
"default": "copilot",
"enumDescriptions": [
"GitHub Copilot (auto-detects, zero config)",
"Bring Your Own Key — OpenAI-compatible API",
"Bring Your Own Key — Anthropic API",
"Bring Your Own Key — Azure OpenAI",
"Use GitHub Models directly (requires GitHub token)"
],
"description": "AI provider for team expertise analysis"
},
"teamxray.copilotModel": {
"type": "string",
"scope": "machine",
"default": "",
"description": "Optional GitHub Copilot model ID. Leave empty to use the Copilot CLI default."
},
"teamxray.githubModelsModel": {
"type": "string",
"scope": "machine",
"default": "openai/gpt-4.1",
"pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*\\/[A-Za-z0-9][A-Za-z0-9._-]*$",
"patternErrorMessage": "Use a GitHub Models catalog ID in the format publisher/model-name.",
"description": "GitHub Models catalog ID used when teamxray.aiProvider is github-models or as the fallback model."
},
"teamxray.byokBaseUrl": {
"type": "string",
"scope": "machine",
"description": "Base URL for BYOK provider (e.g. https://api.openai.com/v1)"
},
"teamxray.byokApiKey": {
"type": "string",
"scope": "machine",
"description": "DEPRECATED: Use the 'Team X-Ray: Set BYOK API Key (Secure)' command instead. This setting is kept for migration only.",
"deprecationMessage": "Team X-Ray no longer reads API keys from settings. Use the command 'Team X-Ray: Set BYOK API Key (Secure)' to store your API key in VS Code's encrypted SecretStorage."
},
"teamxray.byokModel": {
"type": "string",
"scope": "machine",
"description": "Model name for BYOK provider (required when teamxray.aiProvider is byok-openai/byok-anthropic/byok-azure)"
},
"teamxray.historyWindowDays": {
"type": "integer",
"default": 90,
"minimum": 0,
"description": "Limit git history to the last N days. Set to 0 to analyze all history (still capped at 1000 commits)."
},
"teamxray.additionalBotPatterns": {
"type": "array",
"items": {
"type": "string"
},
"default": [],
"description": "Extra case-insensitive substrings matched against contributor \"name <email>\" identities. Matches are classified as automation bots (e.g. org-internal CI accounts)."
},
"teamxray.humanOverrides": {
"type": "array",
"items": {
"type": "string"
},
"default": [],
"description": "Contributor emails that must never be classified as bots or agents, overriding all detection patterns."
}
}
}
},
"devDependencies": {
"@types/mocha": "^10.0.10",
"@types/node": "20.x",
"@types/vscode": "^1.100.0",
"@typescript-eslint/eslint-plugin": "^8.31.1",
"@typescript-eslint/parser": "^8.31.1",
"@vscode/test-cli": "^0.0.11",
"@vscode/test-electron": "^2.5.2",
"@vscode/vsce": "^3.7.1",
"autoevals": "^0.0.132",
"eslint": "^9.25.1",
"evalite": "^0.4.0",
"mocha": "^11.3.0",
"rimraf": "^6.0.1",
"ts-loader": "^9.5.2",
"typescript": "^5.8.3",
"vitest": "^4.1.4",
"webpack": "^5.105.0",
"webpack-cli": "^6.0.1"
},
"overrides": {
"serialize-javascript": "^7.0.5"
},
"dependencies": {
"@github/copilot-sdk": "^0.1.32",
"axios": "1.18.0",
"dotenv": "^16.5.0"
}
}