couchloop-eq-mcp 1.0.4 → 1.0.5

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 (282) hide show
  1. package/README.md +24 -11
  2. package/dist/developer/analyzers/bloat-detector.d.ts +89 -0
  3. package/dist/developer/analyzers/bloat-detector.d.ts.map +1 -0
  4. package/dist/developer/analyzers/bloat-detector.js +483 -0
  5. package/dist/developer/analyzers/bloat-detector.js.map +1 -0
  6. package/dist/developer/backup/auto-backup.d.ts +96 -0
  7. package/dist/developer/backup/auto-backup.d.ts.map +1 -0
  8. package/dist/developer/backup/auto-backup.js +346 -0
  9. package/dist/developer/backup/auto-backup.js.map +1 -0
  10. package/dist/developer/blockers/package-blocker.d.ts +33 -0
  11. package/dist/developer/blockers/package-blocker.d.ts.map +1 -0
  12. package/dist/developer/blockers/package-blocker.js +224 -0
  13. package/dist/developer/blockers/package-blocker.js.map +1 -0
  14. package/dist/developer/evaluators/ai-error-preventer.d.ts +54 -0
  15. package/dist/developer/evaluators/ai-error-preventer.d.ts.map +1 -0
  16. package/dist/developer/evaluators/ai-error-preventer.js +270 -0
  17. package/dist/developer/evaluators/ai-error-preventer.js.map +1 -0
  18. package/dist/developer/evaluators/build-context-detector.d.ts +44 -0
  19. package/dist/developer/evaluators/build-context-detector.d.ts.map +1 -0
  20. package/dist/developer/evaluators/build-context-detector.js +258 -0
  21. package/dist/developer/evaluators/build-context-detector.js.map +1 -0
  22. package/dist/developer/evaluators/package-evaluator.d.ts +37 -0
  23. package/dist/developer/evaluators/package-evaluator.d.ts.map +1 -0
  24. package/dist/developer/evaluators/package-evaluator.js +278 -0
  25. package/dist/developer/evaluators/package-evaluator.js.map +1 -0
  26. package/dist/developer/guards/file-guardian.d.ts +79 -0
  27. package/dist/developer/guards/file-guardian.d.ts.map +1 -0
  28. package/dist/developer/guards/file-guardian.js +309 -0
  29. package/dist/developer/guards/file-guardian.js.map +1 -0
  30. package/dist/developer/managers/context-manager.d.ts +61 -0
  31. package/dist/developer/managers/context-manager.d.ts.map +1 -0
  32. package/dist/developer/managers/context-manager.js +302 -0
  33. package/dist/developer/managers/context-manager.js.map +1 -0
  34. package/dist/developer/metrics/complexity-calculator.d.ts +52 -0
  35. package/dist/developer/metrics/complexity-calculator.d.ts.map +1 -0
  36. package/dist/developer/metrics/complexity-calculator.js +259 -0
  37. package/dist/developer/metrics/complexity-calculator.js.map +1 -0
  38. package/dist/developer/reports/review-summary.d.ts +49 -0
  39. package/dist/developer/reports/review-summary.d.ts.map +1 -0
  40. package/dist/developer/reports/review-summary.js +249 -0
  41. package/dist/developer/reports/review-summary.js.map +1 -0
  42. package/dist/developer/scanners/review-assistant.d.ts +41 -0
  43. package/dist/developer/scanners/review-assistant.d.ts.map +1 -0
  44. package/dist/developer/scanners/review-assistant.js +374 -0
  45. package/dist/developer/scanners/review-assistant.js.map +1 -0
  46. package/dist/developer/scanners/secret-scanner.d.ts +66 -0
  47. package/dist/developer/scanners/secret-scanner.d.ts.map +1 -0
  48. package/dist/developer/scanners/secret-scanner.js +287 -0
  49. package/dist/developer/scanners/secret-scanner.js.map +1 -0
  50. package/dist/developer/scanners/sql-injection-detector.d.ts +54 -0
  51. package/dist/developer/scanners/sql-injection-detector.d.ts.map +1 -0
  52. package/dist/developer/scanners/sql-injection-detector.js +174 -0
  53. package/dist/developer/scanners/sql-injection-detector.js.map +1 -0
  54. package/dist/developer/scanners/xss-detector.d.ts +60 -0
  55. package/dist/developer/scanners/xss-detector.d.ts.map +1 -0
  56. package/dist/developer/scanners/xss-detector.js +229 -0
  57. package/dist/developer/scanners/xss-detector.js.map +1 -0
  58. package/dist/developer/types/ai-errors.d.ts +34 -0
  59. package/dist/developer/types/ai-errors.d.ts.map +1 -0
  60. package/dist/developer/types/ai-errors.js +271 -0
  61. package/dist/developer/types/ai-errors.js.map +1 -0
  62. package/dist/developer/types/package.d.ts +32 -0
  63. package/dist/developer/types/package.d.ts.map +1 -0
  64. package/dist/developer/types/package.js +5 -0
  65. package/dist/developer/types/package.js.map +1 -0
  66. package/dist/developer/updaters/dependency-updater.d.ts +102 -0
  67. package/dist/developer/updaters/dependency-updater.d.ts.map +1 -0
  68. package/dist/developer/updaters/dependency-updater.js +472 -0
  69. package/dist/developer/updaters/dependency-updater.js.map +1 -0
  70. package/dist/developer/validators/cargo.d.ts +14 -0
  71. package/dist/developer/validators/cargo.d.ts.map +1 -0
  72. package/dist/developer/validators/cargo.js +132 -0
  73. package/dist/developer/validators/cargo.js.map +1 -0
  74. package/dist/developer/validators/gem.d.ts +14 -0
  75. package/dist/developer/validators/gem.d.ts.map +1 -0
  76. package/dist/developer/validators/gem.js +85 -0
  77. package/dist/developer/validators/gem.js.map +1 -0
  78. package/dist/developer/validators/go.d.ts +14 -0
  79. package/dist/developer/validators/go.d.ts.map +1 -0
  80. package/dist/developer/validators/go.js +138 -0
  81. package/dist/developer/validators/go.js.map +1 -0
  82. package/dist/developer/validators/maven.d.ts +14 -0
  83. package/dist/developer/validators/maven.d.ts.map +1 -0
  84. package/dist/developer/validators/maven.js +99 -0
  85. package/dist/developer/validators/maven.js.map +1 -0
  86. package/dist/developer/validators/npm.d.ts +14 -0
  87. package/dist/developer/validators/npm.d.ts.map +1 -0
  88. package/dist/developer/validators/npm.js +96 -0
  89. package/dist/developer/validators/npm.js.map +1 -0
  90. package/dist/developer/validators/nuget.d.ts +15 -0
  91. package/dist/developer/validators/nuget.d.ts.map +1 -0
  92. package/dist/developer/validators/nuget.js +107 -0
  93. package/dist/developer/validators/nuget.js.map +1 -0
  94. package/dist/developer/validators/pypi.d.ts +14 -0
  95. package/dist/developer/validators/pypi.d.ts.map +1 -0
  96. package/dist/developer/validators/pypi.js +118 -0
  97. package/dist/developer/validators/pypi.js.map +1 -0
  98. package/dist/developer/validators/registry-manager.d.ts +37 -0
  99. package/dist/developer/validators/registry-manager.d.ts.map +1 -0
  100. package/dist/developer/validators/registry-manager.js +89 -0
  101. package/dist/developer/validators/registry-manager.js.map +1 -0
  102. package/dist/developer/validators/version-checker.d.ts +145 -0
  103. package/dist/developer/validators/version-checker.d.ts.map +1 -0
  104. package/dist/developer/validators/version-checker.js +529 -0
  105. package/dist/developer/validators/version-checker.js.map +1 -0
  106. package/dist/server/index.js.map +1 -1
  107. package/dist/server/middleware/auth.d.ts +7 -9
  108. package/dist/server/middleware/auth.d.ts.map +1 -1
  109. package/dist/server/middleware/auth.js.map +1 -1
  110. package/dist/tools/check-versions.d.ts +100 -0
  111. package/dist/tools/check-versions.d.ts.map +1 -0
  112. package/dist/tools/check-versions.js +328 -0
  113. package/dist/tools/check-versions.js.map +1 -0
  114. package/dist/tools/detect-code-smell.d.ts +9 -0
  115. package/dist/tools/detect-code-smell.d.ts.map +1 -0
  116. package/dist/tools/detect-code-smell.js +231 -0
  117. package/dist/tools/detect-code-smell.js.map +1 -0
  118. package/dist/tools/index.d.ts +471 -0
  119. package/dist/tools/index.d.ts.map +1 -1
  120. package/dist/tools/index.js +178 -0
  121. package/dist/tools/index.js.map +1 -1
  122. package/dist/tools/journey.js +1 -1
  123. package/dist/tools/journey.js.map +1 -1
  124. package/dist/tools/pre-review-code.d.ts +71 -0
  125. package/dist/tools/pre-review-code.d.ts.map +1 -0
  126. package/dist/tools/pre-review-code.js +159 -0
  127. package/dist/tools/pre-review-code.js.map +1 -0
  128. package/dist/tools/preserve-context.d.ts +27 -0
  129. package/dist/tools/preserve-context.d.ts.map +1 -0
  130. package/dist/tools/preserve-context.js +98 -0
  131. package/dist/tools/preserve-context.js.map +1 -0
  132. package/dist/tools/protect-files.d.ts +224 -0
  133. package/dist/tools/protect-files.d.ts.map +1 -0
  134. package/dist/tools/protect-files.js +286 -0
  135. package/dist/tools/protect-files.js.map +1 -0
  136. package/dist/tools/scan-security.d.ts +38 -0
  137. package/dist/tools/scan-security.d.ts.map +1 -0
  138. package/dist/tools/scan-security.js +237 -0
  139. package/dist/tools/scan-security.js.map +1 -0
  140. package/dist/tools/validate_packages.d.ts +8 -0
  141. package/dist/tools/validate_packages.d.ts.map +1 -0
  142. package/dist/tools/validate_packages.js +159 -0
  143. package/dist/tools/validate_packages.js.map +1 -0
  144. package/dist/types/auth.d.ts.map +1 -1
  145. package/dist/types/auth.js +1 -2
  146. package/dist/types/auth.js.map +1 -1
  147. package/dist/types/context.d.ts +46 -0
  148. package/dist/types/context.d.ts.map +1 -0
  149. package/dist/types/context.js +17 -0
  150. package/dist/types/context.js.map +1 -0
  151. package/dist/types/file-protection.d.ts +50 -0
  152. package/dist/types/file-protection.d.ts.map +1 -0
  153. package/dist/types/file-protection.js +9 -0
  154. package/dist/types/file-protection.js.map +1 -0
  155. package/dist/utils/errorHandler.d.ts.map +1 -1
  156. package/dist/utils/errorHandler.js +2 -1
  157. package/dist/utils/errorHandler.js.map +1 -1
  158. package/package.json +23 -2
  159. package/dist/db/migrate.d.ts +0 -4
  160. package/dist/db/migrate.d.ts.map +0 -1
  161. package/dist/db/migrate.js +0 -34
  162. package/dist/db/migrate.js.map +0 -1
  163. package/dist/db/migrations/schema.d.ts +0 -1074
  164. package/dist/db/migrations/schema.d.ts.map +0 -1
  165. package/dist/db/migrations/schema.js +0 -160
  166. package/dist/db/migrations/schema.js.map +0 -1
  167. package/dist/db/schema.d.ts +0 -1576
  168. package/dist/db/schema.d.ts.map +0 -1
  169. package/dist/db/schema.js +0 -204
  170. package/dist/db/schema.js.map +0 -1
  171. package/dist/db/seed.d.ts +0 -4
  172. package/dist/db/seed.d.ts.map +0 -1
  173. package/dist/db/seed.js +0 -57
  174. package/dist/db/seed.js.map +0 -1
  175. package/dist/db/seedOAuth.d.ts +0 -4
  176. package/dist/db/seedOAuth.d.ts.map +0 -1
  177. package/dist/db/seedOAuth.js +0 -76
  178. package/dist/db/seedOAuth.js.map +0 -1
  179. package/dist/governance/config.d.ts +0 -66
  180. package/dist/governance/config.d.ts.map +0 -1
  181. package/dist/governance/config.js +0 -238
  182. package/dist/governance/config.js.map +0 -1
  183. package/dist/governance/detectors/hallucination.d.ts +0 -61
  184. package/dist/governance/detectors/hallucination.d.ts.map +0 -1
  185. package/dist/governance/detectors/hallucination.js +0 -338
  186. package/dist/governance/detectors/hallucination.js.map +0 -1
  187. package/dist/governance/detectors/inconsistency.d.ts +0 -99
  188. package/dist/governance/detectors/inconsistency.d.ts.map +0 -1
  189. package/dist/governance/detectors/inconsistency.js +0 -548
  190. package/dist/governance/detectors/inconsistency.js.map +0 -1
  191. package/dist/governance/detectors/toneDrift.d.ts +0 -63
  192. package/dist/governance/detectors/toneDrift.d.ts.map +0 -1
  193. package/dist/governance/detectors/toneDrift.js +0 -421
  194. package/dist/governance/detectors/toneDrift.js.map +0 -1
  195. package/dist/governance/detectors/unsafeReasoning.d.ts +0 -54
  196. package/dist/governance/detectors/unsafeReasoning.d.ts.map +0 -1
  197. package/dist/governance/detectors/unsafeReasoning.js +0 -473
  198. package/dist/governance/detectors/unsafeReasoning.js.map +0 -1
  199. package/dist/governance/evaluationEngine.d.ts +0 -112
  200. package/dist/governance/evaluationEngine.d.ts.map +0 -1
  201. package/dist/governance/evaluationEngine.js +0 -265
  202. package/dist/governance/evaluationEngine.js.map +0 -1
  203. package/dist/governance/intervention.d.ts +0 -81
  204. package/dist/governance/intervention.d.ts.map +0 -1
  205. package/dist/governance/intervention.js +0 -405
  206. package/dist/governance/intervention.js.map +0 -1
  207. package/dist/server/oauth/anomalyDetection.d.ts +0 -146
  208. package/dist/server/oauth/anomalyDetection.d.ts.map +0 -1
  209. package/dist/server/oauth/anomalyDetection.js +0 -405
  210. package/dist/server/oauth/anomalyDetection.js.map +0 -1
  211. package/dist/server/oauth/authServer.d.ts +0 -61
  212. package/dist/server/oauth/authServer.d.ts.map +0 -1
  213. package/dist/server/oauth/authServer.js +0 -283
  214. package/dist/server/oauth/authServer.js.map +0 -1
  215. package/dist/server/oauth/dpop.d.ts +0 -135
  216. package/dist/server/oauth/dpop.d.ts.map +0 -1
  217. package/dist/server/oauth/dpop.js +0 -338
  218. package/dist/server/oauth/dpop.js.map +0 -1
  219. package/dist/server/oauth/gdpr/consent.d.ts +0 -173
  220. package/dist/server/oauth/gdpr/consent.d.ts.map +0 -1
  221. package/dist/server/oauth/gdpr/consent.js +0 -388
  222. package/dist/server/oauth/gdpr/consent.js.map +0 -1
  223. package/dist/server/oauth/gdpr/dataPortability.d.ts +0 -214
  224. package/dist/server/oauth/gdpr/dataPortability.d.ts.map +0 -1
  225. package/dist/server/oauth/gdpr/dataPortability.js +0 -486
  226. package/dist/server/oauth/gdpr/dataPortability.js.map +0 -1
  227. package/dist/server/oauth/gdpr/index.d.ts +0 -103
  228. package/dist/server/oauth/gdpr/index.d.ts.map +0 -1
  229. package/dist/server/oauth/gdpr/index.js +0 -273
  230. package/dist/server/oauth/gdpr/index.js.map +0 -1
  231. package/dist/server/oauth/gdpr/rightToErasure.d.ts +0 -184
  232. package/dist/server/oauth/gdpr/rightToErasure.d.ts.map +0 -1
  233. package/dist/server/oauth/gdpr/rightToErasure.js +0 -527
  234. package/dist/server/oauth/gdpr/rightToErasure.js.map +0 -1
  235. package/dist/server/oauth/monitoring/securityMonitor.d.ts +0 -218
  236. package/dist/server/oauth/monitoring/securityMonitor.d.ts.map +0 -1
  237. package/dist/server/oauth/monitoring/securityMonitor.js +0 -615
  238. package/dist/server/oauth/monitoring/securityMonitor.js.map +0 -1
  239. package/dist/server/oauth/pkce.d.ts +0 -61
  240. package/dist/server/oauth/pkce.d.ts.map +0 -1
  241. package/dist/server/oauth/pkce.js +0 -157
  242. package/dist/server/oauth/pkce.js.map +0 -1
  243. package/dist/server/oauth/providers/base.d.ts +0 -147
  244. package/dist/server/oauth/providers/base.d.ts.map +0 -1
  245. package/dist/server/oauth/providers/base.js +0 -312
  246. package/dist/server/oauth/providers/base.js.map +0 -1
  247. package/dist/server/oauth/providers/github.d.ts +0 -55
  248. package/dist/server/oauth/providers/github.d.ts.map +0 -1
  249. package/dist/server/oauth/providers/github.js +0 -225
  250. package/dist/server/oauth/providers/github.js.map +0 -1
  251. package/dist/server/oauth/providers/google.d.ts +0 -49
  252. package/dist/server/oauth/providers/google.d.ts.map +0 -1
  253. package/dist/server/oauth/providers/google.js +0 -153
  254. package/dist/server/oauth/providers/google.js.map +0 -1
  255. package/dist/server/oauth/providers/index.d.ts +0 -9
  256. package/dist/server/oauth/providers/index.d.ts.map +0 -1
  257. package/dist/server/oauth/providers/index.js +0 -24
  258. package/dist/server/oauth/providers/index.js.map +0 -1
  259. package/dist/server/oauth/refreshTokenRotation.d.ts +0 -114
  260. package/dist/server/oauth/refreshTokenRotation.d.ts.map +0 -1
  261. package/dist/server/oauth/refreshTokenRotation.js +0 -344
  262. package/dist/server/oauth/refreshTokenRotation.js.map +0 -1
  263. package/dist/server/oauth/security.d.ts +0 -101
  264. package/dist/server/oauth/security.d.ts.map +0 -1
  265. package/dist/server/oauth/security.js +0 -268
  266. package/dist/server/oauth/security.js.map +0 -1
  267. package/dist/server/oauth/tokenEncryption.d.ts +0 -80
  268. package/dist/server/oauth/tokenEncryption.d.ts.map +0 -1
  269. package/dist/server/oauth/tokenEncryption.js +0 -218
  270. package/dist/server/oauth/tokenEncryption.js.map +0 -1
  271. package/dist/tools/sendMessage-complex-backup.d.ts +0 -6
  272. package/dist/tools/sendMessage-complex-backup.d.ts.map +0 -1
  273. package/dist/tools/sendMessage-complex-backup.js +0 -545
  274. package/dist/tools/sendMessage-complex-backup.js.map +0 -1
  275. package/dist/tools/sendMessage-revised.d.ts +0 -11
  276. package/dist/tools/sendMessage-revised.d.ts.map +0 -1
  277. package/dist/tools/sendMessage-revised.js +0 -429
  278. package/dist/tools/sendMessage-revised.js.map +0 -1
  279. package/dist/tools/sendMessage-truly-simple.d.ts +0 -8
  280. package/dist/tools/sendMessage-truly-simple.d.ts.map +0 -1
  281. package/dist/tools/sendMessage-truly-simple.js +0 -299
  282. package/dist/tools/sendMessage-truly-simple.js.map +0 -1
