fivosense 0.1.6 → 0.2.0

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 (132) hide show
  1. package/.kilo/skill/fivosense/skill.json +5 -5
  2. package/DEPLOYMENT_GUIDE.md +2 -2
  3. package/GITHUB_PUSH.md +4 -4
  4. package/LICENSE +1 -1
  5. package/README.md +290 -208
  6. package/RELEASE_READY.md +3 -3
  7. package/bin/fivosense.mjs +6 -0
  8. package/dist/ai/client.d.ts +6 -0
  9. package/dist/ai/client.d.ts.map +1 -1
  10. package/dist/ai/client.js +4 -1
  11. package/dist/ai/client.js.map +1 -1
  12. package/dist/ai/judge.d.ts +6 -0
  13. package/dist/ai/judge.d.ts.map +1 -1
  14. package/dist/ai/judge.js +6 -0
  15. package/dist/ai/judge.js.map +1 -1
  16. package/dist/cli/index.d.ts +3 -1
  17. package/dist/cli/index.d.ts.map +1 -1
  18. package/dist/cli/index.js +6 -1
  19. package/dist/cli/index.js.map +1 -1
  20. package/dist/core/orchestrator.d.ts +4 -1
  21. package/dist/core/orchestrator.d.ts.map +1 -1
  22. package/dist/core/orchestrator.js +6 -0
  23. package/dist/core/orchestrator.js.map +1 -1
  24. package/dist/core/scope.d.ts +4 -1
  25. package/dist/core/scope.d.ts.map +1 -1
  26. package/dist/core/scope.js +6 -0
  27. package/dist/core/scope.js.map +1 -1
  28. package/dist/editors/vscode.d.ts +4 -2
  29. package/dist/editors/vscode.d.ts.map +1 -1
  30. package/dist/editors/vscode.js +6 -0
  31. package/dist/editors/vscode.js.map +1 -1
  32. package/dist/engine/adversary.d.ts +6 -0
  33. package/dist/engine/adversary.d.ts.map +1 -1
  34. package/dist/engine/adversary.js +4 -1
  35. package/dist/engine/adversary.js.map +1 -1
  36. package/dist/engine/graph.d.ts +4 -1
  37. package/dist/engine/graph.d.ts.map +1 -1
  38. package/dist/engine/graph.js +6 -0
  39. package/dist/engine/graph.js.map +1 -1
  40. package/dist/engine/poc.d.ts +6 -0
  41. package/dist/engine/poc.d.ts.map +1 -1
  42. package/dist/engine/poc.js +4 -1
  43. package/dist/engine/poc.js.map +1 -1
  44. package/dist/engine/reach.d.ts +4 -2
  45. package/dist/engine/reach.d.ts.map +1 -1
  46. package/dist/engine/reach.js +6 -0
  47. package/dist/engine/reach.js.map +1 -1
  48. package/dist/engine/sinks.d.ts +22 -32
  49. package/dist/engine/sinks.d.ts.map +1 -1
  50. package/dist/engine/sinks.js +338 -44
  51. package/dist/engine/sinks.js.map +1 -1
  52. package/dist/engine/sources.d.ts +11 -19
  53. package/dist/engine/sources.d.ts.map +1 -1
  54. package/dist/engine/sources.js +100 -24
  55. package/dist/engine/sources.js.map +1 -1
  56. package/dist/engine/taint.d.ts +6 -0
  57. package/dist/engine/taint.d.ts.map +1 -1
  58. package/dist/engine/taint.js +6 -0
  59. package/dist/engine/taint.js.map +1 -1
  60. package/dist/engine/verify.d.ts +4 -1
  61. package/dist/engine/verify.d.ts.map +1 -1
  62. package/dist/engine/verify.js +6 -0
  63. package/dist/engine/verify.js.map +1 -1
  64. package/dist/features/badge.d.ts +6 -0
  65. package/dist/features/badge.d.ts.map +1 -1
  66. package/dist/features/badge.js +4 -1
  67. package/dist/features/badge.js.map +1 -1
  68. package/dist/features/fix.d.ts +6 -0
  69. package/dist/features/fix.d.ts.map +1 -1
  70. package/dist/features/fix.js +4 -1
  71. package/dist/features/fix.js.map +1 -1
  72. package/dist/features/index.d.ts +6 -0
  73. package/dist/features/index.d.ts.map +1 -1
  74. package/dist/features/index.js +6 -0
  75. package/dist/features/index.js.map +1 -1
  76. package/dist/features/roast.d.ts +6 -0
  77. package/dist/features/roast.d.ts.map +1 -1
  78. package/dist/features/roast.js +4 -1
  79. package/dist/features/roast.js.map +1 -1
  80. package/dist/hooks/agent.d.ts +4 -1
  81. package/dist/hooks/agent.d.ts.map +1 -1
  82. package/dist/hooks/agent.js +6 -0
  83. package/dist/hooks/agent.js.map +1 -1
  84. package/dist/hooks/git.d.ts +4 -1
  85. package/dist/hooks/git.d.ts.map +1 -1
  86. package/dist/hooks/git.js +6 -0
  87. package/dist/hooks/git.js.map +1 -1
  88. package/dist/index.d.ts +4 -2
  89. package/dist/index.d.ts.map +1 -1
  90. package/dist/index.js +6 -0
  91. package/dist/index.js.map +1 -1
  92. package/dist/rules/destructive.d.ts +12 -21
  93. package/dist/rules/destructive.d.ts.map +1 -1
  94. package/dist/rules/destructive.js +306 -24
  95. package/dist/rules/destructive.js.map +1 -1
  96. package/dist/rules/secrets.d.ts +8 -10
  97. package/dist/rules/secrets.d.ts.map +1 -1
  98. package/dist/rules/secrets.js +294 -17
  99. package/dist/rules/secrets.js.map +1 -1
  100. package/mcp/index.js +7 -0
  101. package/mcp/package-lock.json +2 -2
  102. package/mcp/package.json +21 -4
  103. package/package.json +5 -5
  104. package/src/ai/client.ts +7 -0
  105. package/src/ai/judge.ts +7 -0
  106. package/src/cli/index.ts +7 -1
  107. package/src/core/orchestrator.ts +7 -0
  108. package/src/core/scope.ts +7 -0
  109. package/src/editors/vscode.ts +7 -0
  110. package/src/engine/adversary.ts +7 -0
  111. package/src/engine/graph.ts +7 -0
  112. package/src/engine/poc.ts +7 -0
  113. package/src/engine/reach.ts +7 -0
  114. package/src/engine/sinks.ts +358 -45
  115. package/src/engine/sources.ts +109 -24
  116. package/src/engine/taint.ts +7 -0
  117. package/src/engine/verify.ts +7 -0
  118. package/src/features/badge.ts +7 -0
  119. package/src/features/fix.ts +7 -0
  120. package/src/features/index.ts +7 -0
  121. package/src/features/roast.ts +7 -0
  122. package/src/hooks/agent.ts +7 -0
  123. package/src/hooks/git.ts +7 -0
  124. package/src/index.ts +7 -0
  125. package/src/rules/destructive.ts +316 -26
  126. package/src/rules/secrets.ts +306 -17
  127. package/vscode-extension/CHANGELOG.md +14 -2
  128. package/vscode-extension/LICENSE +1 -1
  129. package/vscode-extension/README.md +28 -23
  130. package/vscode-extension/fivosense-vscode-0.1.1.vsix +0 -0
  131. package/vscode-extension/package-lock.json +6 -6
  132. package/vscode-extension/package.json +5 -3
