fivocell 1.0.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 (249) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/CONTRIBUTING.md +60 -0
  3. package/LICENSE +98 -0
  4. package/README.md +267 -0
  5. package/bin/cell.js +2 -0
  6. package/dist/cli.d.ts +3 -0
  7. package/dist/cli.d.ts.map +1 -0
  8. package/dist/cli.js +1131 -0
  9. package/dist/cli.js.map +1 -0
  10. package/dist/core/ab-test-framework.d.ts +33 -0
  11. package/dist/core/ab-test-framework.d.ts.map +1 -0
  12. package/dist/core/ab-test-framework.js +93 -0
  13. package/dist/core/ab-test-framework.js.map +1 -0
  14. package/dist/core/ast-extractor.d.ts +10 -0
  15. package/dist/core/ast-extractor.d.ts.map +1 -0
  16. package/dist/core/ast-extractor.js +111 -0
  17. package/dist/core/ast-extractor.js.map +1 -0
  18. package/dist/core/build-failure-predictor.d.ts +25 -0
  19. package/dist/core/build-failure-predictor.d.ts.map +1 -0
  20. package/dist/core/build-failure-predictor.js +124 -0
  21. package/dist/core/build-failure-predictor.js.map +1 -0
  22. package/dist/core/cell-pro.d.ts +28 -0
  23. package/dist/core/cell-pro.d.ts.map +1 -0
  24. package/dist/core/cell-pro.js +70 -0
  25. package/dist/core/cell-pro.js.map +1 -0
  26. package/dist/core/circular-dependency-detector.d.ts +22 -0
  27. package/dist/core/circular-dependency-detector.d.ts.map +1 -0
  28. package/dist/core/circular-dependency-detector.js +95 -0
  29. package/dist/core/circular-dependency-detector.js.map +1 -0
  30. package/dist/core/cloud-client.d.ts +40 -0
  31. package/dist/core/cloud-client.d.ts.map +1 -0
  32. package/dist/core/cloud-client.js +126 -0
  33. package/dist/core/cloud-client.js.map +1 -0
  34. package/dist/core/community-full.d.ts +38 -0
  35. package/dist/core/community-full.d.ts.map +1 -0
  36. package/dist/core/community-full.js +125 -0
  37. package/dist/core/community-full.js.map +1 -0
  38. package/dist/core/community-live.d.ts +31 -0
  39. package/dist/core/community-live.d.ts.map +1 -0
  40. package/dist/core/community-live.js +187 -0
  41. package/dist/core/community-live.js.map +1 -0
  42. package/dist/core/community-prior.d.ts +25 -0
  43. package/dist/core/community-prior.d.ts.map +1 -0
  44. package/dist/core/community-prior.js +181 -0
  45. package/dist/core/community-prior.js.map +1 -0
  46. package/dist/core/complexity-analyzer.d.ts +28 -0
  47. package/dist/core/complexity-analyzer.d.ts.map +1 -0
  48. package/dist/core/complexity-analyzer.js +110 -0
  49. package/dist/core/complexity-analyzer.js.map +1 -0
  50. package/dist/core/confidence-engine.d.ts +16 -0
  51. package/dist/core/confidence-engine.d.ts.map +1 -0
  52. package/dist/core/confidence-engine.js +155 -0
  53. package/dist/core/confidence-engine.js.map +1 -0
  54. package/dist/core/config-attribution.d.ts +30 -0
  55. package/dist/core/config-attribution.d.ts.map +1 -0
  56. package/dist/core/config-attribution.js +288 -0
  57. package/dist/core/config-attribution.js.map +1 -0
  58. package/dist/core/conflict-detector.d.ts +43 -0
  59. package/dist/core/conflict-detector.d.ts.map +1 -0
  60. package/dist/core/conflict-detector.js +205 -0
  61. package/dist/core/conflict-detector.js.map +1 -0
  62. package/dist/core/context-restore.d.ts +25 -0
  63. package/dist/core/context-restore.d.ts.map +1 -0
  64. package/dist/core/context-restore.js +129 -0
  65. package/dist/core/context-restore.js.map +1 -0
  66. package/dist/core/cross-domain-projections.d.ts +19 -0
  67. package/dist/core/cross-domain-projections.d.ts.map +1 -0
  68. package/dist/core/cross-domain-projections.js +69 -0
  69. package/dist/core/cross-domain-projections.js.map +1 -0
  70. package/dist/core/cross-language-mappings.d.ts +15 -0
  71. package/dist/core/cross-language-mappings.d.ts.map +1 -0
  72. package/dist/core/cross-language-mappings.js +202 -0
  73. package/dist/core/cross-language-mappings.js.map +1 -0
  74. package/dist/core/cross-project-sync.d.ts +24 -0
  75. package/dist/core/cross-project-sync.d.ts.map +1 -0
  76. package/dist/core/cross-project-sync.js +132 -0
  77. package/dist/core/cross-project-sync.js.map +1 -0
  78. package/dist/core/dead-code-detector.d.ts +20 -0
  79. package/dist/core/dead-code-detector.d.ts.map +1 -0
  80. package/dist/core/dead-code-detector.js +106 -0
  81. package/dist/core/dead-code-detector.js.map +1 -0
  82. package/dist/core/decay-engine.d.ts +14 -0
  83. package/dist/core/decay-engine.d.ts.map +1 -0
  84. package/dist/core/decay-engine.js +41 -0
  85. package/dist/core/decay-engine.js.map +1 -0
  86. package/dist/core/dependency-health-checker.d.ts +23 -0
  87. package/dist/core/dependency-health-checker.d.ts.map +1 -0
  88. package/dist/core/dependency-health-checker.js +94 -0
  89. package/dist/core/dependency-health-checker.js.map +1 -0
  90. package/dist/core/duplication-detector.d.ts +29 -0
  91. package/dist/core/duplication-detector.d.ts.map +1 -0
  92. package/dist/core/duplication-detector.js +115 -0
  93. package/dist/core/duplication-detector.js.map +1 -0
  94. package/dist/core/enterprise-features.d.ts +32 -0
  95. package/dist/core/enterprise-features.d.ts.map +1 -0
  96. package/dist/core/enterprise-features.js +87 -0
  97. package/dist/core/enterprise-features.js.map +1 -0
  98. package/dist/core/enterprise.d.ts +27 -0
  99. package/dist/core/enterprise.d.ts.map +1 -0
  100. package/dist/core/enterprise.js +41 -0
  101. package/dist/core/enterprise.js.map +1 -0
  102. package/dist/core/error-predictor.d.ts +16 -0
  103. package/dist/core/error-predictor.d.ts.map +1 -0
  104. package/dist/core/error-predictor.js +123 -0
  105. package/dist/core/error-predictor.js.map +1 -0
  106. package/dist/core/extraction-cascade.d.ts +18 -0
  107. package/dist/core/extraction-cascade.d.ts.map +1 -0
  108. package/dist/core/extraction-cascade.js +48 -0
  109. package/dist/core/extraction-cascade.js.map +1 -0
  110. package/dist/core/git-branch-pregenerator.d.ts +23 -0
  111. package/dist/core/git-branch-pregenerator.d.ts.map +1 -0
  112. package/dist/core/git-branch-pregenerator.js +100 -0
  113. package/dist/core/git-branch-pregenerator.js.map +1 -0
  114. package/dist/core/handoff-detector.d.ts +24 -0
  115. package/dist/core/handoff-detector.d.ts.map +1 -0
  116. package/dist/core/handoff-detector.js +116 -0
  117. package/dist/core/handoff-detector.js.map +1 -0
  118. package/dist/core/identity-resolver.d.ts +7 -0
  119. package/dist/core/identity-resolver.d.ts.map +1 -0
  120. package/dist/core/identity-resolver.js +82 -0
  121. package/dist/core/identity-resolver.js.map +1 -0
  122. package/dist/core/interruption-recovery.d.ts +26 -0
  123. package/dist/core/interruption-recovery.d.ts.map +1 -0
  124. package/dist/core/interruption-recovery.js +135 -0
  125. package/dist/core/interruption-recovery.js.map +1 -0
  126. package/dist/core/knowledge-silo-detector.d.ts +20 -0
  127. package/dist/core/knowledge-silo-detector.d.ts.map +1 -0
  128. package/dist/core/knowledge-silo-detector.js +117 -0
  129. package/dist/core/knowledge-silo-detector.js.map +1 -0
  130. package/dist/core/language-switch-assistant.d.ts +18 -0
  131. package/dist/core/language-switch-assistant.d.ts.map +1 -0
  132. package/dist/core/language-switch-assistant.js +98 -0
  133. package/dist/core/language-switch-assistant.js.map +1 -0
  134. package/dist/core/merge-conflict-predictor.d.ts +18 -0
  135. package/dist/core/merge-conflict-predictor.d.ts.map +1 -0
  136. package/dist/core/merge-conflict-predictor.js +98 -0
  137. package/dist/core/merge-conflict-predictor.js.map +1 -0
  138. package/dist/core/model-intelligence.d.ts +24 -0
  139. package/dist/core/model-intelligence.d.ts.map +1 -0
  140. package/dist/core/model-intelligence.js +73 -0
  141. package/dist/core/model-intelligence.js.map +1 -0
  142. package/dist/core/next-action-predictor.d.ts +26 -0
  143. package/dist/core/next-action-predictor.d.ts.map +1 -0
  144. package/dist/core/next-action-predictor.js +136 -0
  145. package/dist/core/next-action-predictor.js.map +1 -0
  146. package/dist/core/offline-queue.d.ts +40 -0
  147. package/dist/core/offline-queue.d.ts.map +1 -0
  148. package/dist/core/offline-queue.js +193 -0
  149. package/dist/core/offline-queue.js.map +1 -0
  150. package/dist/core/pattern-store.d.ts +27 -0
  151. package/dist/core/pattern-store.d.ts.map +1 -0
  152. package/dist/core/pattern-store.js +233 -0
  153. package/dist/core/pattern-store.js.map +1 -0
  154. package/dist/core/performance-predictor.d.ts +16 -0
  155. package/dist/core/performance-predictor.d.ts.map +1 -0
  156. package/dist/core/performance-predictor.js +111 -0
  157. package/dist/core/performance-predictor.js.map +1 -0
  158. package/dist/core/platt-calibration.d.ts +18 -0
  159. package/dist/core/platt-calibration.d.ts.map +1 -0
  160. package/dist/core/platt-calibration.js +89 -0
  161. package/dist/core/platt-calibration.js.map +1 -0
  162. package/dist/core/pr-review-assistant.d.ts +17 -0
  163. package/dist/core/pr-review-assistant.d.ts.map +1 -0
  164. package/dist/core/pr-review-assistant.js +85 -0
  165. package/dist/core/pr-review-assistant.js.map +1 -0
  166. package/dist/core/prompt-conditioner.d.ts +10 -0
  167. package/dist/core/prompt-conditioner.d.ts.map +1 -0
  168. package/dist/core/prompt-conditioner.js +54 -0
  169. package/dist/core/prompt-conditioner.js.map +1 -0
  170. package/dist/core/realtime-guardian.d.ts +19 -0
  171. package/dist/core/realtime-guardian.d.ts.map +1 -0
  172. package/dist/core/realtime-guardian.js +64 -0
  173. package/dist/core/realtime-guardian.js.map +1 -0
  174. package/dist/core/regex-extractor.d.ts +10 -0
  175. package/dist/core/regex-extractor.d.ts.map +1 -0
  176. package/dist/core/regex-extractor.js +141 -0
  177. package/dist/core/regex-extractor.js.map +1 -0
  178. package/dist/core/scale-tester.d.ts +20 -0
  179. package/dist/core/scale-tester.d.ts.map +1 -0
  180. package/dist/core/scale-tester.js +79 -0
  181. package/dist/core/scale-tester.js.map +1 -0
  182. package/dist/core/security-predictor.d.ts +15 -0
  183. package/dist/core/security-predictor.d.ts.map +1 -0
  184. package/dist/core/security-predictor.js +91 -0
  185. package/dist/core/security-predictor.js.map +1 -0
  186. package/dist/core/session-recovery.d.ts +19 -0
  187. package/dist/core/session-recovery.d.ts.map +1 -0
  188. package/dist/core/session-recovery.js +138 -0
  189. package/dist/core/session-recovery.js.map +1 -0
  190. package/dist/core/signal-capture.d.ts +22 -0
  191. package/dist/core/signal-capture.d.ts.map +1 -0
  192. package/dist/core/signal-capture.js +76 -0
  193. package/dist/core/signal-capture.js.map +1 -0
  194. package/dist/core/solution-index.d.ts +33 -0
  195. package/dist/core/solution-index.d.ts.map +1 -0
  196. package/dist/core/solution-index.js +175 -0
  197. package/dist/core/solution-index.js.map +1 -0
  198. package/dist/core/standup-generator.d.ts +17 -0
  199. package/dist/core/standup-generator.d.ts.map +1 -0
  200. package/dist/core/standup-generator.js +84 -0
  201. package/dist/core/standup-generator.js.map +1 -0
  202. package/dist/core/team-composer.d.ts +29 -0
  203. package/dist/core/team-composer.d.ts.map +1 -0
  204. package/dist/core/team-composer.js +150 -0
  205. package/dist/core/team-composer.js.map +1 -0
  206. package/dist/core/test-anticipator.d.ts +17 -0
  207. package/dist/core/test-anticipator.d.ts.map +1 -0
  208. package/dist/core/test-anticipator.js +113 -0
  209. package/dist/core/test-anticipator.js.map +1 -0
  210. package/dist/daemon/lifecycle.d.ts +19 -0
  211. package/dist/daemon/lifecycle.d.ts.map +1 -0
  212. package/dist/daemon/lifecycle.js +199 -0
  213. package/dist/daemon/lifecycle.js.map +1 -0
  214. package/dist/daemon/server.d.ts +81 -0
  215. package/dist/daemon/server.d.ts.map +1 -0
  216. package/dist/daemon/server.js +505 -0
  217. package/dist/daemon/server.js.map +1 -0
  218. package/dist/daemon/watchdog.d.ts +2 -0
  219. package/dist/daemon/watchdog.d.ts.map +1 -0
  220. package/dist/daemon/watchdog.js +93 -0
  221. package/dist/daemon/watchdog.js.map +1 -0
  222. package/dist/daemon/websocket.d.ts +5 -0
  223. package/dist/daemon/websocket.d.ts.map +1 -0
  224. package/dist/daemon/websocket.js +90 -0
  225. package/dist/daemon/websocket.js.map +1 -0
  226. package/dist/index.d.ts +44 -0
  227. package/dist/index.d.ts.map +1 -0
  228. package/dist/index.js +90 -0
  229. package/dist/index.js.map +1 -0
  230. package/dist/types.d.ts +88 -0
  231. package/dist/types.d.ts.map +1 -0
  232. package/dist/types.js +28 -0
  233. package/dist/types.js.map +1 -0
  234. package/extensions/jetbrains/plugin.json +9 -0
  235. package/extensions/shell/copilot-sync.js +59 -0
  236. package/extensions/shell/install.sh +38 -0
  237. package/extensions/shell/watcher.js +113 -0
  238. package/extensions/vscode/.vscodeignore +5 -0
  239. package/extensions/vscode/dist/daemon-client.js +94 -0
  240. package/extensions/vscode/dist/diff-tracker.js +94 -0
  241. package/extensions/vscode/dist/extension.js +100 -0
  242. package/extensions/vscode/dist/status-bar.js +70 -0
  243. package/extensions/vscode/package-lock.json +40 -0
  244. package/extensions/vscode/package.json +27 -0
  245. package/package.json +53 -0
  246. package/packages/mcp-server/dist/server.d.ts +2 -0
  247. package/packages/mcp-server/dist/server.js +213 -0
  248. package/packages/mcp-server/package-lock.json +970 -0
  249. package/packages/mcp-server/package.json +19 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pattern-store.js","sourceRoot":"","sources":["../../src/core/pattern-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export interface PerformancePrediction {
2
+ type: 'n_plus_one' | 'eager_loading' | 'memory_leak' | 'large_bundle';
3
+ line: number;
4
+ severity: 'high' | 'medium' | 'low';
5
+ message: string;
6
+ suggestion: string;
7
+ }
8
+ export declare class PerformancePredictor {
9
+ predict(code: string): PerformancePrediction[];
10
+ private checkNPlusOne;
11
+ private checkEagerLoading;
12
+ private checkMemoryLeak;
13
+ private checkLargeBundle;
14
+ private checkForRelationAccess;
15
+ }
16
+ //# sourceMappingURL=performance-predictor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"performance-predictor.d.ts","sourceRoot":"","sources":["../../src/core/performance-predictor.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,YAAY,GAAG,eAAe,GAAG,aAAa,GAAG,cAAc,CAAC;IACtE,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,EAAE;IAwB9C,OAAO,CAAC,aAAa;IAuBrB,OAAO,CAAC,iBAAiB;IAiBzB,OAAO,CAAC,eAAe;IA8BvB,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,sBAAsB;CAO/B"}
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PerformancePredictor = void 0;
4
+ class PerformancePredictor {
5
+ predict(code) {
6
+ const predictions = [];
7
+ const lines = code.split('\n');
8
+ for (let i = 0; i < lines.length; i++) {
9
+ const line = lines[i];
10
+ const lineNum = i + 1;
11
+ const n1Prediction = this.checkNPlusOne(line, lineNum, lines, i);
12
+ if (n1Prediction)
13
+ predictions.push(n1Prediction);
14
+ const eagerPrediction = this.checkEagerLoading(line, lineNum, lines, i);
15
+ if (eagerPrediction)
16
+ predictions.push(eagerPrediction);
17
+ const memoryPrediction = this.checkMemoryLeak(line, lineNum, lines, i);
18
+ if (memoryPrediction)
19
+ predictions.push(memoryPrediction);
20
+ const bundlePrediction = this.checkLargeBundle(line, lineNum);
21
+ if (bundlePrediction)
22
+ predictions.push(bundlePrediction);
23
+ }
24
+ return predictions;
25
+ }
26
+ checkNPlusOne(line, lineNum, allLines, idx) {
27
+ if (/\.forEach\s*\(/.test(line) || /\.map\s*\(/.test(line)) {
28
+ const bodyStart = idx;
29
+ const bodyEnd = Math.min(allLines.length, idx + 10);
30
+ const bodyLines = allLines.slice(bodyStart, bodyEnd);
31
+ const hasDbCall = bodyLines.some((l) => /\b(find|findOne|findAll|findBy|query|execute)\s*\(/.test(l));
32
+ if (hasDbCall) {
33
+ return {
34
+ type: 'n_plus_one',
35
+ line: lineNum,
36
+ severity: 'high',
37
+ message: 'Potential N+1 query: database call inside loop',
38
+ suggestion: 'Use eager loading or batch query: include: [relation] or findAll({ where: { id: ids } })',
39
+ };
40
+ }
41
+ }
42
+ return null;
43
+ }
44
+ checkEagerLoading(line, lineNum, allLines, idx) {
45
+ if (/\bfindAll?\s*\(\s*\{/.test(line) && !/\binclude\s*:/.test(line)) {
46
+ const contextLines = allLines && idx !== undefined ? allLines.slice(idx, Math.min(allLines.length, idx + 15)) : [line];
47
+ const hasRelationAccess = contextLines.some((l) => this.checkForRelationAccess(l));
48
+ if (hasRelationAccess) {
49
+ return {
50
+ type: 'eager_loading',
51
+ line: lineNum,
52
+ severity: 'medium',
53
+ message: 'Missing eager loading: related data may cause extra queries',
54
+ suggestion: 'Add include: ["relation"] to prevent N+1 queries',
55
+ };
56
+ }
57
+ }
58
+ return null;
59
+ }
60
+ checkMemoryLeak(line, lineNum, allLines, idx) {
61
+ if (/setInterval\s*\(/.test(line)) {
62
+ const contextLines = allLines && idx !== undefined ? allLines.slice(idx, Math.min(allLines.length, idx + 20)) : [line];
63
+ if (!contextLines.some((l) => /clearInterval/.test(l))) {
64
+ return {
65
+ type: 'memory_leak',
66
+ line: lineNum,
67
+ severity: 'high',
68
+ message: 'Potential memory leak: setInterval without clearInterval',
69
+ suggestion: 'Store interval ID and call clearInterval in cleanup/useEffect return',
70
+ };
71
+ }
72
+ }
73
+ if (/addEventListener\s*\(/.test(line)) {
74
+ const contextLines = allLines && idx !== undefined ? allLines.slice(idx, Math.min(allLines.length, idx + 20)) : [line];
75
+ if (!contextLines.some((l) => /removeEventListener/.test(l))) {
76
+ return {
77
+ type: 'memory_leak',
78
+ line: lineNum,
79
+ severity: 'medium',
80
+ message: 'Potential memory leak: addEventListener without removeEventListener',
81
+ suggestion: 'Call removeEventListener in cleanup function',
82
+ };
83
+ }
84
+ }
85
+ return null;
86
+ }
87
+ checkLargeBundle(line, lineNum) {
88
+ if (/import\s+.*from\s+['"](\w+)['"]/.test(line)) {
89
+ const match = line.match(/import\s+\*\s+as\s+(\w+)\s+from/);
90
+ if (match) {
91
+ return {
92
+ type: 'large_bundle',
93
+ line: lineNum,
94
+ severity: 'low',
95
+ message: `Wildcard import of '${match[1]}' may increase bundle size`,
96
+ suggestion: `Import only needed exports: import { specificExport } from '${match[1]}'`,
97
+ };
98
+ }
99
+ }
100
+ return null;
101
+ }
102
+ checkForRelationAccess(line) {
103
+ const relationPatterns = [
104
+ /\b(?:include|through|belongsTo|hasMany|hasOne)\b/,
105
+ /\b(?:user|author|owner|creator|parent|children)\b/,
106
+ ];
107
+ return relationPatterns.some((p) => p.test(line));
108
+ }
109
+ }
110
+ exports.PerformancePredictor = PerformancePredictor;
111
+ //# sourceMappingURL=performance-predictor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"performance-predictor.js","sourceRoot":"","sources":["../../src/core/performance-predictor.ts"],"names":[],"mappings":";;;AAQA,MAAa,oBAAoB;IAC/B,OAAO,CAAC,IAAY;QAClB,MAAM,WAAW,GAA4B,EAAE,CAAC;QAChD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;YAEtB,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YACjE,IAAI,YAAY;gBAAE,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAEjD,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YACxE,IAAI,eAAe;gBAAE,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAEvD,MAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YACvE,IAAI,gBAAgB;gBAAE,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAEzD,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC9D,IAAI,gBAAgB;gBAAE,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,aAAa,CAAC,IAAY,EAAE,OAAe,EAAE,QAAkB,EAAE,GAAW;QAClF,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3D,MAAM,SAAS,GAAG,GAAG,CAAC;YACtB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;YACpD,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAErD,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CACrC,oDAAoD,CAAC,IAAI,CAAC,CAAC,CAAC,CAC7D,CAAC;YAEF,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO;oBACL,IAAI,EAAE,YAAY;oBAClB,IAAI,EAAE,OAAO;oBACb,QAAQ,EAAE,MAAM;oBAChB,OAAO,EAAE,gDAAgD;oBACzD,UAAU,EAAE,0FAA0F;iBACvG,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,iBAAiB,CAAC,IAAY,EAAE,OAAe,EAAE,QAAmB,EAAE,GAAY;QACxF,IAAI,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACrE,MAAM,YAAY,GAAG,QAAQ,IAAI,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACvH,MAAM,iBAAiB,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC;YACnF,IAAI,iBAAiB,EAAE,CAAC;gBACtB,OAAO;oBACL,IAAI,EAAE,eAAe;oBACrB,IAAI,EAAE,OAAO;oBACb,QAAQ,EAAE,QAAQ;oBAClB,OAAO,EAAE,6DAA6D;oBACtE,UAAU,EAAE,kDAAkD;iBAC/D,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,eAAe,CAAC,IAAY,EAAE,OAAe,EAAE,QAAmB,EAAE,GAAY;QACtF,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,MAAM,YAAY,GAAG,QAAQ,IAAI,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACvH,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvD,OAAO;oBACL,IAAI,EAAE,aAAa;oBACnB,IAAI,EAAE,OAAO;oBACb,QAAQ,EAAE,MAAM;oBAChB,OAAO,EAAE,0DAA0D;oBACnE,UAAU,EAAE,sEAAsE;iBACnF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACvC,MAAM,YAAY,GAAG,QAAQ,IAAI,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACvH,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7D,OAAO;oBACL,IAAI,EAAE,aAAa;oBACnB,IAAI,EAAE,OAAO;oBACb,QAAQ,EAAE,QAAQ;oBAClB,OAAO,EAAE,qEAAqE;oBAC9E,UAAU,EAAE,8CAA8C;iBAC3D,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,gBAAgB,CAAC,IAAY,EAAE,OAAe;QACpD,IAAI,iCAAiC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACjD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;YAC5D,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO;oBACL,IAAI,EAAE,cAAc;oBACpB,IAAI,EAAE,OAAO;oBACb,QAAQ,EAAE,KAAK;oBACf,OAAO,EAAE,uBAAuB,KAAK,CAAC,CAAC,CAAC,4BAA4B;oBACpE,UAAU,EAAE,+DAA+D,KAAK,CAAC,CAAC,CAAC,GAAG;iBACvF,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,sBAAsB,CAAC,IAAY;QACzC,MAAM,gBAAgB,GAAG;YACvB,kDAAkD;YAClD,mDAAmD;SACpD,CAAC;QACF,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACpD,CAAC;CACF;AAtHD,oDAsHC"}
@@ -0,0 +1,18 @@
1
+ export declare class PlattCalibration {
2
+ private communityA;
3
+ private communityB;
4
+ private personalA;
5
+ private personalB;
6
+ private predictionCount;
7
+ constructor(communityA?: number, communityB?: number);
8
+ calibrate(rawConfidence: number): number;
9
+ getCalibrationPhase(): string;
10
+ getCalibrationDisplay(): string;
11
+ getDowngradedTier(tier: string): string;
12
+ recordPrediction(rawConfidence: number, wasCorrect: boolean): void;
13
+ getPredictionCount(): number;
14
+ setCommunityParams(a: number, b: number): void;
15
+ private plattScale;
16
+ private updatePersonalParams;
17
+ }
18
+ //# sourceMappingURL=platt-calibration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platt-calibration.d.ts","sourceRoot":"","sources":["../../src/core/platt-calibration.ts"],"names":[],"mappings":"AAAA,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,eAAe,CAAS;gBAEpB,UAAU,GAAE,MAAU,EAAE,UAAU,GAAE,MAAU;IAQ1D,SAAS,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM;IAkBxC,mBAAmB,IAAI,MAAM;IAM7B,qBAAqB,IAAI,MAAM;IAgB/B,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAavC,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,IAAI;IAQlE,kBAAkB,IAAI,MAAM;IAI5B,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAK9C,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,oBAAoB;CAO7B"}
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PlattCalibration = void 0;
4
+ class PlattCalibration {
5
+ communityA;
6
+ communityB;
7
+ personalA;
8
+ personalB;
9
+ predictionCount;
10
+ constructor(communityA = 0, communityB = 1) {
11
+ this.communityA = communityA;
12
+ this.communityB = communityB;
13
+ this.personalA = 0;
14
+ this.personalB = 1;
15
+ this.predictionCount = 0;
16
+ }
17
+ calibrate(rawConfidence) {
18
+ if (this.predictionCount < 100) {
19
+ const calibrated = this.plattScale(rawConfidence, this.communityA, this.communityB);
20
+ return Math.round(calibrated * 1000) / 1000;
21
+ }
22
+ if (this.predictionCount < 1000) {
23
+ const weight = Math.min(1.0, (this.predictionCount - 100) / 900);
24
+ const aBlended = (1 - weight) * this.communityA + weight * this.personalA;
25
+ const bBlended = (1 - weight) * this.communityB + weight * this.personalB;
26
+ const calibrated = this.plattScale(rawConfidence, aBlended, bBlended);
27
+ return Math.round(calibrated * 1000) / 1000;
28
+ }
29
+ const calibrated = this.plattScale(rawConfidence, this.personalA, this.personalB);
30
+ return Math.round(calibrated * 1000) / 1000;
31
+ }
32
+ getCalibrationPhase() {
33
+ if (this.predictionCount < 100)
34
+ return 'early';
35
+ if (this.predictionCount < 1000)
36
+ return 'blending';
37
+ return 'calibrated';
38
+ }
39
+ getCalibrationDisplay() {
40
+ const phase = this.getCalibrationPhase();
41
+ switch (phase) {
42
+ case 'early':
43
+ return '(early estimate, calibrating...)';
44
+ case 'blending':
45
+ const pct = Math.round(((this.predictionCount - 100) / 900) * 100);
46
+ return `(calibrating: ${pct}% complete)`;
47
+ case 'calibrated':
48
+ return '';
49
+ default:
50
+ return '';
51
+ }
52
+ }
53
+ getDowngradedTier(tier) {
54
+ if (this.predictionCount >= 100)
55
+ return tier;
56
+ const downgrade = {
57
+ strong: 'moderate',
58
+ moderate: 'weak',
59
+ weak: 'uncertain',
60
+ uncertain: 'uncertain',
61
+ };
62
+ return downgrade[tier] || tier;
63
+ }
64
+ recordPrediction(rawConfidence, wasCorrect) {
65
+ this.predictionCount++;
66
+ if (this.predictionCount >= 100) {
67
+ this.updatePersonalParams(rawConfidence, wasCorrect);
68
+ }
69
+ }
70
+ getPredictionCount() {
71
+ return this.predictionCount;
72
+ }
73
+ setCommunityParams(a, b) {
74
+ this.communityA = a;
75
+ this.communityB = b;
76
+ }
77
+ plattScale(x, a, b) {
78
+ return 1 / (1 + Math.exp(a * x + b));
79
+ }
80
+ updatePersonalParams(rawConfidence, wasCorrect) {
81
+ const target = wasCorrect ? 1 : 0;
82
+ const lr = 0.01;
83
+ const logit = Math.log(Math.max(rawConfidence, 0.001) / Math.max(1 - rawConfidence, 0.001));
84
+ this.personalA += lr * (target - this.plattScale(rawConfidence, this.personalA, this.personalB)) * logit;
85
+ this.personalB += lr * (target - this.plattScale(rawConfidence, this.personalA, this.personalB));
86
+ }
87
+ }
88
+ exports.PlattCalibration = PlattCalibration;
89
+ //# sourceMappingURL=platt-calibration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platt-calibration.js","sourceRoot":"","sources":["../../src/core/platt-calibration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { Pattern } from '../types';
2
+ export interface PRSummary {
3
+ title: string;
4
+ filesChanged: number;
5
+ linesAdded: number;
6
+ linesRemoved: number;
7
+ patternsDetected: Pattern[];
8
+ potentialBugs: string[];
9
+ patternDeviations: string[];
10
+ }
11
+ export declare class PRReviewAssistant {
12
+ generateSummary(title: string, diff: string, patterns: Pattern[]): PRSummary;
13
+ detectPotentialBugs(diff: string): string[];
14
+ detectPatternDeviations(diff: string, patterns: Pattern[]): string[];
15
+ getReviewChecklist(): string[];
16
+ }
17
+ //# sourceMappingURL=pr-review-assistant.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pr-review-assistant.d.ts","sourceRoot":"","sources":["../../src/core/pr-review-assistant.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,OAAO,EAAE,CAAC;IAC5B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,qBAAa,iBAAiB;IAC5B,eAAe,CACb,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,OAAO,EAAE,GAClB,SAAS;IAyBZ,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IA4B3C,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE;IA0BpE,kBAAkB,IAAI,MAAM,EAAE;CAW/B"}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PRReviewAssistant = void 0;
4
+ class PRReviewAssistant {
5
+ generateSummary(title, diff, patterns) {
6
+ const lines = diff.split('\n');
7
+ const added = lines.filter((l) => l.startsWith('+') && !l.startsWith('+++')).length;
8
+ const removed = lines.filter((l) => l.startsWith('-') && !l.startsWith('---')).length;
9
+ const files = new Set();
10
+ for (const line of lines) {
11
+ const match = line.match(/^\+\+\+\s+b\/(.+)/);
12
+ if (match)
13
+ files.add(match[1]);
14
+ }
15
+ const potentialBugs = this.detectPotentialBugs(diff);
16
+ const patternDeviations = this.detectPatternDeviations(diff, patterns);
17
+ return {
18
+ title,
19
+ filesChanged: files.size,
20
+ linesAdded: added,
21
+ linesRemoved: removed,
22
+ patternsDetected: patterns.filter(p => p.confidence.mean >= 0.5),
23
+ potentialBugs,
24
+ patternDeviations,
25
+ };
26
+ }
27
+ detectPotentialBugs(diff) {
28
+ const bugs = [];
29
+ const lines = diff.split('\n');
30
+ for (const line of lines) {
31
+ if (!line.startsWith('+') || line.startsWith('+++'))
32
+ continue;
33
+ const code = line.substring(1);
34
+ if (/console\.(log|warn|error)/.test(code)) {
35
+ bugs.push(`Debug statement left in: ${code.trim()}`);
36
+ }
37
+ if (/\.only\(/.test(code)) {
38
+ bugs.push(`Test isolation issue: .only() found: ${code.trim()}`);
39
+ }
40
+ if (/TODO|FIXME|HACK/.test(code)) {
41
+ bugs.push(`Unresolved TODO/FIXME: ${code.trim()}`);
42
+ }
43
+ if (/setTimeout\(.*,\s*0\)/.test(code)) {
44
+ bugs.push(`Potential race condition: setTimeout with 0ms: ${code.trim()}`);
45
+ }
46
+ }
47
+ return bugs;
48
+ }
49
+ detectPatternDeviations(diff, patterns) {
50
+ const deviations = [];
51
+ const lines = diff.split('\n');
52
+ for (const line of lines) {
53
+ if (!line.startsWith('+') || line.startsWith('+++'))
54
+ continue;
55
+ const code = line.substring(1);
56
+ for (const pattern of patterns) {
57
+ if (pattern.confidence.mean >= 0.7) {
58
+ if (pattern.category === 'variable_declaration' && /\bvar\s+/.test(code)) {
59
+ deviations.push(`Pattern deviation: uses 'var' but team prefers '${pattern.to}' (${pattern.confidence.mean})`);
60
+ }
61
+ if (pattern.category === 'function_style' && /\bfunction\b/.test(code)) {
62
+ deviations.push(`Pattern deviation: uses 'function' but team prefers '${pattern.to}' (${pattern.confidence.mean})`);
63
+ }
64
+ if (pattern.category === 'equality' && /(?<!=)=(?!=)/.test(code)) {
65
+ deviations.push(`Pattern deviation: uses '==' but team prefers '${pattern.to}' (${pattern.confidence.mean})`);
66
+ }
67
+ }
68
+ }
69
+ }
70
+ return deviations;
71
+ }
72
+ getReviewChecklist() {
73
+ return [
74
+ 'Code follows team patterns and conventions',
75
+ 'Tests cover new functionality',
76
+ 'No debug statements or .only() in tests',
77
+ 'Error handling is present for async operations',
78
+ 'No hardcoded secrets or credentials',
79
+ 'Performance implications considered',
80
+ 'Documentation updated if needed',
81
+ ];
82
+ }
83
+ }
84
+ exports.PRReviewAssistant = PRReviewAssistant;
85
+ //# sourceMappingURL=pr-review-assistant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pr-review-assistant.js","sourceRoot":"","sources":["../../src/core/pr-review-assistant.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { Pattern } from '../types';
2
+ export declare class PromptConditioner {
3
+ private maxTokens;
4
+ constructor(maxTokens?: number);
5
+ conditionPrompt(basePrompt: string, patterns: Pattern[]): string;
6
+ buildTasteContext(patterns: Pattern[]): string;
7
+ getBypassMessage(): string;
8
+ isTasteApplicable(patterns: Pattern[]): boolean;
9
+ }
10
+ //# sourceMappingURL=prompt-conditioner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-conditioner.d.ts","sourceRoot":"","sources":["../../src/core/prompt-conditioner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,SAAS,CAAS;gBAEd,SAAS,GAAE,MAAW;IAIlC,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM;IAahE,iBAAiB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM;IAmC9C,gBAAgB,IAAI,MAAM;IAI1B,iBAAiB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO;CAGhD"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PromptConditioner = void 0;
4
+ class PromptConditioner {
5
+ maxTokens;
6
+ constructor(maxTokens = 50) {
7
+ this.maxTokens = maxTokens;
8
+ }
9
+ conditionPrompt(basePrompt, patterns) {
10
+ if (basePrompt.includes('[TASTE:')) {
11
+ return basePrompt;
12
+ }
13
+ const tasteContext = this.buildTasteContext(patterns);
14
+ if (!tasteContext) {
15
+ return basePrompt;
16
+ }
17
+ return `${tasteContext}\n\n${basePrompt}`;
18
+ }
19
+ buildTasteContext(patterns) {
20
+ const applicablePatterns = patterns.filter((p) => p.confidence.mean >= 0.5);
21
+ if (applicablePatterns.length === 0) {
22
+ return '';
23
+ }
24
+ const sorted = applicablePatterns.sort((a, b) => b.confidence.mean - a.confidence.mean);
25
+ const seen = new Set();
26
+ const entries = [];
27
+ let tokenEstimate = 0;
28
+ for (const pattern of sorted) {
29
+ const entry = `${pattern.description.toLowerCase()}(${pattern.confidence.mean})`;
30
+ const key = `${pattern.category}|${pattern.from}|${pattern.to}`;
31
+ if (seen.has(key))
32
+ continue;
33
+ seen.add(key);
34
+ const entryTokens = Math.ceil(entry.length / 3);
35
+ if (tokenEstimate + entryTokens > this.maxTokens) {
36
+ break;
37
+ }
38
+ entries.push(entry);
39
+ tokenEstimate += entryTokens;
40
+ }
41
+ if (entries.length === 0) {
42
+ return '';
43
+ }
44
+ return `[TASTE: ${entries.join(', ')}]`;
45
+ }
46
+ getBypassMessage() {
47
+ return '[Use my taste: ON] [Skip for this request] [Pause for this session]';
48
+ }
49
+ isTasteApplicable(patterns) {
50
+ return patterns.some((p) => p.confidence.mean >= 0.5);
51
+ }
52
+ }
53
+ exports.PromptConditioner = PromptConditioner;
54
+ //# sourceMappingURL=prompt-conditioner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-conditioner.js","sourceRoot":"","sources":["../../src/core/prompt-conditioner.ts"],"names":[],"mappings":";;;AAEA,MAAa,iBAAiB;IACpB,SAAS,CAAS;IAE1B,YAAY,YAAoB,EAAE;QAChC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,eAAe,CAAC,UAAkB,EAAE,QAAmB;QACrD,IAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACnC,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAEtD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,OAAO,GAAG,YAAY,OAAO,UAAU,EAAE,CAAC;IAC5C,CAAC;IAED,iBAAiB,CAAC,QAAmB;QACnC,MAAM,kBAAkB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC;QAE5E,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAExF,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,IAAI,aAAa,GAAG,CAAC,CAAC;QAEtB,KAAK,MAAM,OAAO,IAAI,MAAM,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC;YACjF,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;YAChE,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAS;YAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAEhD,IAAI,aAAa,GAAG,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjD,MAAM;YACR,CAAC;YAED,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpB,aAAa,IAAI,WAAW,CAAC;QAC/B,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,WAAW,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IAC1C,CAAC;IAED,gBAAgB;QACd,OAAO,qEAAqE,CAAC;IAC/E,CAAC;IAED,iBAAiB,CAAC,QAAmB;QACnC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC;IACxD,CAAC;CACF;AA9DD,8CA8DC"}
@@ -0,0 +1,19 @@
1
+ interface GuardianAlert {
2
+ type: 'critical' | 'warning' | 'info' | 'predictive';
3
+ line: number;
4
+ message: string;
5
+ confidence: number;
6
+ patternId?: string;
7
+ }
8
+ interface GuardianStats {
9
+ totalAlerts: number;
10
+ falsePositives: number;
11
+ fpr: number;
12
+ dismissed: number;
13
+ mode: 'full' | 'critical-only';
14
+ }
15
+ export declare function analyzeLine(code: string, lineNumber: number, communityPrior?: Map<string, number>): GuardianAlert[];
16
+ export declare function recordFeedback(alertMessage: string, wasHelpful: boolean): void;
17
+ export declare function getStats(): GuardianStats;
18
+ export {};
19
+ //# sourceMappingURL=realtime-guardian.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"realtime-guardian.d.ts","sourceRoot":"","sources":["../../src/core/realtime-guardian.ts"],"names":[],"mappings":"AAGA,UAAU,aAAa;IACrB,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,YAAY,CAAC;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,aAAa;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,GAAG,eAAe,CAAC;CAChC;AAYD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,aAAa,EAAE,CAkCnH;AAED,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,IAAI,CAU9E;AAED,wBAAgB,QAAQ,IAAI,aAAa,CAExC"}
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ // Real-Time Guardian — Streaming code analysis via WebSocket
3
+ // Detects: SQL injection, hardcoded secrets, XSS, null refs, build failures
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.analyzeLine = analyzeLine;
6
+ exports.recordFeedback = recordFeedback;
7
+ exports.getStats = getStats;
8
+ let totalAlerts = 0;
9
+ let falsePositives = 0;
10
+ let userDismissed = new Map();
11
+ let mode = 'full';
12
+ const SQL_INJECTION_PATTERN = /(\bselect\b.*\bfrom\b.*\+|execute\s*\(\s*['"]\s*\+|\.query\s*\(\s*['"].*\+)/i;
13
+ const HARDCODED_SECRET = /(api[_-]?key|secret|password|token)\s*[:=]\s*['"][A-Za-z0-9_\-]{8,}['"]/i;
14
+ const NULL_REF_PATTERN = /(\w+)\.(\w+)\s*\(\)(?!.*\?\.)/;
15
+ const XSS_PATTERN = /innerHTML\s*=|dangerouslySetInnerHTML|document\.write\s*\(/i;
16
+ function analyzeLine(code, lineNumber, communityPrior) {
17
+ const alerts = [];
18
+ if (SQL_INJECTION_PATTERN.test(code)) {
19
+ alerts.push({ type: 'critical', line: lineNumber, message: 'Potential SQL injection', confidence: 0.95 });
20
+ }
21
+ if (HARDCODED_SECRET.test(code)) {
22
+ alerts.push({ type: 'critical', line: lineNumber, message: 'Hardcoded secret detected', confidence: 0.92 });
23
+ }
24
+ if (XSS_PATTERN.test(code)) {
25
+ alerts.push({ type: 'critical', line: lineNumber, message: 'Potential XSS vector', confidence: 0.88 });
26
+ }
27
+ if (NULL_REF_PATTERN.test(code) && !code.includes('?.')) {
28
+ alerts.push({ type: 'warning', line: lineNumber, message: 'Potential null reference', confidence: 0.75 });
29
+ }
30
+ if (communityPrior) {
31
+ for (const [patternId, failRate] of communityPrior) {
32
+ if (code.includes(patternId) && failRate > 0.7) {
33
+ alerts.push({ type: 'predictive', line: lineNumber, message: `Pattern caused build failure ${Math.round(failRate * 100)}% of the time`, confidence: failRate, patternId });
34
+ }
35
+ }
36
+ }
37
+ return alerts.filter(a => {
38
+ if (mode === 'critical-only')
39
+ return a.type === 'critical';
40
+ if (a.confidence < 0.85)
41
+ return false;
42
+ const dismissCount = userDismissed.get(a.message) || 0;
43
+ if (dismissCount >= 3)
44
+ return false;
45
+ return true;
46
+ });
47
+ }
48
+ function recordFeedback(alertMessage, wasHelpful) {
49
+ totalAlerts++;
50
+ if (!wasHelpful) {
51
+ falsePositives++;
52
+ const count = (userDismissed.get(alertMessage) || 0) + 1;
53
+ userDismissed.set(alertMessage, count);
54
+ }
55
+ const fpr = totalAlerts > 0 ? falsePositives / totalAlerts : 0;
56
+ if (fpr > 0.10)
57
+ mode = 'critical-only';
58
+ else if (fpr < 0.05 && mode === 'critical-only')
59
+ mode = 'full';
60
+ }
61
+ function getStats() {
62
+ return { totalAlerts, falsePositives, fpr: totalAlerts > 0 ? falsePositives / totalAlerts : 0, dismissed: Array.from(userDismissed.values()).reduce((a, b) => a + b, 0), mode };
63
+ }
64
+ //# sourceMappingURL=realtime-guardian.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"realtime-guardian.js","sourceRoot":"","sources":["../../src/core/realtime-guardian.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { ExtractedPattern } from '../types';
2
+ export declare class RegexExtractor {
3
+ private patterns;
4
+ extract(originalCode: string, editedCode: string): ExtractedPattern[];
5
+ extractFromDiff(originalCode: string, editedCode: string): ExtractedPattern[];
6
+ getPatternCount(): number;
7
+ private countMatches;
8
+ private calculateDelta;
9
+ }
10
+ //# sourceMappingURL=regex-extractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regex-extractor.d.ts","sourceRoot":"","sources":["../../src/core/regex-extractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAgEd;IAEF,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAiCrE,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAkC7E,eAAe,IAAI,MAAM;IAIzB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,cAAc;CAGvB"}