@@ -0,0 +1,79 @@
1
+ import { ProtectionViolation, FileOperation } from '../../types/file-protection.js';
2
+ export declare class FileGuardian {
3
+ private codeFreezeMode;
4
+ private operationLog;
5
+ constructor();
6
+ /**
7
+ * Enable code freeze mode - all file operations require approval
8
+ */
9
+ enableCodeFreezeMode(): void;
10
+ /**
11
+ * Disable code freeze mode
12
+ */
13
+ disableCodeFreezeMode(): void;
14
+ /**
15
+ * Check if a file path matches a protected pattern
16
+ */
17
+ matchesProtectedPattern(filePath: string): boolean;
18
+ /**
19
+ * Check if a path is forbidden (should never be deleted)
20
+ */
21
+ isForbiddenPath(filePath: string): boolean;
22
+ /**
23
+ * Check if this is a critical system file
24
+ */
25
+ isCriticalSystemFile(filePath: string): boolean;
26
+ /**
27
+ * Check if operation is dangerous
28
+ */
29
+ isDangerousOperation(operation: string): boolean;
30
+ /**
31
+ * Validate file deletion operation
32
+ */
33
+ validateDelete(filePath: string, _force?: boolean): ProtectionViolation[];
34
+ /**
35
+ * Validate file overwrite operation
36
+ */
37
+ validateOverwrite(filePath: string, _force?: boolean): ProtectionViolation[];
38
+ /**
39
+ * Validate file move operation
40
+ */
41
+ validateMove(sourcePath: string, targetPath: string, _force?: boolean): ProtectionViolation[];
42
+ /**
43
+ * Perform comprehensive file operation validation
44
+ */
45
+ validateOperation(operation: 'delete' | 'overwrite' | 'move', filePath: string, targetPath?: string, force?: boolean): {
46
+ allowed: boolean;
47
+ violations: ProtectionViolation[];
48
+ requiresApproval: boolean;
49
+ severity: 'none' | 'low' | 'medium' | 'high' | 'critical';
50
+ };
51
+ /**
52
+ * Log a file operation
53
+ */
54
+ logOperation(operation: FileOperation): void;
55
+ /**
56
+ * Get operation history
57
+ */
58
+ getOperationHistory(limit?: number): FileOperation[];
59
+ /**
60
+ * Get protected paths configuration
61
+ */
62
+ getProtectionConfig(): {
63
+ protectedPatterns: string[];
64
+ forbiddenPaths: string[];
65
+ criticalSystemFiles: string[];
66
+ codeFreezeMode: boolean;
67
+ };
68
+ /**
69
+ * Generate protection report
70
+ */
71
+ getProtectionReport(): {
72
+ codeFreezeEnabled: boolean;
73
+ totalOperationsLogged: number;
74
+ recentViolations: ProtectionViolation[];
75
+ protectedItemsCount: number;
76
+ };
77
+ }
78
+ export declare const fileGuardian: FileGuardian;
79
+ //# sourceMappingURL=file-guardian.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-guardian.d.ts","sourceRoot":"","sources":["../../../src/developer/guards/file-guardian.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAqDpF,qBAAa,YAAY;IACvB,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,YAAY,CAAuB;;IAM3C;;OAEG;IACH,oBAAoB,IAAI,IAAI;IAK5B;;OAEG;IACH,qBAAqB,IAAI,IAAI;IAK7B;;OAEG;IACH,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IASlD;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAO1C;;OAEG;IACH,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAK/C;;OAEG;IACH,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIhD;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,OAAe,GAAG,mBAAmB,EAAE;IA8ChF;;OAEG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,OAAe,GAAG,mBAAmB,EAAE;IAoCnF;;OAEG;IACH,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAE,OAAe,GAAG,mBAAmB,EAAE;IA8CpG;;OAEG;IACH,iBAAiB,CACf,SAAS,EAAE,QAAQ,GAAG,WAAW,GAAG,MAAM,EAC1C,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,EACnB,KAAK,GAAE,OAAe,GACrB;QACD,OAAO,EAAE,OAAO,CAAC;QACjB,UAAU,EAAE,mBAAmB,EAAE,CAAC;QAClC,gBAAgB,EAAE,OAAO,CAAC;QAC1B,QAAQ,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;KAC3D;IAmCD;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,aAAa,GAAG,IAAI;IAgB5C;;OAEG;IACH,mBAAmB,CAAC,KAAK,GAAE,MAAW,GAAG,aAAa,EAAE;IAIxD;;OAEG;IACH,mBAAmB,IAAI;QACrB,iBAAiB,EAAE,MAAM,EAAE,CAAC;QAC5B,cAAc,EAAE,MAAM,EAAE,CAAC;QACzB,mBAAmB,EAAE,MAAM,EAAE,CAAC;QAC9B,cAAc,EAAE,OAAO,CAAC;KACzB;IASD;;OAEG;IACH,mBAAmB,IAAI;QACrB,iBAAiB,EAAE,OAAO,CAAC;QAC3B,qBAAqB,EAAE,MAAM,CAAC;QAC9B,gBAAgB,EAAE,mBAAmB,EAAE,CAAC;QACxC,mBAAmB,EAAE,MAAM,CAAC;KAC7B;CAgBF;AAGD,eAAO,MAAM,YAAY,cAAqB,CAAC"}
@@ -0,0 +1,309 @@
1
+ import path from 'path';
2
+ import { logger } from '../../utils/logger.js';
3
+ /**
4
+ * File Guardian - Detects and prevents destructive file operations
5
+ * Protects against accidental deletion, overwriting, and data loss
6
+ */
7
+ // Patterns that ALWAYS require confirmation before modification/deletion
8
+ const PROTECTED_PATTERNS = [
9
+ '.env*',
10
+ '*.key',
11
+ '*.pem',
12
+ '*.secret',
13
+ '*.credentials',
14
+ 'database.sqlite',
15
+ 'production.json',
16
+ 'secrets.json',
17
+ 'config.json',
18
+ 'package.json',
19
+ 'package-lock.json',
20
+ 'yarn.lock',
21
+ ];
22
+ // Paths that should NEVER be deleted (code freeze)
23
+ const FORBIDDEN_PATHS = [
24
+ '.git',
25
+ '.gitignore',
26
+ 'node_modules',
27
+ 'dist',
28
+ 'build',
29
+ '.next',
30
+ '.env.production',
31
+ '.env.staging',
32
+ 'Dockerfile',
33
+ '.dockerignore',
34
+ ];
35
+ // System/critical files
36
+ const CRITICAL_SYSTEM_FILES = [
37
+ '.env',
38
+ '.env.local',
39
+ '.env.production',
40
+ '.env.staging',
41
+ 'package.json',
42
+ 'tsconfig.json',
43
+ 'eslint.config.js',
44
+ 'vitest.config.ts',
45
+ 'drizzle.config.ts',
46
+ ];
47
+ // Dangerous operations that require explicit confirmation
48
+ const DANGEROUS_OPERATIONS = ['rm -rf', 'rm -f', 'delete', 'unlink', 'truncate'];
49
+ export class FileGuardian {
50
+ codeFreezeMode = false;
51
+ operationLog = [];
52
+ constructor() {
53
+ this.codeFreezeMode = process.env.CODE_FREEZE_MODE === 'true';
54
+ }
55
+ /**
56
+ * Enable code freeze mode - all file operations require approval
57
+ */
58
+ enableCodeFreezeMode() {
59
+ this.codeFreezeMode = true;
60
+ logger.info('Code freeze mode ENABLED - all file operations require approval');
61
+ }
62
+ /**
63
+ * Disable code freeze mode
64
+ */
65
+ disableCodeFreezeMode() {
66
+ this.codeFreezeMode = false;
67
+ logger.info('Code freeze mode disabled');
68
+ }
69
+ /**
70
+ * Check if a file path matches a protected pattern
71
+ */
72
+ matchesProtectedPattern(filePath) {
73
+ const fileName = path.basename(filePath);
74
+ return PROTECTED_PATTERNS.some(pattern => {
75
+ const globPattern = pattern.replace(/\*/g, '.*');
76
+ const regex = new RegExp(`^${globPattern}$`);
77
+ return regex.test(fileName);
78
+ });
79
+ }
80
+ /**
81
+ * Check if a path is forbidden (should never be deleted)
82
+ */
83
+ isForbiddenPath(filePath) {
84
+ const normalized = path.normalize(filePath);
85
+ return FORBIDDEN_PATHS.some(forbidden => {
86
+ return normalized.includes(forbidden) || path.basename(normalized) === forbidden;
87
+ });
88
+ }
89
+ /**
90
+ * Check if this is a critical system file
91
+ */
92
+ isCriticalSystemFile(filePath) {
93
+ const fileName = path.basename(filePath);
94
+ return CRITICAL_SYSTEM_FILES.includes(fileName);
95
+ }
96
+ /**
97
+ * Check if operation is dangerous
98
+ */
99
+ isDangerousOperation(operation) {
100
+ return DANGEROUS_OPERATIONS.some(op => operation.toLowerCase().includes(op));
101
+ }
102
+ /**
103
+ * Validate file deletion operation
104
+ */
105
+ validateDelete(filePath, _force = false) {
106
+ const violations = [];
107
+ // Check if path is forbidden
108
+ if (this.isForbiddenPath(filePath)) {
109
+ violations.push({
110
+ type: 'forbidden_path',
111
+ path: filePath,
112
+ message: `Path '${filePath}' is protected and cannot be deleted. This directory/file is critical to system operation.`,
113
+ severity: 'critical',
114
+ });
115
+ }
116
+ // Check for critical system files
117
+ if (this.isCriticalSystemFile(filePath)) {
118
+ violations.push({
119
+ type: 'system_file',
120
+ path: filePath,
121
+ message: `System file '${filePath}' requires special approval before deletion.`,
122
+ severity: 'high',
123
+ });
124
+ }
125
+ // Check protected patterns
126
+ if (this.matchesProtectedPattern(filePath)) {
127
+ violations.push({
128
+ type: 'protected_pattern',
129
+ path: filePath,
130
+ message: `File '${filePath}' matches protected pattern. Credentials/configs must not be deleted.`,
131
+ severity: 'critical',
132
+ });
133
+ }
134
+ // Code freeze mode check
135
+ if (this.codeFreezeMode) {
136
+ violations.push({
137
+ type: 'dangerous_operation',
138
+ path: filePath,
139
+ message: `Code freeze mode is ENABLED. All delete operations require explicit approval. Cannot proceed.`,
140
+ severity: 'critical',
141
+ });
142
+ }
143
+ return violations;
144
+ }
145
+ /**
146
+ * Validate file overwrite operation
147
+ */
148
+ validateOverwrite(filePath, _force = false) {
149
+ const violations = [];
150
+ // Check for critical system files
151
+ if (this.isCriticalSystemFile(filePath)) {
152
+ violations.push({
153
+ type: 'system_file',
154
+ path: filePath,
155
+ message: `System file '${filePath}' cannot be overwritten without backup and approval.`,
156
+ severity: 'high',
157
+ });
158
+ }
159
+ // Check protected patterns
160
+ if (this.matchesProtectedPattern(filePath)) {
161
+ violations.push({
162
+ type: 'protected_pattern',
163
+ path: filePath,
164
+ message: `File '${filePath}' is protected. Overwriting credentials/configs is dangerous.`,
165
+ severity: 'critical',
166
+ });
167
+ }
168
+ // Code freeze mode check
169
+ if (this.codeFreezeMode) {
170
+ violations.push({
171
+ type: 'dangerous_operation',
172
+ path: filePath,
173
+ message: `Code freeze mode is ENABLED. All file modifications require explicit approval.`,
174
+ severity: 'critical',
175
+ });
176
+ }
177
+ return violations;
178
+ }
179
+ /**
180
+ * Validate file move operation
181
+ */
182
+ validateMove(sourcePath, targetPath, _force = false) {
183
+ const violations = [];
184
+ // Check if source is forbidden
185
+ if (this.isForbiddenPath(sourcePath)) {
186
+ violations.push({
187
+ type: 'forbidden_path',
188
+ path: sourcePath,
189
+ message: `Cannot move protected path '${sourcePath}'`,
190
+ severity: 'critical',
191
+ });
192
+ }
193
+ // Check if source is critical
194
+ if (this.isCriticalSystemFile(sourcePath)) {
195
+ violations.push({
196
+ type: 'system_file',
197
+ path: sourcePath,
198
+ message: `Cannot move critical system file '${sourcePath}' without backup.`,
199
+ severity: 'high',
200
+ });
201
+ }
202
+ // Warn if target path suggests unsafe operation
203
+ if (this.isForbiddenPath(targetPath)) {
204
+ violations.push({
205
+ type: 'dangerous_operation',
206
+ path: targetPath,
207
+ message: `Moving to protected location '${targetPath}' may cause issues.`,
208
+ severity: 'high',
209
+ });
210
+ }
211
+ // Code freeze mode check
212
+ if (this.codeFreezeMode) {
213
+ violations.push({
214
+ type: 'dangerous_operation',
215
+ path: sourcePath,
216
+ message: `Code freeze mode is ENABLED. All file operations require explicit approval.`,
217
+ severity: 'critical',
218
+ });
219
+ }
220
+ return violations;
221
+ }
222
+ /**
223
+ * Perform comprehensive file operation validation
224
+ */
225
+ validateOperation(operation, filePath, targetPath, force = false) {
226
+ let violations = [];
227
+ switch (operation) {
228
+ case 'delete':
229
+ violations = this.validateDelete(filePath, force);
230
+ break;
231
+ case 'overwrite':
232
+ violations = this.validateOverwrite(filePath, force);
233
+ break;
234
+ case 'move':
235
+ violations = this.validateMove(filePath, targetPath || '', force);
236
+ break;
237
+ }
238
+ // Determine severity from violations
239
+ let maxSeverity = 'none';
240
+ for (const violation of violations) {
241
+ if (violation.severity === 'critical') {
242
+ maxSeverity = 'critical';
243
+ }
244
+ else if (violation.severity === 'high' && maxSeverity !== 'critical') {
245
+ maxSeverity = 'high';
246
+ }
247
+ else if (violation.severity === 'medium' && maxSeverity === 'none') {
248
+ maxSeverity = 'medium';
249
+ }
250
+ }
251
+ return {
252
+ allowed: violations.length === 0,
253
+ violations,
254
+ requiresApproval: violations.length > 0,
255
+ severity: maxSeverity,
256
+ };
257
+ }
258
+ /**
259
+ * Log a file operation
260
+ */
261
+ logOperation(operation) {
262
+ this.operationLog.push({
263
+ ...operation,
264
+ timestamp: new Date(),
265
+ });
266
+ logger.info(`File operation logged: ${operation.operation} on ${operation.path} - Status: ${operation.status}`);
267
+ // Keep only last 100 operations
268
+ if (this.operationLog.length > 100) {
269
+ this.operationLog = this.operationLog.slice(-100);
270
+ }
271
+ }
272
+ /**
273
+ * Get operation history
274
+ */
275
+ getOperationHistory(limit = 50) {
276
+ return this.operationLog.slice(-limit);
277
+ }
278
+ /**
279
+ * Get protected paths configuration
280
+ */
281
+ getProtectionConfig() {
282
+ return {
283
+ protectedPatterns: PROTECTED_PATTERNS,
284
+ forbiddenPaths: FORBIDDEN_PATHS,
285
+ criticalSystemFiles: CRITICAL_SYSTEM_FILES,
286
+ codeFreezeMode: this.codeFreezeMode,
287
+ };
288
+ }
289
+ /**
290
+ * Generate protection report
291
+ */
292
+ getProtectionReport() {
293
+ const recentViolations = [];
294
+ // Extract violations from recent operations
295
+ for (const _op of this.operationLog.slice(-20)) {
296
+ // This would need to store violations in FileOperation
297
+ // For now, return empty
298
+ }
299
+ return {
300
+ codeFreezeEnabled: this.codeFreezeMode,
301
+ totalOperationsLogged: this.operationLog.length,
302
+ recentViolations,
303
+ protectedItemsCount: PROTECTED_PATTERNS.length + FORBIDDEN_PATHS.length,
304
+ };
305
+ }
306
+ }
307
+ // Export singleton instance
308
+ export const fileGuardian = new FileGuardian();
309
+ //# sourceMappingURL=file-guardian.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-guardian.js","sourceRoot":"","sources":["../../../src/developer/guards/file-guardian.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ import { ContextEntry, ContextCategoryType, PreserveContextResponse } from '../../types/context.js';
2
+ interface ContextStore {
3
+ version: string;
4
+ entries: ContextEntry[];
5
+ metadata: {
6
+ created_at: string;
7
+ last_updated: string;
8
+ };
9
+ }
10
+ export declare class ContextManager {
11
+ private store;
12
+ private isInitialized;
13
+ constructor();
14
+ /**
15
+ * Initialize the context store from disk
16
+ */
17
+ initialize(): Promise<void>;
18
+ /**
19
+ * Store a context entry
20
+ */
21
+ storeEntry(category: ContextCategoryType, content: string): Promise<PreserveContextResponse>;
22
+ /**
23
+ * Retrieve context entries by category or search term
24
+ */
25
+ retrieve(category?: ContextCategoryType, searchTerm?: string): Promise<PreserveContextResponse>;
26
+ /**
27
+ * Check context window status and provide warnings if needed
28
+ */
29
+ check(includeMetadata?: boolean): Promise<PreserveContextResponse>;
30
+ /**
31
+ * Get metadata about the context store
32
+ */
33
+ private getMetadata;
34
+ /**
35
+ * Clear old or unused context entries (cleanup)
36
+ */
37
+ cleanup(daysOld?: number): Promise<PreserveContextResponse>;
38
+ /**
39
+ * Export all context for backup
40
+ */
41
+ export(): Promise<ContextStore>;
42
+ /**
43
+ * Import context from backup
44
+ */
45
+ import(store: ContextStore): Promise<void>;
46
+ /**
47
+ * Create default context store
48
+ */
49
+ private createDefaultStore;
50
+ /**
51
+ * Save store to disk
52
+ */
53
+ private save;
54
+ /**
55
+ * Ensure manager is initialized
56
+ */
57
+ private ensureInitialized;
58
+ }
59
+ export declare function getContextManager(): Promise<ContextManager>;
60
+ export {};
61
+ //# sourceMappingURL=context-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-manager.d.ts","sourceRoot":"","sources":["../../../src/developer/managers/context-manager.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,YAAY,EACZ,mBAAmB,EAEnB,uBAAuB,EACxB,MAAM,wBAAwB,CAAC;AAMhC,UAAU,YAAY;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,QAAQ,EAAE;QACR,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,aAAa,CAAS;;IAa9B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA0BjC;;OAEG;IACG,UAAU,CACd,QAAQ,EAAE,mBAAmB,EAC7B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,uBAAuB,CAAC;IA+BnC;;OAEG;IACG,QAAQ,CACZ,QAAQ,CAAC,EAAE,mBAAmB,EAC9B,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,uBAAuB,CAAC;IAmDnC;;OAEG;IACG,KAAK,CAAC,eAAe,GAAE,OAAe,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAmC/E;;OAEG;IACH,OAAO,CAAC,WAAW;IA6BnB;;OAEG;IACG,OAAO,CAAC,OAAO,GAAE,MAAW,GAAG,OAAO,CAAC,uBAAuB,CAAC;IA8BrE;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC;IAKrC;;OAEG;IACG,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAYhD;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAsC1B;;OAEG;IACH,OAAO,CAAC,IAAI;IAaZ;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAO1B;AAKD,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC,CAMjE"}