@perfai/mcp 1.0.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +352 -0
  3. package/dist/auth/authManager.d.ts +83 -0
  4. package/dist/auth/authManager.d.ts.map +1 -0
  5. package/dist/auth/authManager.js +555 -0
  6. package/dist/auth/sessionCache.d.ts +5 -0
  7. package/dist/auth/sessionCache.d.ts.map +1 -0
  8. package/dist/auth/sessionCache.js +29 -0
  9. package/dist/auth/sessionStorage.d.ts +53 -0
  10. package/dist/auth/sessionStorage.d.ts.map +1 -0
  11. package/dist/auth/sessionStorage.js +234 -0
  12. package/dist/auth/types.d.ts +28 -0
  13. package/dist/auth/types.d.ts.map +1 -0
  14. package/dist/auth/types.js +1 -0
  15. package/dist/config.d.ts +65 -0
  16. package/dist/config.d.ts.map +1 -0
  17. package/dist/config.js +74 -0
  18. package/dist/server.d.ts +3 -0
  19. package/dist/server.d.ts.map +1 -0
  20. package/dist/server.js +144 -0
  21. package/dist/setup-config.d.ts +4 -0
  22. package/dist/setup-config.d.ts.map +1 -0
  23. package/dist/setup-config.js +69 -0
  24. package/dist/tools/index.d.ts +361 -0
  25. package/dist/tools/index.d.ts.map +1 -0
  26. package/dist/tools/index.js +275 -0
  27. package/dist/tools/protected/aiFixDesignIssue.d.ts +17 -0
  28. package/dist/tools/protected/aiFixDesignIssue.d.ts.map +1 -0
  29. package/dist/tools/protected/aiFixDesignIssue.js +205 -0
  30. package/dist/tools/protected/aiFixQualityIssue.d.ts +17 -0
  31. package/dist/tools/protected/aiFixQualityIssue.d.ts.map +1 -0
  32. package/dist/tools/protected/aiFixQualityIssue.js +188 -0
  33. package/dist/tools/protected/aiFixSecurityIssue.d.ts +17 -0
  34. package/dist/tools/protected/aiFixSecurityIssue.d.ts.map +1 -0
  35. package/dist/tools/protected/aiFixSecurityIssue.js +205 -0
  36. package/dist/tools/protected/checkDesignFixes.d.ts +17 -0
  37. package/dist/tools/protected/checkDesignFixes.d.ts.map +1 -0
  38. package/dist/tools/protected/checkDesignFixes.js +199 -0
  39. package/dist/tools/protected/checkQualityFixes.d.ts +17 -0
  40. package/dist/tools/protected/checkQualityFixes.d.ts.map +1 -0
  41. package/dist/tools/protected/checkQualityFixes.js +199 -0
  42. package/dist/tools/protected/checkSecurityFixes.d.ts +17 -0
  43. package/dist/tools/protected/checkSecurityFixes.d.ts.map +1 -0
  44. package/dist/tools/protected/checkSecurityFixes.js +177 -0
  45. package/dist/tools/protected/listApis.d.ts +28 -0
  46. package/dist/tools/protected/listApis.d.ts.map +1 -0
  47. package/dist/tools/protected/listApis.js +102 -0
  48. package/dist/tools/protected/logout.d.ts +11 -0
  49. package/dist/tools/protected/logout.d.ts.map +1 -0
  50. package/dist/tools/protected/logout.js +22 -0
  51. package/dist/tools/protected/manageOrganizations.d.ts +26 -0
  52. package/dist/tools/protected/manageOrganizations.d.ts.map +1 -0
  53. package/dist/tools/protected/manageOrganizations.js +147 -0
  54. package/dist/tools/protected/runDesignTest.d.ts +21 -0
  55. package/dist/tools/protected/runDesignTest.d.ts.map +1 -0
  56. package/dist/tools/protected/runDesignTest.js +132 -0
  57. package/dist/tools/protected/runQualityTest.d.ts +21 -0
  58. package/dist/tools/protected/runQualityTest.d.ts.map +1 -0
  59. package/dist/tools/protected/runQualityTest.js +150 -0
  60. package/dist/tools/protected/runSecurityTest.d.ts +21 -0
  61. package/dist/tools/protected/runSecurityTest.d.ts.map +1 -0
  62. package/dist/tools/protected/runSecurityTest.js +107 -0
  63. package/dist/tools/protected/selectApi.d.ts +24 -0
  64. package/dist/tools/protected/selectApi.d.ts.map +1 -0
  65. package/dist/tools/protected/selectApi.js +172 -0
  66. package/dist/tools/protected/setup.d.ts +11 -0
  67. package/dist/tools/protected/setup.d.ts.map +1 -0
  68. package/dist/tools/protected/setup.js +151 -0
  69. package/dist/tools/protected/showDesignIssues.d.ts +38 -0
  70. package/dist/tools/protected/showDesignIssues.d.ts.map +1 -0
  71. package/dist/tools/protected/showDesignIssues.js +201 -0
  72. package/dist/tools/protected/showFixedIssues.d.ts +11 -0
  73. package/dist/tools/protected/showFixedIssues.d.ts.map +1 -0
  74. package/dist/tools/protected/showFixedIssues.js +36 -0
  75. package/dist/tools/protected/showQualityIssues.d.ts +33 -0
  76. package/dist/tools/protected/showQualityIssues.d.ts.map +1 -0
  77. package/dist/tools/protected/showQualityIssues.js +225 -0
  78. package/dist/tools/protected/showSecurityIssues.d.ts +47 -0
  79. package/dist/tools/protected/showSecurityIssues.d.ts.map +1 -0
  80. package/dist/tools/protected/showSecurityIssues.js +212 -0
  81. package/dist/tools/protected/summarizeIssues.d.ts +11 -0
  82. package/dist/tools/protected/summarizeIssues.d.ts.map +1 -0
  83. package/dist/tools/protected/summarizeIssues.js +161 -0
  84. package/dist/tools/protected/userInfo.d.ts +11 -0
  85. package/dist/tools/protected/userInfo.d.ts.map +1 -0
  86. package/dist/tools/protected/userInfo.js +21 -0
  87. package/dist/tools/protected/visionAiAppLearning.d.ts +37 -0
  88. package/dist/tools/protected/visionAiAppLearning.d.ts.map +1 -0
  89. package/dist/tools/protected/visionAiAppLearning.js +122 -0
  90. package/dist/tools/public/authStatus.d.ts +11 -0
  91. package/dist/tools/public/authStatus.d.ts.map +1 -0
  92. package/dist/tools/public/authStatus.js +78 -0
  93. package/dist/tools/public/login.d.ts +12 -0
  94. package/dist/tools/public/login.d.ts.map +1 -0
  95. package/dist/tools/public/login.js +230 -0
  96. package/dist/types/api.d.ts +12 -0
  97. package/dist/types/api.d.ts.map +1 -0
  98. package/dist/types/api.js +1 -0
  99. package/dist/utils/dockerRunner.d.ts +44 -0
  100. package/dist/utils/dockerRunner.d.ts.map +1 -0
  101. package/dist/utils/dockerRunner.js +300 -0
  102. package/dist/utils/formatters.d.ts +14 -0
  103. package/dist/utils/formatters.d.ts.map +1 -0
  104. package/dist/utils/formatters.js +510 -0
  105. package/dist/utils/promptBuilder.d.ts +4 -0
  106. package/dist/utils/promptBuilder.d.ts.map +1 -0
  107. package/dist/utils/promptBuilder.js +132 -0
  108. package/package.json +67 -0