@@ -1,46 +1,294 @@
1
1
  /**
2
- * Secret detection - finds hardcoded API keys, tokens, passwords
3
- */
4
- /**
5
- * Common secret patterns
2
+ * FivoSense - AI Security Scanner
3
+ * Copyright (c) 2026 thevinsoni
4
+ * Licensed under the MIT License
5
+ * https://github.com/thevinsoni/sense
6
6
  */
7
7
  export const SECRET_PATTERNS = [
8
+ // === AI / ML ===
8
9
  {
9
- pattern: /['"][A-Za-z0-9_]{32,}['"]/,
10
- type: 'generic_token',
11
- description: 'Generic API token (32+ chars)',
10
+ pattern: /['"]sk-proj-[A-Za-z0-9_-]{20,}['"]/,
11
+ type: 'openai_project_key',
12
+ description: 'OpenAI Project API key',
12
13
  severity: 'high',
13
14
  },
14
15
  {
15
- pattern: /['"]sk-[A-Za-z0-9]{48}['"]/,
16
+ pattern: /['"]sk-[A-Za-z0-9]{20,}['"]/,
16
17
  type: 'openai_key',
17
18
  description: 'OpenAI API key',
18
19
  severity: 'high',
19
20
  },
21
+ {
22
+ pattern: /['"]sk-ant-[A-Za-z0-9_-]{20,}['"]/,
23
+ type: 'anthropic_key',
24
+ description: 'Anthropic Claude API key',
25
+ severity: 'high',
26
+ },
20
27
  {
21
28
  pattern: /['"]AIza[A-Za-z0-9_-]{35}['"]/,
22
29
  type: 'google_api_key',
23
30
  description: 'Google API key',
24
31
  severity: 'high',
25
32
  },
33
+ {
34
+ pattern: /['"]ya29\.[A-Za-z0-9_-]+['"]/,
35
+ type: 'google_oauth_token',
36
+ description: 'Google OAuth access token',
37
+ severity: 'high',
38
+ },
39
+ {
40
+ pattern: /['"][0-9]+-[A-Za-z0-9_]{32}\.apps\.googleusercontent\.com['"]/,
41
+ type: 'google_oauth_client_id',
42
+ description: 'Google OAuth client ID',
43
+ severity: 'high',
44
+ },
45
+ // === Cloud Providers ===
26
46
  {
27
47
  pattern: /['"]AKIA[A-Z0-9]{16}['"]/,
28
48
  type: 'aws_access_key',
29
49
  description: 'AWS Access Key ID',
30
50
  severity: 'high',
31
51
  },
52
+ {
53
+ pattern: /['"]ASIA[A-Z0-9]{16}['"]/,
54
+ type: 'aws_temp_key',
55
+ description: 'AWS Temporary Access Key',
56
+ severity: 'high',
57
+ },
58
+ {
59
+ pattern: /aws[_-]?secret[_-]?access[_-]?key\s*[:=]\s*['"][A-Za-z0-9/+=]{40}['"]/i,
60
+ type: 'aws_secret_key',
61
+ description: 'AWS Secret Access Key',
62
+ severity: 'high',
63
+ },
64
+ {
65
+ pattern: /['"]arn:aws:[a-z0-9-]+:[a-z0-9-]*:[0-9]+:/,
66
+ type: 'aws_arn',
67
+ description: 'AWS ARN (resource identifier)',
68
+ severity: 'medium',
69
+ },
70
+ {
71
+ pattern: /AccountKey\s*=\s*[A-Za-z0-9+/=]{80,}/i,
72
+ type: 'azure_storage_key',
73
+ description: 'Azure Storage Account Key',
74
+ severity: 'high',
75
+ },
76
+ {
77
+ pattern: /['"][a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}['"]/,
78
+ type: 'azure_tenant_or_client',
79
+ description: 'Azure Tenant/Client UUID',
80
+ severity: 'medium',
81
+ },
82
+ {
83
+ pattern: /['"](?:AAAA)[A-Za-z0-9+/=]{40,}['"]/,
84
+ type: 'firebase_token',
85
+ description: 'Firebase authentication token',
86
+ severity: 'high',
87
+ },
88
+ {
89
+ pattern: /['"]SG\.[A-Za-z0-9_-]{22}\.[A-Za-z0-9_-]{43}['"]/,
90
+ type: 'sendgrid_key',
91
+ description: 'SendGrid API key',
92
+ severity: 'high',
93
+ },
94
+ {
95
+ pattern: /['"]service_account['"]\s*[:=]/i,
96
+ type: 'gcp_service_account',
97
+ description: 'GCP service account',
98
+ severity: 'high',
99
+ },
100
+ {
101
+ pattern: /['"]type['"]\s*[:=]\s*['"]service_account['"]/i,
102
+ type: 'gcp_sa_json',
103
+ description: 'GCP service account JSON',
104
+ severity: 'high',
105
+ },
106
+ // === GitHub / Git ===
32
107
  {
33
108
  pattern: /['"]ghp_[A-Za-z0-9]{36}['"]/,
34
- type: 'github_token',
35
- description: 'GitHub Personal Access Token',
109
+ type: 'github_pat',
110
+ description: 'GitHub Personal Access Token (classic)',
111
+ severity: 'high',
112
+ },
113
+ {
114
+ pattern: /['"]github_pat_[A-Za-z0-9_]{22,}['"]/,
115
+ type: 'github_fine_grained_pat',
116
+ description: 'GitHub Fine-Grained PAT',
117
+ severity: 'high',
118
+ },
119
+ {
120
+ pattern: /['"]gho_[A-Za-z0-9]{36}['"]/,
121
+ type: 'github_oauth',
122
+ description: 'GitHub OAuth token',
123
+ severity: 'high',
124
+ },
125
+ {
126
+ pattern: /['"]ghs_[A-Za-z0-9]{36}['"]/,
127
+ type: 'github_app_token',
128
+ description: 'GitHub App installation token',
36
129
  severity: 'high',
37
130
  },
131
+ {
132
+ pattern: /['"]ghr_[A-Za-z0-9]{36}['"]/,
133
+ type: 'github_refresh',
134
+ description: 'GitHub refresh token',
135
+ severity: 'high',
136
+ },
137
+ {
138
+ pattern: /['"]glpat-[A-Za-z0-9_-]{20,}['"]/,
139
+ type: 'gitlab_pat',
140
+ description: 'GitLab Personal Access Token',
141
+ severity: 'high',
142
+ },
143
+ // === Communication ===
38
144
  {
39
145
  pattern: /['"]xox[baprs]-[A-Za-z0-9-]{10,}['"]/,
40
146
  type: 'slack_token',
41
147
  description: 'Slack Token',
42
148
  severity: 'high',
43
149
  },
150
+ {
151
+ pattern: /['"]https:\/\/hooks\.slack\.com\/services\/T[A-Z0-9]+\/B[A-Z0-9]+\/[A-Za-z0-9]+['"]/,
152
+ type: 'slack_webhook',
153
+ description: 'Slack Webhook URL',
154
+ severity: 'high',
155
+ },
156
+ {
157
+ pattern: /['"][0-9]+:AA[A-Za-z0-9_-]{30,}['"]/,
158
+ type: 'telegram_bot_token',
159
+ description: 'Telegram Bot Token',
160
+ severity: 'high',
161
+ },
162
+ {
163
+ pattern: /['"]discord(app)?\.com\/api\/webhooks\/[0-9]+\/[A-Za-z0-9_-]+['"]/,
164
+ type: 'discord_webhook',
165
+ description: 'Discord Webhook URL',
166
+ severity: 'high',
167
+ },
168
+ // === Payment ===
169
+ {
170
+ pattern: /['"]sk_live_[A-Za-z0-9]{20,}['"]/,
171
+ type: 'stripe_secret_live',
172
+ description: 'Stripe Secret Key (LIVE)',
173
+ severity: 'high',
174
+ },
175
+ {
176
+ pattern: /['"]sk_test_[A-Za-z0-9]{20,}['"]/,
177
+ type: 'stripe_secret_test',
178
+ description: 'Stripe Secret Key (test)',
179
+ severity: 'high',
180
+ },
181
+ {
182
+ pattern: /['"]rk_live_[A-Za-z0-9]{20,}['"]/,
183
+ type: 'stripe_restricted_live',
184
+ description: 'Stripe Restricted Key (LIVE)',
185
+ severity: 'high',
186
+ },
187
+ {
188
+ pattern: /['"]rk_test_[A-Za-z0-9]{20,}['"]/,
189
+ type: 'stripe_restricted_test',
190
+ description: 'Stripe Restricted Key (test)',
191
+ severity: 'high',
192
+ },
193
+ {
194
+ pattern: /['"]sq0csp-[A-Za-z0-9_-]{22,}['"]/,
195
+ type: 'square_key',
196
+ description: 'Square OAuth secret',
197
+ severity: 'high',
198
+ },
199
+ // === SaaS / Dev Tools ===
200
+ {
201
+ pattern: /['"]npm_[A-Za-z0-9]{36}['"]/,
202
+ type: 'npm_token',
203
+ description: 'npm access token',
204
+ severity: 'high',
205
+ },
206
+ {
207
+ pattern: /['"]pypi-[A-Za-z0-9_-]{50,}['"]/,
208
+ type: 'pypi_token',
209
+ description: 'PyPI API token',
210
+ severity: 'high',
211
+ },
212
+ {
213
+ pattern: /['"]do_[a-zA-Z0-9]{64}['"]/,
214
+ type: 'digitalocean_token',
215
+ description: 'DigitalOcean API token',
216
+ severity: 'high',
217
+ },
218
+ {
219
+ pattern: /['"]dop_v1_[a-f0-9]{64}['"]/,
220
+ type: 'doppler_token',
221
+ description: 'Doppler service token',
222
+ severity: 'high',
223
+ },
224
+ {
225
+ pattern: /['"]NRAK-[A-Z0-9]{27}['"]/,
226
+ type: 'newrelic_key',
227
+ description: 'New Relic API key',
228
+ severity: 'high',
229
+ },
230
+ {
231
+ pattern: /['"]shpat_[a-fA-F0-9]{32}['"]/,
232
+ type: 'shopify_key',
233
+ description: 'Shopify Private App Access Token',
234
+ severity: 'high',
235
+ },
236
+ {
237
+ pattern: /['"]shpss_[a-fA-F0-9]{32}['"]/,
238
+ type: 'shopify_secret',
239
+ description: 'Shopify Shared Secret',
240
+ severity: 'high',
241
+ },
242
+ {
243
+ pattern: /['"]Bearer\s+[A-Za-z0-9_-]{20,}['"]/,
244
+ type: 'bearer_token',
245
+ description: 'Bearer authentication token',
246
+ severity: 'high',
247
+ },
248
+ {
249
+ pattern: /['"]Basic\s+[A-Za-z0-9+/=]{20,}['"]/,
250
+ type: 'basic_auth',
251
+ description: 'Basic authentication header',
252
+ severity: 'high',
253
+ },
254
+ // === Database Connection Strings ===
255
+ {
256
+ pattern: /['"]mongodb(\+srv)?:\/\/[^'"]+['"]/,
257
+ type: 'mongodb_uri',
258
+ description: 'MongoDB connection string',
259
+ severity: 'high',
260
+ },
261
+ {
262
+ pattern: /['"]postgres(ql)?:\/\/[^'"]+['"]/,
263
+ type: 'postgres_uri',
264
+ description: 'PostgreSQL connection string',
265
+ severity: 'high',
266
+ },
267
+ {
268
+ pattern: /['"]mysql:\/\/[^'"]+['"]/,
269
+ type: 'mysql_uri',
270
+ description: 'MySQL connection string',
271
+ severity: 'high',
272
+ },
273
+ {
274
+ pattern: /['"]redis:\/\/[^'"]+['"]/,
275
+ type: 'redis_uri',
276
+ description: 'Redis connection string',
277
+ severity: 'high',
278
+ },
279
+ {
280
+ pattern: /['"]amqps?:\/\/[^'"]+['"]/,
281
+ type: 'amqp_uri',
282
+ description: 'AMQP connection string',
283
+ severity: 'high',
284
+ },
285
+ {
286
+ pattern: /['"]jdbc:[^'"]+['"]/,
287
+ type: 'jdbc_uri',
288
+ description: 'JDBC connection string',
289
+ severity: 'high',
290
+ },
291
+ // === Generic Hardcoded Credentials ===
44
292
  {
45
293
  pattern: /password\s*[:=]\s*['"][^'"]+['"]/i,
46
294
  type: 'password',
@@ -59,15 +307,47 @@ export const SECRET_PATTERNS = [
59
307
  description: 'Hardcoded secret',
60
308
  severity: 'high',
61
309
  },
310
+ {
311
+ pattern: /token\s*[:=]\s*['"][^'"]{20,}['"]/i,
312
+ type: 'token',
313
+ description: 'Hardcoded token',
314
+ severity: 'high',
315
+ },
316
+ {
317
+ pattern: /private[_-]?key\s*[:=]\s*['"][^'"]+['"]/i,
318
+ type: 'private_key',
319
+ description: 'Hardcoded private key',
320
+ severity: 'high',
321
+ },
322
+ {
323
+ pattern: /access[_-]?key\s*[:=]\s*['"][^'"]+['"]/i,
324
+ type: 'access_key',
325
+ description: 'Hardcoded access key',
326
+ severity: 'high',
327
+ },
328
+ {
329
+ pattern: /auth[_-]?token\s*[:=]\s*['"][^'"]+['"]/i,
330
+ type: 'auth_token',
331
+ description: 'Hardcoded auth token',
332
+ severity: 'high',
333
+ },
334
+ {
335
+ pattern: /client[_-]?secret\s*[:=]\s*['"][^'"]+['"]/i,
336
+ type: 'client_secret',
337
+ description: 'Hardcoded client secret',
338
+ severity: 'high',
339
+ },
340
+ {
341
+ pattern: /['"][A-Za-z0-9_]{32,}['"]/,
342
+ type: 'generic_token',
343
+ description: 'Generic high-entropy token (32+ chars)',
344
+ severity: 'medium',
345
+ },
62
346
  ];
63
- /**
64
- * Detect secrets in code
65
- */
66
347
  export function detectSecrets(code) {
67
348
  const lines = code.split('\n');
68
349
  const matches = [];
69
350
  lines.forEach((line, index) => {
70
- // Skip comments
71
351
  if (line.trim().startsWith('//') || line.trim().startsWith('*')) {
72
352
  return;
73
353
  }
@@ -86,9 +366,6 @@ export function detectSecrets(code) {
86
366
  });
87
367
  return matches;
88
368
  }
89
- /**
90
- * Check if specific line contains a secret
91
- */
92
369
  export function isSecretLine(line) {
93
370
  for (const pattern of SECRET_PATTERNS) {
94
371
  if (pattern.pattern.test(line)) {
@@ -1 +1 @@
1
- {"version":3,"file":"secrets.js","sourceRoot":"","sources":["../../src/rules/secrets.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAoB;IAC9C;QACE,OAAO,EAAE,2BAA2B;QACpC,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,+BAA+B;QAC5C,QAAQ,EAAE,MAAM;KACjB;IACD;QACE,OAAO,EAAE,4BAA4B;QACrC,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,gBAAgB;QAC7B,QAAQ,EAAE,MAAM;KACjB;IACD;QACE,OAAO,EAAE,+BAA+B;QACxC,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,gBAAgB;QAC7B,QAAQ,EAAE,MAAM;KACjB;IACD;QACE,OAAO,EAAE,0BAA0B;QACnC,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,mBAAmB;QAChC,QAAQ,EAAE,MAAM;KACjB;IACD;QACE,OAAO,EAAE,6BAA6B;QACtC,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,8BAA8B;QAC3C,QAAQ,EAAE,MAAM;KACjB;IACD;QACE,OAAO,EAAE,sCAAsC;QAC/C,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,aAAa;QAC1B,QAAQ,EAAE,MAAM;KACjB;IACD;QACE,OAAO,EAAE,mCAAmC;QAC5C,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,oBAAoB;QACjC,QAAQ,EAAE,MAAM;KACjB;IACD;QACE,OAAO,EAAE,sCAAsC;QAC/C,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,mBAAmB;QAChC,QAAQ,EAAE,MAAM;KACjB;IACD;QACE,OAAO,EAAE,iCAAiC;QAC1C,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,kBAAkB;QAC/B,QAAQ,EAAE,MAAM;KACjB;CACF,CAAC;AAUF;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,OAAO,GAAkB,EAAE,CAAC;IAElC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC5B,gBAAgB;QAChB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAChE,OAAO;QACT,CAAC;QAED,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE,CAAC;YACtC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC1C,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,WAAW,EAAE,OAAO,CAAC,WAAW;oBAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,IAAI,EAAE,KAAK,GAAG,CAAC;oBACf,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK;iBACzC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE,CAAC;QACtC,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"secrets.js","sourceRoot":"","sources":["../../src/rules/secrets.ts"],"names":[],"mappings":"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"}
package/mcp/index.js CHANGED
@@ -1,4 +1,11 @@
1
1
  #!/usr/bin/env node
2
+ /**
3
+ * FivoSense MCP Server
4
+ * Copyright (c) 2026 thevinsoni
5
+ * Licensed under the MIT License
6
+ * https://github.com/thevinsoni/sense
7
+ */
8
+
2
9
  /**
3
10
  * FivoSense MCP Server
4
11
  *
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "fivosense-mcp",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "fivosense-mcp",
9
- "version": "0.1.0",
9
+ "version": "0.1.1",
10
10
  "license": "MIT",
11
11
  "dependencies": {
12
12
  "@modelcontextprotocol/sdk": "^0.5.0",
package/mcp/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fivosense-mcp",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "MCP server for FivoSense security scanner",
5
5
  "type": "module",
6
6
  "main": "index.js",
@@ -10,12 +10,29 @@
10
10
  "scripts": {
11
11
  "start": "node index.js"
12
12
  },
13
- "keywords": ["mcp", "security", "fivosense", "ai-agent"],
14
- "author": "Fivo Sense Contributors",
13
+ "keywords": [
14
+ "mcp",
15
+ "security",
16
+ "fivosense",
17
+ "ai-agent",
18
+ "claude",
19
+ "gpt",
20
+ "vulnerability-scanner"
21
+ ],
22
+ "author": "thevinsoni",
15
23
  "license": "MIT",
24
+ "repository": {
25
+ "type": "git",
26
+ "url": "git+https://github.com/thevinsoni/sense.git",
27
+ "directory": "mcp"
28
+ },
29
+ "bugs": {
30
+ "url": "https://github.com/thevinsoni/sense/issues"
31
+ },
32
+ "homepage": "https://github.com/thevinsoni/sense#readme",
16
33
  "dependencies": {
17
34
  "@modelcontextprotocol/sdk": "^0.5.0",
18
- "fivosense": "^0.1.5"
35
+ "fivosense": "^0.1.6"
19
36
  },
20
37
  "engines": {
21
38
  "node": ">=20.0.0"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fivosense",
3
- "version": "0.1.6",
3
+ "version": "0.2.0",
4
4
  "description": "Neuro-symbolic AI security plugin with taint-trace proof generation",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -25,16 +25,16 @@
25
25
  "vscode-extension",
26
26
  "code-scanner"
27
27
  ],
28
- "author": "Fivo Sense Contributors",
28
+ "author": "thevinsoni",
29
29
  "license": "MIT",
30
30
  "repository": {
31
31
  "type": "git",
32
- "url": "git+https://github.com/itsvinsoni/sense.git"
32
+ "url": "git+https://github.com/thevinsoni/sense.git"
33
33
  },
34
34
  "bugs": {
35
- "url": "https://github.com/itsvinsoni/sense/issues"
35
+ "url": "https://github.com/thevinsoni/sense/issues"
36
36
  },
37
- "homepage": "https://github.com/itsvinsoni/sense#readme",
37
+ "homepage": "https://github.com/thevinsoni/sense#readme",
38
38
  "devDependencies": {
39
39
  "@types/babel__core": "^7.20.5",
40
40
  "@types/babel__traverse": "^7.20.6",
package/src/ai/client.ts CHANGED
@@ -1,3 +1,10 @@
1
+ /**
2
+ * FivoSense - AI Security Scanner
3
+ * Copyright (c) 2026 thevinsoni
4
+ * Licensed under the MIT License
5
+ * https://github.com/thevinsoni/sense
6
+ */
7
+
1
8
  /**
2
9
  * AI Client - BYOK (Bring Your Own Key) support for multiple AI providers
3
10
  */
package/src/ai/judge.ts CHANGED
@@ -1,3 +1,10 @@
1
+ /**
2
+ * FivoSense - AI Security Scanner
3
+ * Copyright (c) 2026 thevinsoni
4
+ * Licensed under the MIT License
5
+ * https://github.com/thevinsoni/sense
6
+ */
7
+
1
8
  /**
2
9
  * AI Path Judge - Uses host AI to determine exploitability
3
10
  */
package/src/cli/index.ts CHANGED
@@ -1,4 +1,10 @@
1
- #!/usr/bin/env node
1
+ /**
2
+ * FivoSense CLI
3
+ * Copyright (c) 2026 thevinsoni
4
+ * Licensed under the MIT License
5
+ * https://github.com/thevinsoni/sense
6
+ */
7
+
2
8
  /**
3
9
  * FivoSense CLI
4
10
  */
@@ -1,3 +1,10 @@
1
+ /**
2
+ * FivoSense - AI Security Scanner
3
+ * Copyright (c) 2026 thevinsoni
4
+ * Licensed under the MIT License
5
+ * https://github.com/thevinsoni/sense
6
+ */
7
+
1
8
  /**
2
9
  * Orchestrator - Coordinates analysis pipeline and flow control
3
10
  */
package/src/core/scope.ts CHANGED
@@ -1,3 +1,10 @@
1
+ /**
2
+ * FivoSense - AI Security Scanner
3
+ * Copyright (c) 2026 thevinsoni
4
+ * Licensed under the MIT License
5
+ * https://github.com/thevinsoni/sense
6
+ */
7
+
1
8
  /**
2
9
  * Scope Management - Track and filter relevant code changes
3
10
  */
@@ -1,3 +1,10 @@
1
+ /**
2
+ * FivoSense - AI Security Scanner
3
+ * Copyright (c) 2026 thevinsoni
4
+ * Licensed under the MIT License
5
+ * https://github.com/thevinsoni/sense
6
+ */
7
+
1
8
  /**
2
9
  * VS Code Extension Adapter
3
10
  * Integrates FivoSense with VS Code
@@ -1,3 +1,10 @@
1
+ /**
2
+ * FivoSense - AI Security Scanner
3
+ * Copyright (c) 2026 thevinsoni
4
+ * Licensed under the MIT License
5
+ * https://github.com/thevinsoni/sense
6
+ */
7
+
1
8
  /**
2
9
  * Adversarial Verification - AI attacker proves exploitability
3
10
  */
@@ -1,3 +1,10 @@
1
+ /**
2
+ * FivoSense - AI Security Scanner
3
+ * Copyright (c) 2026 thevinsoni
4
+ * Licensed under the MIT License
5
+ * https://github.com/thevinsoni/sense
6
+ */
7
+
1
8
  /**
2
9
  * FivoCore Graph Builder
3
10
  */
package/src/engine/poc.ts CHANGED
@@ -1,3 +1,10 @@
1
+ /**
2
+ * FivoSense - AI Security Scanner
3
+ * Copyright (c) 2026 thevinsoni
4
+ * Licensed under the MIT License
5
+ * https://github.com/thevinsoni/sense
6
+ */
7
+
1
8
  /**
2
9
  * PoC Generator - Generate proof-of-concept exploits
3
10
  */
@@ -1,3 +1,10 @@
1
+ /**
2
+ * FivoSense - AI Security Scanner
3
+ * Copyright (c) 2026 thevinsoni
4
+ * Licensed under the MIT License
5
+ * https://github.com/thevinsoni/sense
6
+ */
7
+
1
8
  /**
2
9
  * Reachability Analysis - Filters code to only entry-point reachable paths
3
10
  * This reduces analysis surface by ~97% (OpenAnt research)