driftdetect-vscode 0.8.2

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 (309) hide show
  1. package/.turbo/turbo-build.log +4 -0
  2. package/.turbo/turbo-test.log +138 -0
  3. package/.vscode/launch.json +17 -0
  4. package/.vscode/tasks.json +15 -0
  5. package/LICENSE +121 -0
  6. package/dist/activation/activation-controller.d.ts +61 -0
  7. package/dist/activation/activation-controller.d.ts.map +1 -0
  8. package/dist/activation/activation-controller.js +235 -0
  9. package/dist/activation/activation-controller.js.map +1 -0
  10. package/dist/activation/activation-phases.d.ts +28 -0
  11. package/dist/activation/activation-phases.d.ts.map +1 -0
  12. package/dist/activation/activation-phases.js +80 -0
  13. package/dist/activation/activation-phases.js.map +1 -0
  14. package/dist/activation/index.d.ts +6 -0
  15. package/dist/activation/index.d.ts.map +1 -0
  16. package/dist/activation/index.js +6 -0
  17. package/dist/activation/index.js.map +1 -0
  18. package/dist/client/connection-config.d.ts +50 -0
  19. package/dist/client/connection-config.d.ts.map +1 -0
  20. package/dist/client/connection-config.js +56 -0
  21. package/dist/client/connection-config.js.map +1 -0
  22. package/dist/client/connection-manager.d.ts +70 -0
  23. package/dist/client/connection-manager.d.ts.map +1 -0
  24. package/dist/client/connection-manager.js +214 -0
  25. package/dist/client/connection-manager.js.map +1 -0
  26. package/dist/client/index.d.ts +8 -0
  27. package/dist/client/index.d.ts.map +1 -0
  28. package/dist/client/index.js +8 -0
  29. package/dist/client/index.js.map +1 -0
  30. package/dist/client/language-client-factory.d.ts +29 -0
  31. package/dist/client/language-client-factory.d.ts.map +1 -0
  32. package/dist/client/language-client-factory.js +76 -0
  33. package/dist/client/language-client-factory.js.map +1 -0
  34. package/dist/client/request-middleware.d.ts +38 -0
  35. package/dist/client/request-middleware.d.ts.map +1 -0
  36. package/dist/client/request-middleware.js +85 -0
  37. package/dist/client/request-middleware.js.map +1 -0
  38. package/dist/commands/command-definitions.d.ts +53 -0
  39. package/dist/commands/command-definitions.d.ts.map +1 -0
  40. package/dist/commands/command-definitions.js +212 -0
  41. package/dist/commands/command-definitions.js.map +1 -0
  42. package/dist/commands/command-router.d.ts +80 -0
  43. package/dist/commands/command-router.d.ts.map +1 -0
  44. package/dist/commands/command-router.js +127 -0
  45. package/dist/commands/command-router.js.map +1 -0
  46. package/dist/commands/handlers/connection-handlers.d.ts +14 -0
  47. package/dist/commands/handlers/connection-handlers.d.ts.map +1 -0
  48. package/dist/commands/handlers/connection-handlers.js +57 -0
  49. package/dist/commands/handlers/connection-handlers.js.map +1 -0
  50. package/dist/commands/handlers/constants-handlers.d.ts +11 -0
  51. package/dist/commands/handlers/constants-handlers.d.ts.map +1 -0
  52. package/dist/commands/handlers/constants-handlers.js +84 -0
  53. package/dist/commands/handlers/constants-handlers.js.map +1 -0
  54. package/dist/commands/handlers/index.d.ts +10 -0
  55. package/dist/commands/handlers/index.d.ts.map +1 -0
  56. package/dist/commands/handlers/index.js +10 -0
  57. package/dist/commands/handlers/index.js.map +1 -0
  58. package/dist/commands/handlers/pattern-handlers.d.ts +13 -0
  59. package/dist/commands/handlers/pattern-handlers.d.ts.map +1 -0
  60. package/dist/commands/handlers/pattern-handlers.js +127 -0
  61. package/dist/commands/handlers/pattern-handlers.js.map +1 -0
  62. package/dist/commands/handlers/scan-handlers.d.ts +15 -0
  63. package/dist/commands/handlers/scan-handlers.d.ts.map +1 -0
  64. package/dist/commands/handlers/scan-handlers.js +74 -0
  65. package/dist/commands/handlers/scan-handlers.js.map +1 -0
  66. package/dist/commands/handlers/ui-handlers.d.ts +12 -0
  67. package/dist/commands/handlers/ui-handlers.d.ts.map +1 -0
  68. package/dist/commands/handlers/ui-handlers.js +74 -0
  69. package/dist/commands/handlers/ui-handlers.js.map +1 -0
  70. package/dist/commands/handlers/violation-handlers.d.ts +13 -0
  71. package/dist/commands/handlers/violation-handlers.d.ts.map +1 -0
  72. package/dist/commands/handlers/violation-handlers.js +76 -0
  73. package/dist/commands/handlers/violation-handlers.js.map +1 -0
  74. package/dist/commands/index.d.ts +7 -0
  75. package/dist/commands/index.d.ts.map +1 -0
  76. package/dist/commands/index.js +7 -0
  77. package/dist/commands/index.js.map +1 -0
  78. package/dist/commands/middleware/connection-check-middleware.d.ts +12 -0
  79. package/dist/commands/middleware/connection-check-middleware.d.ts.map +1 -0
  80. package/dist/commands/middleware/connection-check-middleware.js +34 -0
  81. package/dist/commands/middleware/connection-check-middleware.js.map +1 -0
  82. package/dist/commands/middleware/index.d.ts +7 -0
  83. package/dist/commands/middleware/index.d.ts.map +1 -0
  84. package/dist/commands/middleware/index.js +7 -0
  85. package/dist/commands/middleware/index.js.map +1 -0
  86. package/dist/commands/middleware/logging-middleware.d.ts +12 -0
  87. package/dist/commands/middleware/logging-middleware.d.ts.map +1 -0
  88. package/dist/commands/middleware/logging-middleware.js +24 -0
  89. package/dist/commands/middleware/logging-middleware.js.map +1 -0
  90. package/dist/commands/middleware/telemetry-middleware.d.ts +22 -0
  91. package/dist/commands/middleware/telemetry-middleware.d.ts.map +1 -0
  92. package/dist/commands/middleware/telemetry-middleware.js +30 -0
  93. package/dist/commands/middleware/telemetry-middleware.js.map +1 -0
  94. package/dist/config/config-manager.d.ts +53 -0
  95. package/dist/config/config-manager.d.ts.map +1 -0
  96. package/dist/config/config-manager.js +178 -0
  97. package/dist/config/config-manager.js.map +1 -0
  98. package/dist/config/defaults.d.ts +11 -0
  99. package/dist/config/defaults.d.ts.map +1 -0
  100. package/dist/config/defaults.js +43 -0
  101. package/dist/config/defaults.js.map +1 -0
  102. package/dist/config/index.d.ts +7 -0
  103. package/dist/config/index.d.ts.map +1 -0
  104. package/dist/config/index.js +7 -0
  105. package/dist/config/index.js.map +1 -0
  106. package/dist/config/validator.d.ts +22 -0
  107. package/dist/config/validator.d.ts.map +1 -0
  108. package/dist/config/validator.js +93 -0
  109. package/dist/config/validator.js.map +1 -0
  110. package/dist/extension.d.ts +32 -0
  111. package/dist/extension.d.ts.map +1 -0
  112. package/dist/extension.js +50 -0
  113. package/dist/extension.js.map +1 -0
  114. package/dist/infrastructure/disposable-manager.d.ts +43 -0
  115. package/dist/infrastructure/disposable-manager.d.ts.map +1 -0
  116. package/dist/infrastructure/disposable-manager.js +75 -0
  117. package/dist/infrastructure/disposable-manager.js.map +1 -0
  118. package/dist/infrastructure/event-bus.d.ts +85 -0
  119. package/dist/infrastructure/event-bus.d.ts.map +1 -0
  120. package/dist/infrastructure/event-bus.js +74 -0
  121. package/dist/infrastructure/event-bus.js.map +1 -0
  122. package/dist/infrastructure/index.d.ts +10 -0
  123. package/dist/infrastructure/index.d.ts.map +1 -0
  124. package/dist/infrastructure/index.js +10 -0
  125. package/dist/infrastructure/index.js.map +1 -0
  126. package/dist/infrastructure/logger.d.ts +37 -0
  127. package/dist/infrastructure/logger.d.ts.map +1 -0
  128. package/dist/infrastructure/logger.js +86 -0
  129. package/dist/infrastructure/logger.js.map +1 -0
  130. package/dist/infrastructure/service-container.d.ts +68 -0
  131. package/dist/infrastructure/service-container.d.ts.map +1 -0
  132. package/dist/infrastructure/service-container.js +94 -0
  133. package/dist/infrastructure/service-container.js.map +1 -0
  134. package/dist/state/index.d.ts +7 -0
  135. package/dist/state/index.d.ts.map +1 -0
  136. package/dist/state/index.js +7 -0
  137. package/dist/state/index.js.map +1 -0
  138. package/dist/state/initial-state.d.ts +11 -0
  139. package/dist/state/initial-state.d.ts.map +1 -0
  140. package/dist/state/initial-state.js +58 -0
  141. package/dist/state/initial-state.js.map +1 -0
  142. package/dist/state/selectors.d.ts +41 -0
  143. package/dist/state/selectors.d.ts.map +1 -0
  144. package/dist/state/selectors.js +61 -0
  145. package/dist/state/selectors.js.map +1 -0
  146. package/dist/state/state-manager.d.ts +54 -0
  147. package/dist/state/state-manager.d.ts.map +1 -0
  148. package/dist/state/state-manager.js +166 -0
  149. package/dist/state/state-manager.js.map +1 -0
  150. package/dist/types/config-types.d.ts +69 -0
  151. package/dist/types/config-types.d.ts.map +1 -0
  152. package/dist/types/config-types.js +5 -0
  153. package/dist/types/config-types.js.map +1 -0
  154. package/dist/types/extension-types.d.ts +45 -0
  155. package/dist/types/extension-types.d.ts.map +1 -0
  156. package/dist/types/extension-types.js +5 -0
  157. package/dist/types/extension-types.js.map +1 -0
  158. package/dist/types/index.d.ts +12 -0
  159. package/dist/types/index.d.ts.map +1 -0
  160. package/dist/types/index.js +12 -0
  161. package/dist/types/index.js.map +1 -0
  162. package/dist/types/lsp-types.d.ts +70 -0
  163. package/dist/types/lsp-types.d.ts.map +1 -0
  164. package/dist/types/lsp-types.js +5 -0
  165. package/dist/types/lsp-types.js.map +1 -0
  166. package/dist/types/state-types.d.ts +82 -0
  167. package/dist/types/state-types.d.ts.map +1 -0
  168. package/dist/types/state-types.js +5 -0
  169. package/dist/types/state-types.js.map +1 -0
  170. package/dist/types/vscode-types.d.ts +36 -0
  171. package/dist/types/vscode-types.d.ts.map +1 -0
  172. package/dist/types/vscode-types.js +7 -0
  173. package/dist/types/vscode-types.js.map +1 -0
  174. package/dist/ui/decorations/decoration-controller.d.ts +45 -0
  175. package/dist/ui/decorations/decoration-controller.d.ts.map +1 -0
  176. package/dist/ui/decorations/decoration-controller.js +198 -0
  177. package/dist/ui/decorations/decoration-controller.js.map +1 -0
  178. package/dist/ui/decorations/decoration-types.d.ts +28 -0
  179. package/dist/ui/decorations/decoration-types.d.ts.map +1 -0
  180. package/dist/ui/decorations/decoration-types.js +98 -0
  181. package/dist/ui/decorations/decoration-types.js.map +1 -0
  182. package/dist/ui/decorations/index.d.ts +7 -0
  183. package/dist/ui/decorations/index.d.ts.map +1 -0
  184. package/dist/ui/decorations/index.js +6 -0
  185. package/dist/ui/decorations/index.js.map +1 -0
  186. package/dist/ui/index.d.ts +7 -0
  187. package/dist/ui/index.d.ts.map +1 -0
  188. package/dist/ui/index.js +7 -0
  189. package/dist/ui/index.js.map +1 -0
  190. package/dist/ui/notifications/index.d.ts +5 -0
  191. package/dist/ui/notifications/index.d.ts.map +1 -0
  192. package/dist/ui/notifications/index.js +5 -0
  193. package/dist/ui/notifications/index.js.map +1 -0
  194. package/dist/ui/notifications/notification-service.d.ts +66 -0
  195. package/dist/ui/notifications/notification-service.d.ts.map +1 -0
  196. package/dist/ui/notifications/notification-service.js +103 -0
  197. package/dist/ui/notifications/notification-service.js.map +1 -0
  198. package/dist/ui/status-bar/index.d.ts +6 -0
  199. package/dist/ui/status-bar/index.d.ts.map +1 -0
  200. package/dist/ui/status-bar/index.js +6 -0
  201. package/dist/ui/status-bar/index.js.map +1 -0
  202. package/dist/ui/status-bar/status-bar-controller.d.ts +37 -0
  203. package/dist/ui/status-bar/status-bar-controller.d.ts.map +1 -0
  204. package/dist/ui/status-bar/status-bar-controller.js +111 -0
  205. package/dist/ui/status-bar/status-bar-controller.js.map +1 -0
  206. package/dist/ui/status-bar/status-bar-modes.d.ts +26 -0
  207. package/dist/ui/status-bar/status-bar-modes.d.ts.map +1 -0
  208. package/dist/ui/status-bar/status-bar-modes.js +97 -0
  209. package/dist/ui/status-bar/status-bar-modes.js.map +1 -0
  210. package/dist/views/base-tree-provider.d.ts +74 -0
  211. package/dist/views/base-tree-provider.d.ts.map +1 -0
  212. package/dist/views/base-tree-provider.js +95 -0
  213. package/dist/views/base-tree-provider.js.map +1 -0
  214. package/dist/views/constants-tree-provider.d.ts +112 -0
  215. package/dist/views/constants-tree-provider.d.ts.map +1 -0
  216. package/dist/views/constants-tree-provider.js +344 -0
  217. package/dist/views/constants-tree-provider.js.map +1 -0
  218. package/dist/views/files-tree-provider.d.ts +37 -0
  219. package/dist/views/files-tree-provider.d.ts.map +1 -0
  220. package/dist/views/files-tree-provider.js +98 -0
  221. package/dist/views/files-tree-provider.js.map +1 -0
  222. package/dist/views/index.d.ts +10 -0
  223. package/dist/views/index.d.ts.map +1 -0
  224. package/dist/views/index.js +10 -0
  225. package/dist/views/index.js.map +1 -0
  226. package/dist/views/patterns-tree-provider.d.ts +39 -0
  227. package/dist/views/patterns-tree-provider.d.ts.map +1 -0
  228. package/dist/views/patterns-tree-provider.js +139 -0
  229. package/dist/views/patterns-tree-provider.js.map +1 -0
  230. package/dist/views/violations-tree-provider.d.ts +46 -0
  231. package/dist/views/violations-tree-provider.d.ts.map +1 -0
  232. package/dist/views/violations-tree-provider.js +158 -0
  233. package/dist/views/violations-tree-provider.js.map +1 -0
  234. package/dist/webview/index.d.ts +7 -0
  235. package/dist/webview/index.d.ts.map +1 -0
  236. package/dist/webview/index.js +7 -0
  237. package/dist/webview/index.js.map +1 -0
  238. package/dist/webview/webview-manager.d.ts +57 -0
  239. package/dist/webview/webview-manager.d.ts.map +1 -0
  240. package/dist/webview/webview-manager.js +167 -0
  241. package/dist/webview/webview-manager.js.map +1 -0
  242. package/package.json +405 -0
  243. package/resources/drift-icon.png +0 -0
  244. package/resources/drift-icon.svg +5 -0
  245. package/resources/icons/error.svg +4 -0
  246. package/resources/icons/info.svg +4 -0
  247. package/resources/icons/lightbulb.svg +4 -0
  248. package/resources/icons/warning.svg +4 -0
  249. package/src/activation/activation-controller.ts +320 -0
  250. package/src/activation/activation-phases.ts +96 -0
  251. package/src/activation/index.ts +6 -0
  252. package/src/client/connection-config.ts +64 -0
  253. package/src/client/connection-manager.ts +263 -0
  254. package/src/client/index.ts +8 -0
  255. package/src/client/language-client-factory.ts +111 -0
  256. package/src/client/request-middleware.ts +117 -0
  257. package/src/commands/command-definitions.ts +243 -0
  258. package/src/commands/command-router.ts +194 -0
  259. package/src/commands/handlers/connection-handlers.ts +74 -0
  260. package/src/commands/handlers/constants-handlers.ts +99 -0
  261. package/src/commands/handlers/index.ts +10 -0
  262. package/src/commands/handlers/pattern-handlers.ts +167 -0
  263. package/src/commands/handlers/scan-handlers.ts +107 -0
  264. package/src/commands/handlers/ui-handlers.ts +88 -0
  265. package/src/commands/handlers/violation-handlers.ts +97 -0
  266. package/src/commands/index.ts +7 -0
  267. package/src/commands/middleware/connection-check-middleware.ts +46 -0
  268. package/src/commands/middleware/index.ts +7 -0
  269. package/src/commands/middleware/logging-middleware.ts +28 -0
  270. package/src/commands/middleware/telemetry-middleware.ts +46 -0
  271. package/src/config/config-manager.ts +213 -0
  272. package/src/config/defaults.ts +45 -0
  273. package/src/config/index.ts +7 -0
  274. package/src/config/validator.ts +118 -0
  275. package/src/extension.ts +57 -0
  276. package/src/infrastructure/disposable-manager.ts +87 -0
  277. package/src/infrastructure/event-bus.ts +121 -0
  278. package/src/infrastructure/index.ts +10 -0
  279. package/src/infrastructure/logger.ts +108 -0
  280. package/src/infrastructure/service-container.ts +123 -0
  281. package/src/state/index.ts +7 -0
  282. package/src/state/initial-state.ts +60 -0
  283. package/src/state/selectors.ts +126 -0
  284. package/src/state/state-manager.ts +198 -0
  285. package/src/types/config-types.ts +77 -0
  286. package/src/types/extension-types.ts +58 -0
  287. package/src/types/index.ts +12 -0
  288. package/src/types/lsp-types.ts +77 -0
  289. package/src/types/state-types.ts +92 -0
  290. package/src/types/vscode-types.ts +40 -0
  291. package/src/ui/decorations/decoration-controller.ts +252 -0
  292. package/src/ui/decorations/decoration-types.ts +129 -0
  293. package/src/ui/decorations/index.ts +7 -0
  294. package/src/ui/index.ts +7 -0
  295. package/src/ui/notifications/index.ts +5 -0
  296. package/src/ui/notifications/notification-service.ts +167 -0
  297. package/src/ui/status-bar/index.ts +6 -0
  298. package/src/ui/status-bar/status-bar-controller.ts +135 -0
  299. package/src/ui/status-bar/status-bar-modes.ts +119 -0
  300. package/src/views/base-tree-provider.ts +127 -0
  301. package/src/views/constants-tree-provider.ts +525 -0
  302. package/src/views/files-tree-provider.ts +140 -0
  303. package/src/views/index.ts +10 -0
  304. package/src/views/patterns-tree-provider.ts +179 -0
  305. package/src/views/violations-tree-provider.ts +210 -0
  306. package/src/webview/index.ts +7 -0
  307. package/src/webview/webview-manager.ts +238 -0
  308. package/tsconfig.json +22 -0
  309. package/tsconfig.tsbuildinfo +1 -0