@@ -0,0 +1,361 @@
1
+ export * from './public/login.js';
2
+ export * from './public/authStatus.js';
3
+ export * from './protected/userInfo.js';
4
+ export * from './protected/logout.js';
5
+ export * from './protected/setup.js';
6
+ export * from './protected/showSecurityIssues.js';
7
+ export * from './protected/showDesignIssues.js';
8
+ export * from './protected/showQualityIssues.js';
9
+ export * from './protected/manageOrganizations.js';
10
+ export * from './protected/listApis.js';
11
+ export * from './protected/selectApi.js';
12
+ export * from './protected/aiFixSecurityIssue.js';
13
+ export * from './protected/aiFixDesignIssue.js';
14
+ export * from './protected/aiFixQualityIssue.js';
15
+ export * from './protected/showFixedIssues.js';
16
+ export * from './protected/checkSecurityFixes.js';
17
+ export * from './protected/checkDesignFixes.js';
18
+ export * from './protected/checkQualityFixes.js';
19
+ export * from './protected/summarizeIssues.js';
20
+ export declare const PUBLIC_TOOLS: {
21
+ readonly login: {
22
+ readonly name: "login";
23
+ readonly description: "🔐 Login to PerfAI using Auth0 OAuth. Opens browser for authentication. Required before using any other tools.";
24
+ readonly inputSchema: {
25
+ readonly type: "object";
26
+ readonly properties: {};
27
+ readonly additionalProperties: false;
28
+ };
29
+ };
30
+ readonly auth_status: {
31
+ readonly name: "auth_status";
32
+ readonly description: "📊 Check current authentication status and user information";
33
+ readonly inputSchema: {
34
+ readonly type: "object";
35
+ readonly properties: {};
36
+ readonly additionalProperties: false;
37
+ };
38
+ };
39
+ };
40
+ export declare const PROTECTED_TOOLS: {
41
+ readonly user_info: {
42
+ readonly name: "user_info";
43
+ readonly description: "👤 Get detailed information about the authenticated user";
44
+ readonly inputSchema: {
45
+ readonly type: "object";
46
+ readonly properties: {};
47
+ readonly additionalProperties: false;
48
+ };
49
+ };
50
+ readonly logout: {
51
+ readonly name: "logout";
52
+ readonly description: "🚪 Logout from PerfAI and clear authentication session";
53
+ readonly inputSchema: {
54
+ readonly type: "object";
55
+ readonly properties: {};
56
+ readonly additionalProperties: false;
57
+ };
58
+ };
59
+ readonly setup: {
60
+ readonly name: "setup";
61
+ readonly description: "🚀 Setup organization and app with default values (requires authentication)";
62
+ readonly inputSchema: {
63
+ readonly type: "object";
64
+ readonly properties: {};
65
+ readonly additionalProperties: false;
66
+ };
67
+ };
68
+ readonly show_security_issues: {
69
+ readonly name: "show_security_issues";
70
+ readonly description: "🔒 List security issues for selected APP — filter by severity, status, and sort order (shows 20 at a time)";
71
+ readonly inputSchema: {
72
+ readonly type: "object";
73
+ readonly properties: {
74
+ readonly limit: {
75
+ readonly type: "number";
76
+ readonly description: "Number of issues to fetch (default: 20, max: 100)";
77
+ };
78
+ readonly severities: {
79
+ readonly type: "array";
80
+ readonly items: {
81
+ readonly type: "string";
82
+ readonly enum: readonly ["Low", "Medium", "High", "Critical"];
83
+ };
84
+ readonly description: "Filter by severity levels e.g. [\"Critical\", \"High\"]";
85
+ };
86
+ readonly status: {
87
+ readonly type: "string";
88
+ readonly enum: readonly ["Open", "Dismissed"];
89
+ readonly description: "Filter by status (default: Open)";
90
+ };
91
+ readonly sort_by: {
92
+ readonly type: "string";
93
+ readonly enum: readonly ["severity", "cvss", "method", "path", "type"];
94
+ readonly description: "Sort field (default: severity)";
95
+ };
96
+ readonly sort_order: {
97
+ readonly type: "string";
98
+ readonly enum: readonly ["ASC", "DESC"];
99
+ readonly description: "Sort direction (default: DESC)";
100
+ };
101
+ readonly search: {
102
+ readonly type: "string";
103
+ readonly description: "Search by keyword (optional)";
104
+ };
105
+ readonly cursor: {
106
+ readonly type: "string";
107
+ readonly description: "Pagination cursor (optional)";
108
+ };
109
+ };
110
+ readonly additionalProperties: false;
111
+ };
112
+ };
113
+ readonly show_design_issues: {
114
+ readonly name: "show_design_issues";
115
+ readonly description: "🎨 List design issues for selected APP — filter by status and sort order (shows 20 at a time)";
116
+ readonly inputSchema: {
117
+ readonly type: "object";
118
+ readonly properties: {
119
+ readonly limit: {
120
+ readonly type: "number";
121
+ readonly description: "Number of issues to fetch (default: 20, max: 100)";
122
+ };
123
+ readonly status: {
124
+ readonly type: "string";
125
+ readonly enum: readonly ["Open", "Dismissed"];
126
+ readonly description: "Filter by status (default: Open)";
127
+ };
128
+ readonly sort_by: {
129
+ readonly type: "string";
130
+ readonly description: "Sort field e.g. 'createdOn' (optional)";
131
+ };
132
+ readonly sort_order: {
133
+ readonly type: "string";
134
+ readonly enum: readonly ["ASC", "DESC"];
135
+ readonly description: "Sort direction (default: DESC)";
136
+ };
137
+ readonly search: {
138
+ readonly type: "string";
139
+ readonly description: "Search by keyword (optional)";
140
+ };
141
+ readonly cursor: {
142
+ readonly type: "string";
143
+ readonly description: "Pagination cursor (optional)";
144
+ };
145
+ };
146
+ readonly additionalProperties: false;
147
+ };
148
+ };
149
+ readonly show_quality_issues: {
150
+ readonly name: "show_quality_issues";
151
+ readonly description: "🔍 List quality/spec issues for selected APP — filter by sort order (shows 20 at a time)";
152
+ readonly inputSchema: {
153
+ readonly type: "object";
154
+ readonly properties: {
155
+ readonly limit: {
156
+ readonly type: "number";
157
+ readonly description: "Number of issues to fetch (default: 20, max: 100)";
158
+ };
159
+ readonly sort_by: {
160
+ readonly type: "string";
161
+ readonly description: "Sort field (optional)";
162
+ };
163
+ readonly sort_order: {
164
+ readonly type: "string";
165
+ readonly enum: readonly ["ASC", "DESC"];
166
+ readonly description: "Sort direction (default: DESC)";
167
+ };
168
+ readonly search: {
169
+ readonly type: "string";
170
+ readonly description: "Search by keyword (optional)";
171
+ };
172
+ readonly cursor: {
173
+ readonly type: "string";
174
+ readonly description: "Page number for next page (optional)";
175
+ };
176
+ };
177
+ readonly additionalProperties: false;
178
+ };
179
+ };
180
+ readonly manage_organizations: {
181
+ readonly name: "manage_organizations";
182
+ readonly description: "🏢 List and manage organizations. Use action=select with sequence (number) or org_id.";
183
+ readonly inputSchema: {
184
+ readonly type: "object";
185
+ readonly properties: {
186
+ readonly action: {
187
+ readonly type: "string";
188
+ readonly enum: readonly ["list", "select", "refresh"];
189
+ readonly description: "Action: list (show numbered orgs), select (choose by sequence or org_id), refresh";
190
+ readonly default: "list";
191
+ };
192
+ readonly sequence: {
193
+ readonly type: "number";
194
+ readonly description: "Sequence number from the list (preferred over org_id)";
195
+ };
196
+ readonly org_id: {
197
+ readonly type: "string";
198
+ readonly description: "Organization ID to select";
199
+ };
200
+ };
201
+ readonly additionalProperties: false;
202
+ };
203
+ };
204
+ readonly list_apps: {
205
+ readonly name: "list_apps";
206
+ readonly description: "📋 List all apps with optional search, environment filter, and pagination (requires authentication)";
207
+ readonly inputSchema: {
208
+ readonly type: "object";
209
+ readonly properties: {
210
+ readonly search: {
211
+ readonly type: "string";
212
+ readonly description: "Filter by name or label (optional)";
213
+ };
214
+ readonly environment: {
215
+ readonly type: "string";
216
+ readonly description: "Filter by environment e.g. 'production' (optional)";
217
+ };
218
+ readonly page: {
219
+ readonly type: "number";
220
+ readonly description: "Page number (default: 1)";
221
+ };
222
+ readonly limit: {
223
+ readonly type: "number";
224
+ readonly description: "Apps per page (default: 50, max: 200)";
225
+ };
226
+ };
227
+ readonly additionalProperties: false;
228
+ };
229
+ };
230
+ readonly select_app: {
231
+ readonly name: "select_app";
232
+ readonly description: "🎯 Select an APP by sequence number, name/label, or app ID (requires authentication)";
233
+ readonly inputSchema: {
234
+ readonly type: "object";
235
+ readonly properties: {
236
+ readonly sequence: {
237
+ readonly type: "number";
238
+ readonly description: "Sequence number from list_apps table";
239
+ };
240
+ readonly name_or_label: {
241
+ readonly type: "string";
242
+ readonly description: "App name or label — case-insensitive partial match";
243
+ };
244
+ readonly app_id: {
245
+ readonly type: "string";
246
+ readonly description: "Exact app catalog ID";
247
+ };
248
+ };
249
+ readonly additionalProperties: false;
250
+ };
251
+ };
252
+ readonly ai_fix_security_issue: {
253
+ readonly name: "ai_fix_security_issue";
254
+ readonly description: "🤖 Generate AI-powered fix prompt for a security issue by sequence number or description (requires authentication)";
255
+ readonly inputSchema: {
256
+ readonly type: "object";
257
+ readonly properties: {
258
+ readonly issue_id: {
259
+ readonly type: "string";
260
+ readonly description: "The security issue ID, sequence number (e.g., '14'), or descriptive text like 'System Design Issues/Enumerable Resource ID • MULTIPLE /store'";
261
+ };
262
+ };
263
+ readonly required: readonly ["issue_id"];
264
+ readonly additionalProperties: false;
265
+ };
266
+ };
267
+ readonly ai_fix_design_issue: {
268
+ readonly name: "ai_fix_design_issue";
269
+ readonly description: "🎨 Generate AI-powered fix prompt for a design issue by sequence number or description (requires authentication)";
270
+ readonly inputSchema: {
271
+ readonly type: "object";
272
+ readonly properties: {
273
+ readonly issue_id: {
274
+ readonly type: "string";
275
+ readonly description: "The design issue ID, sequence number (e.g., '14'), or descriptive text like 'Application Design Issues/Inconsistent Naming • GET /users'";
276
+ };
277
+ };
278
+ readonly required: readonly ["issue_id"];
279
+ readonly additionalProperties: false;
280
+ };
281
+ };
282
+ readonly ai_fix_quality_issue: {
283
+ readonly name: "ai_fix_quality_issue";
284
+ readonly description: "🤖 Generate AI-powered fix prompt for a quality issue by sequence number or description (requires authentication)";
285
+ readonly inputSchema: {
286
+ readonly type: "object";
287
+ readonly properties: {
288
+ readonly issue_id: {
289
+ readonly type: "string";
290
+ readonly description: "The quality issue ID, sequence number (e.g., '14'), or descriptive text like 'Endpoint accessible without authentication [Authentication Flows] • GET /store/inventory'";
291
+ };
292
+ };
293
+ readonly required: readonly ["issue_id"];
294
+ readonly additionalProperties: false;
295
+ };
296
+ };
297
+ readonly show_fixed_issues: {
298
+ readonly name: "show_fixed_issues";
299
+ readonly description: "📋 Show all AI-fixed security issues in current session (requires authentication)";
300
+ readonly inputSchema: {
301
+ readonly type: "object";
302
+ readonly properties: {};
303
+ readonly additionalProperties: false;
304
+ };
305
+ };
306
+ readonly check_security_fixes: {
307
+ readonly name: "check_security_fixes";
308
+ readonly description: "🔍 Check which previously fixed security issues were actually resolved (auto-triggered after run_security_test)";
309
+ readonly inputSchema: {
310
+ readonly type: "object";
311
+ readonly properties: {
312
+ readonly wait_seconds: {
313
+ readonly type: "number";
314
+ readonly description: "Wait time before checking issues (default: 15 seconds)";
315
+ readonly default: 15;
316
+ };
317
+ };
318
+ readonly additionalProperties: false;
319
+ };
320
+ };
321
+ readonly check_design_fixes: {
322
+ readonly name: "check_design_fixes";
323
+ readonly description: "🔍 Check which previously fixed design issues were actually resolved (auto-triggered after run_design_test)";
324
+ readonly inputSchema: {
325
+ readonly type: "object";
326
+ readonly properties: {
327
+ readonly wait_seconds: {
328
+ readonly type: "number";
329
+ readonly description: "Wait time before checking issues (default: 15 seconds)";
330
+ readonly default: 15;
331
+ };
332
+ };
333
+ readonly additionalProperties: false;
334
+ };
335
+ };
336
+ readonly check_quality_fixes: {
337
+ readonly name: "check_quality_fixes";
338
+ readonly description: "🔍 Check which previously fixed quality issues were actually resolved (auto-triggered after run_quality_test)";
339
+ readonly inputSchema: {
340
+ readonly type: "object";
341
+ readonly properties: {
342
+ readonly wait_seconds: {
343
+ readonly type: "number";
344
+ readonly description: "Wait time before checking issues (default: 15 seconds)";
345
+ readonly default: 15;
346
+ };
347
+ };
348
+ readonly additionalProperties: false;
349
+ };
350
+ };
351
+ readonly summarize_issues: {
352
+ readonly name: "summarize_issues";
353
+ readonly description: "📊 Get a summary of all security, design, and quality issues for the selected APP — shows counts by category/severity without listing individual issues (requires authentication)";
354
+ readonly inputSchema: {
355
+ readonly type: "object";
356
+ readonly properties: {};
357
+ readonly additionalProperties: false;
358
+ };
359
+ };
360
+ };
361
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AACA,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AACnD,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAG/C,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;CAmBf,CAAC;AAEX,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyOlB,CAAC"}
@@ -0,0 +1,275 @@
1
+ // Export all tool definitions and handlers
2
+ export * from './public/login.js';
3
+ export * from './public/authStatus.js';
4
+ export * from './protected/userInfo.js';
5
+ export * from './protected/logout.js';
6
+ export * from './protected/setup.js';
7
+ export * from './protected/showSecurityIssues.js';
8
+ export * from './protected/showDesignIssues.js';
9
+ export * from './protected/showQualityIssues.js';
10
+ export * from './protected/manageOrganizations.js';
11
+ export * from './protected/listApis.js';
12
+ export * from './protected/selectApi.js';
13
+ export * from './protected/aiFixSecurityIssue.js';
14
+ export * from './protected/aiFixDesignIssue.js';
15
+ export * from './protected/aiFixQualityIssue.js';
16
+ export * from './protected/showFixedIssues.js';
17
+ export * from './protected/checkSecurityFixes.js';
18
+ export * from './protected/checkDesignFixes.js';
19
+ export * from './protected/checkQualityFixes.js';
20
+ export * from './protected/summarizeIssues.js';
21
+ // Tool collections
22
+ export const PUBLIC_TOOLS = {
23
+ login: {
24
+ name: "login",
25
+ description: "🔐 Login to PerfAI using Auth0 OAuth. Opens browser for authentication. Required before using any other tools.",
26
+ inputSchema: {
27
+ type: "object",
28
+ properties: {},
29
+ additionalProperties: false,
30
+ },
31
+ },
32
+ auth_status: {
33
+ name: "auth_status",
34
+ description: "📊 Check current authentication status and user information",
35
+ inputSchema: {
36
+ type: "object",
37
+ properties: {},
38
+ additionalProperties: false,
39
+ },
40
+ },
41
+ };
42
+ export const PROTECTED_TOOLS = {
43
+ user_info: {
44
+ name: "user_info",
45
+ description: "👤 Get detailed information about the authenticated user",
46
+ inputSchema: {
47
+ type: "object",
48
+ properties: {},
49
+ additionalProperties: false,
50
+ },
51
+ },
52
+ logout: {
53
+ name: "logout",
54
+ description: "🚪 Logout from PerfAI and clear authentication session",
55
+ inputSchema: {
56
+ type: "object",
57
+ properties: {},
58
+ additionalProperties: false,
59
+ },
60
+ },
61
+ setup: {
62
+ name: "setup",
63
+ description: "🚀 Setup organization and app with default values (requires authentication)",
64
+ inputSchema: {
65
+ type: "object",
66
+ properties: {},
67
+ additionalProperties: false,
68
+ },
69
+ },
70
+ show_security_issues: {
71
+ name: "show_security_issues",
72
+ description: "🔒 List security issues for selected APP — filter by severity, status, and sort order (shows 20 at a time)",
73
+ inputSchema: {
74
+ type: "object",
75
+ properties: {
76
+ limit: { type: "number", description: "Number of issues to fetch (default: 20, max: 100)" },
77
+ severities: {
78
+ type: "array",
79
+ items: { type: "string", enum: ["Low", "Medium", "High", "Critical"] },
80
+ description: "Filter by severity levels e.g. [\"Critical\", \"High\"]"
81
+ },
82
+ status: { type: "string", enum: ["Open", "Dismissed"], description: "Filter by status (default: Open)" },
83
+ sort_by: { type: "string", enum: ["severity", "cvss", "method", "path", "type"], description: "Sort field (default: severity)" },
84
+ sort_order: { type: "string", enum: ["ASC", "DESC"], description: "Sort direction (default: DESC)" },
85
+ search: { type: "string", description: "Search by keyword (optional)" },
86
+ cursor: { type: "string", description: "Pagination cursor (optional)" }
87
+ },
88
+ additionalProperties: false,
89
+ },
90
+ },
91
+ show_design_issues: {
92
+ name: "show_design_issues",
93
+ description: "🎨 List design issues for selected APP — filter by status and sort order (shows 20 at a time)",
94
+ inputSchema: {
95
+ type: "object",
96
+ properties: {
97
+ limit: { type: "number", description: "Number of issues to fetch (default: 20, max: 100)" },
98
+ status: { type: "string", enum: ["Open", "Dismissed"], description: "Filter by status (default: Open)" },
99
+ sort_by: { type: "string", description: "Sort field e.g. 'createdOn' (optional)" },
100
+ sort_order: { type: "string", enum: ["ASC", "DESC"], description: "Sort direction (default: DESC)" },
101
+ search: { type: "string", description: "Search by keyword (optional)" },
102
+ cursor: { type: "string", description: "Pagination cursor (optional)" }
103
+ },
104
+ additionalProperties: false,
105
+ },
106
+ },
107
+ show_quality_issues: {
108
+ name: "show_quality_issues",
109
+ description: "🔍 List quality/spec issues for selected APP — filter by sort order (shows 20 at a time)",
110
+ inputSchema: {
111
+ type: "object",
112
+ properties: {
113
+ limit: { type: "number", description: "Number of issues to fetch (default: 20, max: 100)" },
114
+ sort_by: { type: "string", description: "Sort field (optional)" },
115
+ sort_order: { type: "string", enum: ["ASC", "DESC"], description: "Sort direction (default: DESC)" },
116
+ search: { type: "string", description: "Search by keyword (optional)" },
117
+ cursor: { type: "string", description: "Page number for next page (optional)" }
118
+ },
119
+ additionalProperties: false,
120
+ },
121
+ },
122
+ manage_organizations: {
123
+ name: "manage_organizations",
124
+ description: "🏢 List and manage organizations. Use action=select with sequence (number) or org_id.",
125
+ inputSchema: {
126
+ type: "object",
127
+ properties: {
128
+ action: {
129
+ type: "string",
130
+ enum: ["list", "select", "refresh"],
131
+ description: "Action: list (show numbered orgs), select (choose by sequence or org_id), refresh",
132
+ default: "list"
133
+ },
134
+ sequence: { type: "number", description: "Sequence number from the list (preferred over org_id)" },
135
+ org_id: { type: "string", description: "Organization ID to select" }
136
+ },
137
+ additionalProperties: false,
138
+ },
139
+ },
140
+ list_apps: {
141
+ name: "list_apps",
142
+ description: "📋 List all apps with optional search, environment filter, and pagination (requires authentication)",
143
+ inputSchema: {
144
+ type: "object",
145
+ properties: {
146
+ search: { type: "string", description: "Filter by name or label (optional)" },
147
+ environment: { type: "string", description: "Filter by environment e.g. 'production' (optional)" },
148
+ page: { type: "number", description: "Page number (default: 1)" },
149
+ limit: { type: "number", description: "Apps per page (default: 50, max: 200)" }
150
+ },
151
+ additionalProperties: false,
152
+ },
153
+ },
154
+ select_app: {
155
+ name: "select_app",
156
+ description: "🎯 Select an APP by sequence number, name/label, or app ID (requires authentication)",
157
+ inputSchema: {
158
+ type: "object",
159
+ properties: {
160
+ sequence: { type: "number", description: "Sequence number from list_apps table" },
161
+ name_or_label: { type: "string", description: "App name or label — case-insensitive partial match" },
162
+ app_id: { type: "string", description: "Exact app catalog ID" }
163
+ },
164
+ additionalProperties: false,
165
+ },
166
+ },
167
+ ai_fix_security_issue: {
168
+ name: "ai_fix_security_issue",
169
+ description: "🤖 Generate AI-powered fix prompt for a security issue by sequence number or description (requires authentication)",
170
+ inputSchema: {
171
+ type: "object",
172
+ properties: {
173
+ issue_id: {
174
+ type: "string",
175
+ description: "The security issue ID, sequence number (e.g., '14'), or descriptive text like 'System Design Issues/Enumerable Resource ID • MULTIPLE /store'"
176
+ }
177
+ },
178
+ required: ["issue_id"],
179
+ additionalProperties: false,
180
+ },
181
+ },
182
+ ai_fix_design_issue: {
183
+ name: "ai_fix_design_issue",
184
+ description: "🎨 Generate AI-powered fix prompt for a design issue by sequence number or description (requires authentication)",
185
+ inputSchema: {
186
+ type: "object",
187
+ properties: {
188
+ issue_id: {
189
+ type: "string",
190
+ description: "The design issue ID, sequence number (e.g., '14'), or descriptive text like 'Application Design Issues/Inconsistent Naming • GET /users'"
191
+ }
192
+ },
193
+ required: ["issue_id"],
194
+ additionalProperties: false,
195
+ },
196
+ },
197
+ ai_fix_quality_issue: {
198
+ name: "ai_fix_quality_issue",
199
+ description: "🤖 Generate AI-powered fix prompt for a quality issue by sequence number or description (requires authentication)",
200
+ inputSchema: {
201
+ type: "object",
202
+ properties: {
203
+ issue_id: {
204
+ type: "string",
205
+ description: "The quality issue ID, sequence number (e.g., '14'), or descriptive text like 'Endpoint accessible without authentication [Authentication Flows] • GET /store/inventory'"
206
+ }
207
+ },
208
+ required: ["issue_id"],
209
+ additionalProperties: false,
210
+ },
211
+ },
212
+ show_fixed_issues: {
213
+ name: "show_fixed_issues",
214
+ description: "📋 Show all AI-fixed security issues in current session (requires authentication)",
215
+ inputSchema: {
216
+ type: "object",
217
+ properties: {},
218
+ additionalProperties: false,
219
+ },
220
+ },
221
+ check_security_fixes: {
222
+ name: "check_security_fixes",
223
+ description: "🔍 Check which previously fixed security issues were actually resolved (auto-triggered after run_security_test)",
224
+ inputSchema: {
225
+ type: "object",
226
+ properties: {
227
+ wait_seconds: {
228
+ type: "number",
229
+ description: "Wait time before checking issues (default: 15 seconds)",
230
+ default: 15
231
+ }
232
+ },
233
+ additionalProperties: false,
234
+ },
235
+ },
236
+ check_design_fixes: {
237
+ name: "check_design_fixes",
238
+ description: "🔍 Check which previously fixed design issues were actually resolved (auto-triggered after run_design_test)",
239
+ inputSchema: {
240
+ type: "object",
241
+ properties: {
242
+ wait_seconds: {
243
+ type: "number",
244
+ description: "Wait time before checking issues (default: 15 seconds)",
245
+ default: 15
246
+ }
247
+ },
248
+ additionalProperties: false,
249
+ },
250
+ },
251
+ check_quality_fixes: {
252
+ name: "check_quality_fixes",
253
+ description: "🔍 Check which previously fixed quality issues were actually resolved (auto-triggered after run_quality_test)",
254
+ inputSchema: {
255
+ type: "object",
256
+ properties: {
257
+ wait_seconds: {
258
+ type: "number",
259
+ description: "Wait time before checking issues (default: 15 seconds)",
260
+ default: 15
261
+ }
262
+ },
263
+ additionalProperties: false,
264
+ },
265
+ },
266
+ summarize_issues: {
267
+ name: "summarize_issues",
268
+ description: "📊 Get a summary of all security, design, and quality issues for the selected APP — shows counts by category/severity without listing individual issues (requires authentication)",
269
+ inputSchema: {
270
+ type: "object",
271
+ properties: {},
272
+ additionalProperties: false,
273
+ },
274
+ },
275
+ };
@@ -0,0 +1,17 @@
1
+ export declare const aiFixDesignIssueTool: {
2
+ readonly name: "ai_fix_design_issue";
3
+ readonly description: "🎨 Generate AI-powered fix prompt for a design issue by sequence number or description (requires authentication)";
4
+ readonly inputSchema: {
5
+ readonly type: "object";
6
+ readonly properties: {
7
+ readonly issue_id: {
8
+ readonly type: "string";
9
+ readonly description: "The design issue ID, sequence number (e.g., '14'), or descriptive text like 'Application Design Issues/Inconsistent Naming • GET /users'";
10
+ };
11
+ };
12
+ readonly required: readonly ["issue_id"];
13
+ readonly additionalProperties: false;
14
+ };
15
+ };
16
+ export declare function handleAiFixDesignIssue(authManager: any, args: any): Promise<any>;
17
+ //# sourceMappingURL=aiFixDesignIssue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aiFixDesignIssue.d.ts","sourceRoot":"","sources":["../../../src/tools/protected/aiFixDesignIssue.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;CAcvB,CAAC;AAEX,wBAAsB,sBAAsB,CAAC,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAgNtF"}