package/package.json ADDED
@@ -0,0 +1,405 @@
1
+ {
2
+ "name": "driftdetect-vscode",
3
+ "displayName": "Drift - Architectural Drift Detection",
4
+ "description": "Learn your codebase patterns and enforce consistency. Pattern detection, call graph analysis, security visualization, and MCP integration for AI agents. Supports TypeScript, Python, C#, Java, PHP.",
5
+ "version": "0.8.2",
6
+ "publisher": "driftdetect",
7
+ "license": "Apache-2.0",
8
+ "icon": "resources/drift-icon.png",
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "https://github.com/dadbodgeoff/drift"
12
+ },
13
+ "homepage": "https://github.com/dadbodgeoff/drift#readme",
14
+ "bugs": {
15
+ "url": "https://github.com/dadbodgeoff/drift/issues"
16
+ },
17
+ "engines": {
18
+ "vscode": "^1.85.0"
19
+ },
20
+ "categories": [
21
+ "Linters",
22
+ "Programming Languages",
23
+ "Other"
24
+ ],
25
+ "keywords": [
26
+ "pattern-detection",
27
+ "code-analysis",
28
+ "architecture",
29
+ "linting",
30
+ "code-quality",
31
+ "static-analysis",
32
+ "call-graph",
33
+ "security",
34
+ "mcp",
35
+ "ai-agent",
36
+ "typescript",
37
+ "python",
38
+ "csharp",
39
+ "java",
40
+ "php"
41
+ ],
42
+ "activationEvents": [
43
+ "onStartupFinished"
44
+ ],
45
+ "main": "./dist/extension.js",
46
+ "type": "module",
47
+ "contributes": {
48
+ "commands": [
49
+ {
50
+ "command": "drift.reconnect",
51
+ "title": "Reconnect to Server",
52
+ "category": "Drift",
53
+ "icon": "$(refresh)"
54
+ },
55
+ {
56
+ "command": "drift.showStatus",
57
+ "title": "Show Status",
58
+ "category": "Drift",
59
+ "icon": "$(info)"
60
+ },
61
+ {
62
+ "command": "drift.rescan",
63
+ "title": "Rescan Workspace",
64
+ "category": "Drift",
65
+ "icon": "$(sync)"
66
+ },
67
+ {
68
+ "command": "drift.scanFile",
69
+ "title": "Scan Current File",
70
+ "category": "Drift",
71
+ "icon": "$(file-code)"
72
+ },
73
+ {
74
+ "command": "drift.showPatterns",
75
+ "title": "Show All Patterns",
76
+ "category": "Drift",
77
+ "icon": "$(list-tree)"
78
+ },
79
+ {
80
+ "command": "drift.showViolations",
81
+ "title": "Show All Violations",
82
+ "category": "Drift",
83
+ "icon": "$(warning)"
84
+ },
85
+ {
86
+ "command": "drift.approvePattern",
87
+ "title": "Approve Pattern",
88
+ "category": "Drift",
89
+ "icon": "$(check)"
90
+ },
91
+ {
92
+ "command": "drift.ignorePattern",
93
+ "title": "Ignore Pattern",
94
+ "category": "Drift",
95
+ "icon": "$(x)"
96
+ },
97
+ {
98
+ "command": "drift.ignoreOnce",
99
+ "title": "Ignore This Occurrence",
100
+ "category": "Drift"
101
+ },
102
+ {
103
+ "command": "drift.createVariant",
104
+ "title": "Create Variant",
105
+ "category": "Drift",
106
+ "icon": "$(git-branch)"
107
+ },
108
+ {
109
+ "command": "drift.explainWithAI",
110
+ "title": "Explain with AI",
111
+ "category": "Drift",
112
+ "icon": "$(sparkle)"
113
+ },
114
+ {
115
+ "command": "drift.fixWithAI",
116
+ "title": "Fix with AI",
117
+ "category": "Drift",
118
+ "icon": "$(wand)"
119
+ },
120
+ {
121
+ "command": "drift.openDashboard",
122
+ "title": "Open Dashboard",
123
+ "category": "Drift",
124
+ "icon": "$(dashboard)"
125
+ },
126
+ {
127
+ "command": "drift.openSettings",
128
+ "title": "Open Settings",
129
+ "category": "Drift",
130
+ "icon": "$(gear)"
131
+ },
132
+ {
133
+ "command": "drift.exportPatterns",
134
+ "title": "Export Patterns",
135
+ "category": "Drift"
136
+ },
137
+ {
138
+ "command": "drift.generateReport",
139
+ "title": "Generate Report",
140
+ "category": "Drift"
141
+ }
142
+ ],
143
+ "configuration": {
144
+ "title": "Drift",
145
+ "properties": {
146
+ "drift.server.path": {
147
+ "type": "string",
148
+ "default": "",
149
+ "description": "Path to Drift LSP server (leave empty to use bundled server)"
150
+ },
151
+ "drift.server.args": {
152
+ "type": "array",
153
+ "items": {
154
+ "type": "string"
155
+ },
156
+ "default": [],
157
+ "description": "Additional arguments to pass to the LSP server"
158
+ },
159
+ "drift.server.trace": {
160
+ "type": "string",
161
+ "enum": [
162
+ "off",
163
+ "messages",
164
+ "verbose"
165
+ ],
166
+ "default": "off",
167
+ "description": "Trace communication with the Drift server"
168
+ },
169
+ "drift.scan.onSave": {
170
+ "type": "boolean",
171
+ "default": true,
172
+ "description": "Scan files when saved"
173
+ },
174
+ "drift.scan.onOpen": {
175
+ "type": "boolean",
176
+ "default": true,
177
+ "description": "Scan files when opened"
178
+ },
179
+ "drift.scan.debounceMs": {
180
+ "type": "number",
181
+ "default": 200,
182
+ "minimum": 0,
183
+ "description": "Debounce delay for scanning (ms)"
184
+ },
185
+ "drift.scan.excludePatterns": {
186
+ "type": "array",
187
+ "items": {
188
+ "type": "string"
189
+ },
190
+ "default": [
191
+ "**/node_modules/**",
192
+ "**/dist/**",
193
+ "**/.git/**"
194
+ ],
195
+ "description": "Glob patterns to exclude from scanning"
196
+ },
197
+ "drift.display.showStatusBar": {
198
+ "type": "boolean",
199
+ "default": true,
200
+ "description": "Show Drift status in the status bar"
201
+ },
202
+ "drift.display.showInlineHints": {
203
+ "type": "boolean",
204
+ "default": true,
205
+ "description": "Show inline hints for violations"
206
+ },
207
+ "drift.display.showGutterIcons": {
208
+ "type": "boolean",
209
+ "default": true,
210
+ "description": "Show gutter icons for violations"
211
+ },
212
+ "drift.display.severityFilter": {
213
+ "type": "array",
214
+ "items": {
215
+ "type": "string",
216
+ "enum": [
217
+ "error",
218
+ "warning",
219
+ "info",
220
+ "hint"
221
+ ]
222
+ },
223
+ "default": [
224
+ "error",
225
+ "warning"
226
+ ],
227
+ "description": "Severity levels to display"
228
+ },
229
+ "drift.ai.enabled": {
230
+ "type": "boolean",
231
+ "default": false,
232
+ "description": "Enable AI-powered features"
233
+ },
234
+ "drift.ai.provider": {
235
+ "type": "string",
236
+ "enum": [
237
+ "openai",
238
+ "anthropic",
239
+ "ollama",
240
+ "none"
241
+ ],
242
+ "default": "none",
243
+ "description": "AI provider for explanations and fixes"
244
+ },
245
+ "drift.ai.model": {
246
+ "type": "string",
247
+ "default": "",
248
+ "description": "AI model to use"
249
+ }
250
+ }
251
+ },
252
+ "viewsContainers": {
253
+ "activitybar": [
254
+ {
255
+ "id": "drift",
256
+ "title": "Drift",
257
+ "icon": "resources/drift-icon.svg"
258
+ }
259
+ ]
260
+ },
261
+ "views": {
262
+ "drift": [
263
+ {
264
+ "id": "drift.patterns",
265
+ "name": "Patterns",
266
+ "icon": "$(list-tree)",
267
+ "contextualTitle": "Drift Patterns"
268
+ },
269
+ {
270
+ "id": "drift.violations",
271
+ "name": "Violations",
272
+ "icon": "$(warning)",
273
+ "contextualTitle": "Drift Violations"
274
+ },
275
+ {
276
+ "id": "drift.files",
277
+ "name": "Files",
278
+ "icon": "$(file-code)",
279
+ "contextualTitle": "Files with Patterns"
280
+ }
281
+ ]
282
+ },
283
+ "viewsWelcome": [
284
+ {
285
+ "view": "drift.patterns",
286
+ "contents": "No patterns detected yet.\n[Scan Workspace](command:drift.rescan)"
287
+ },
288
+ {
289
+ "view": "drift.violations",
290
+ "contents": "No violations found. Your code follows all detected patterns! 🎉"
291
+ }
292
+ ],
293
+ "menus": {
294
+ "view/title": [
295
+ {
296
+ "command": "drift.rescan",
297
+ "when": "view =~ /^drift\\./",
298
+ "group": "navigation"
299
+ }
300
+ ],
301
+ "view/item/context": [
302
+ {
303
+ "command": "drift.approvePattern",
304
+ "when": "view == drift.patterns && viewItem == pattern",
305
+ "group": "inline"
306
+ },
307
+ {
308
+ "command": "drift.ignorePattern",
309
+ "when": "view == drift.patterns && viewItem == pattern",
310
+ "group": "inline"
311
+ }
312
+ ],
313
+ "editor/context": [
314
+ {
315
+ "command": "drift.ignoreOnce",
316
+ "when": "editorTextFocus",
317
+ "group": "drift@1"
318
+ },
319
+ {
320
+ "command": "drift.explainWithAI",
321
+ "when": "editorTextFocus && config.drift.ai.enabled",
322
+ "group": "drift@2"
323
+ }
324
+ ],
325
+ "commandPalette": [
326
+ {
327
+ "command": "drift.approvePattern",
328
+ "when": "drift.connected"
329
+ },
330
+ {
331
+ "command": "drift.ignorePattern",
332
+ "when": "drift.connected"
333
+ },
334
+ {
335
+ "command": "drift.explainWithAI",
336
+ "when": "drift.connected && config.drift.ai.enabled"
337
+ },
338
+ {
339
+ "command": "drift.fixWithAI",
340
+ "when": "drift.connected && config.drift.ai.enabled"
341
+ }
342
+ ]
343
+ },
344
+ "keybindings": [
345
+ {
346
+ "command": "drift.rescan",
347
+ "key": "ctrl+shift+d r",
348
+ "mac": "cmd+shift+d r"
349
+ },
350
+ {
351
+ "command": "drift.showViolations",
352
+ "key": "ctrl+shift+d v",
353
+ "mac": "cmd+shift+d v"
354
+ },
355
+ {
356
+ "command": "drift.showPatterns",
357
+ "key": "ctrl+shift+d p",
358
+ "mac": "cmd+shift+d p"
359
+ }
360
+ ],
361
+ "colors": [
362
+ {
363
+ "id": "drift.violationBackground",
364
+ "description": "Background color for violation highlights",
365
+ "defaults": {
366
+ "dark": "#ff000020",
367
+ "light": "#ff000010"
368
+ }
369
+ },
370
+ {
371
+ "id": "drift.patternBackground",
372
+ "description": "Background color for pattern highlights",
373
+ "defaults": {
374
+ "dark": "#00ff0020",
375
+ "light": "#00ff0010"
376
+ }
377
+ }
378
+ ]
379
+ },
380
+ "dependencies": {
381
+ "driftdetect-lsp": "^0.8.1",
382
+ "vscode-languageclient": "^9.0.1"
383
+ },
384
+ "devDependencies": {
385
+ "@types/node": "^20.10.0",
386
+ "@types/vscode": "^1.85.0",
387
+ "@vitest/coverage-v8": "^1.0.0",
388
+ "@vscode/vsce": "^2.22.0",
389
+ "typescript": "^5.3.0",
390
+ "vitest": "^1.0.0"
391
+ },
392
+ "scripts": {
393
+ "build": "tsc -p tsconfig.json",
394
+ "clean": "rm -rf dist",
395
+ "dev": "tsc -p tsconfig.json --watch",
396
+ "lint": "eslint src --ext .ts,.tsx",
397
+ "lint:fix": "eslint src --ext .ts,.tsx --fix",
398
+ "test": "vitest run",
399
+ "test:watch": "vitest",
400
+ "test:coverage": "vitest run --coverage",
401
+ "typecheck": "tsc --noEmit",
402
+ "vscode:prepublish": "pnpm run build",
403
+ "package": "vsce package --no-dependencies"
404
+ }
405
+ }
Binary file
@@ -0,0 +1,5 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
2
+ <path d="M12 2L2 7l10 5 10-5-10-5z"/>
3
+ <path d="M2 17l10 5 10-5"/>
4
+ <path d="M2 12l10 5 10-5"/>
5
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="#f44336">
2
+ <circle cx="8" cy="8" r="7"/>
3
+ <path fill="#fff" d="M8 4v5M8 11v1"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="#2196f3">
2
+ <circle cx="8" cy="8" r="7"/>
3
+ <path fill="#fff" d="M8 5v1M8 8v4"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="#4caf50">
2
+ <path d="M8 1a5 5 0 0 0-3 9v2h6v-2a5 5 0 0 0-3-9z"/>
3
+ <rect x="5" y="13" width="6" height="2" rx="1"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="#ff9800">
2
+ <path d="M8 1L1 15h14L8 1z"/>
3
+ <path fill="#fff" d="M8 6v4M8 12v1"/>
4
+ </svg>