projscan 4.9.2 → 4.10.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 (185) hide show
  1. package/README.md +226 -1350
  2. package/dist/analyzers/securityCheck.js +33 -15
  3. package/dist/analyzers/securityCheck.js.map +1 -1
  4. package/dist/analyzers/supplyChainCheck.js +9 -2
  5. package/dist/analyzers/supplyChainCheck.js.map +1 -1
  6. package/dist/cli/commands/bugHunt.js +3 -1
  7. package/dist/cli/commands/bugHunt.js.map +1 -1
  8. package/dist/cli/commands/ci.js +29 -13
  9. package/dist/cli/commands/ci.js.map +1 -1
  10. package/dist/cli/commands/dogfood.js +2 -0
  11. package/dist/cli/commands/dogfood.js.map +1 -1
  12. package/dist/cli/commands/feedback.js +21 -2
  13. package/dist/cli/commands/feedback.js.map +1 -1
  14. package/dist/cli/commands/init.js +3 -0
  15. package/dist/cli/commands/init.js.map +1 -1
  16. package/dist/cli/commands/route.js +3 -2
  17. package/dist/cli/commands/route.js.map +1 -1
  18. package/dist/core/adoption.js +50 -21
  19. package/dist/core/adoption.js.map +1 -1
  20. package/dist/core/agentBrief.js +2 -1
  21. package/dist/core/agentBrief.js.map +1 -1
  22. package/dist/core/bugHunt.js +51 -22
  23. package/dist/core/bugHunt.js.map +1 -1
  24. package/dist/core/bugHuntHotspotFindings.js +2 -1
  25. package/dist/core/bugHuntHotspotFindings.js.map +1 -1
  26. package/dist/core/ciGate.d.ts +10 -0
  27. package/dist/core/ciGate.js +21 -0
  28. package/dist/core/ciGate.js.map +1 -0
  29. package/dist/core/dogfood.d.ts +1 -0
  30. package/dist/core/dogfood.js +42 -20
  31. package/dist/core/dogfood.js.map +1 -1
  32. package/dist/core/dogfoodDiscovery.d.ts +8 -0
  33. package/dist/core/dogfoodDiscovery.js +119 -0
  34. package/dist/core/dogfoodDiscovery.js.map +1 -0
  35. package/dist/core/feedback.js +73 -5
  36. package/dist/core/feedback.js.map +1 -1
  37. package/dist/core/fileInspectionReport.js +37 -0
  38. package/dist/core/fileInspectionReport.js.map +1 -1
  39. package/dist/core/intentRouterArchitectureKeywordWeights.d.ts +1 -0
  40. package/dist/core/intentRouterArchitectureKeywordWeights.js +69 -0
  41. package/dist/core/intentRouterArchitectureKeywordWeights.js.map +1 -0
  42. package/dist/core/intentRouterCatalog.js +85 -31
  43. package/dist/core/intentRouterCatalog.js.map +1 -1
  44. package/dist/core/intentRouterDependencyKeywordWeights.d.ts +1 -0
  45. package/dist/core/intentRouterDependencyKeywordWeights.js +100 -0
  46. package/dist/core/intentRouterDependencyKeywordWeights.js.map +1 -0
  47. package/dist/core/intentRouterFileImpactKeywordWeights.d.ts +1 -0
  48. package/dist/core/intentRouterFileImpactKeywordWeights.js +92 -0
  49. package/dist/core/intentRouterFileImpactKeywordWeights.js.map +1 -0
  50. package/dist/core/intentRouterKeywordEarlyGuards.js +8 -3
  51. package/dist/core/intentRouterKeywordEarlyGuards.js.map +1 -1
  52. package/dist/core/intentRouterKeywordSearchGuards.js +28 -24
  53. package/dist/core/intentRouterKeywordSearchGuards.js.map +1 -1
  54. package/dist/core/intentRouterKeywordToolGuards.js +43 -0
  55. package/dist/core/intentRouterKeywordToolGuards.js.map +1 -1
  56. package/dist/core/intentRouterKeywordWeights.js +40 -1222
  57. package/dist/core/intentRouterKeywordWeights.js.map +1 -1
  58. package/dist/core/intentRouterOperationalKeywordWeights.d.ts +1 -0
  59. package/dist/core/intentRouterOperationalKeywordWeights.js +203 -0
  60. package/dist/core/intentRouterOperationalKeywordWeights.js.map +1 -0
  61. package/dist/core/intentRouterPlanningSignals.js +4 -1
  62. package/dist/core/intentRouterPlanningSignals.js.map +1 -1
  63. package/dist/core/intentRouterPrDiffKeywords.d.ts +4 -0
  64. package/dist/core/intentRouterPrDiffKeywords.js +64 -0
  65. package/dist/core/intentRouterPrDiffKeywords.js.map +1 -0
  66. package/dist/core/intentRouterPrDiffSignals.js +6 -0
  67. package/dist/core/intentRouterPrDiffSignals.js.map +1 -1
  68. package/dist/core/intentRouterProductImprovementSignals.d.ts +1 -0
  69. package/dist/core/intentRouterProductImprovementSignals.js +48 -0
  70. package/dist/core/intentRouterProductImprovementSignals.js.map +1 -0
  71. package/dist/core/intentRouterRegressionKeywordMatches.js +3 -0
  72. package/dist/core/intentRouterRegressionKeywordMatches.js.map +1 -1
  73. package/dist/core/intentRouterRegressionKeywordWeights.d.ts +1 -0
  74. package/dist/core/intentRouterRegressionKeywordWeights.js +118 -0
  75. package/dist/core/intentRouterRegressionKeywordWeights.js.map +1 -0
  76. package/dist/core/intentRouterReleaseSignals.d.ts +1 -0
  77. package/dist/core/intentRouterReleaseSignals.js +47 -0
  78. package/dist/core/intentRouterReleaseSignals.js.map +1 -1
  79. package/dist/core/intentRouterReviewSignals.d.ts +1 -0
  80. package/dist/core/intentRouterReviewSignals.js +23 -1
  81. package/dist/core/intentRouterReviewSignals.js.map +1 -1
  82. package/dist/core/intentRouterSearchKeywordWeights.d.ts +1 -0
  83. package/dist/core/intentRouterSearchKeywordWeights.js +407 -0
  84. package/dist/core/intentRouterSearchKeywordWeights.js.map +1 -0
  85. package/dist/core/intentRouterSecurityKeywordWeights.d.ts +1 -0
  86. package/dist/core/intentRouterSecurityKeywordWeights.js +50 -0
  87. package/dist/core/intentRouterSecurityKeywordWeights.js.map +1 -0
  88. package/dist/core/intentRouterTrustFeedbackKeywordWeights.d.ts +1 -0
  89. package/dist/core/intentRouterTrustFeedbackKeywordWeights.js +222 -0
  90. package/dist/core/intentRouterTrustFeedbackKeywordWeights.js.map +1 -0
  91. package/dist/core/intentRouterUnderstandSignals.js +1 -0
  92. package/dist/core/intentRouterUnderstandSignals.js.map +1 -1
  93. package/dist/core/intentRouterWorkSignals.js +3 -0
  94. package/dist/core/intentRouterWorkSignals.js.map +1 -1
  95. package/dist/core/intentRouterWorkflowKeywordWeights.d.ts +1 -0
  96. package/dist/core/intentRouterWorkflowKeywordWeights.js +124 -0
  97. package/dist/core/intentRouterWorkflowKeywordWeights.js.map +1 -0
  98. package/dist/core/issueEngine.js +46 -2
  99. package/dist/core/issueEngine.js.map +1 -1
  100. package/dist/core/memory.d.ts +2 -0
  101. package/dist/core/memory.js +33 -1
  102. package/dist/core/memory.js.map +1 -1
  103. package/dist/core/preflightChangedFiles.d.ts +3 -0
  104. package/dist/core/preflightChangedFiles.js +13 -0
  105. package/dist/core/preflightChangedFiles.js.map +1 -1
  106. package/dist/core/preflightEvidence.d.ts +3 -0
  107. package/dist/core/preflightEvidence.js +3 -0
  108. package/dist/core/preflightEvidence.js.map +1 -1
  109. package/dist/core/privacy.d.ts +2 -0
  110. package/dist/core/privacy.js +10 -0
  111. package/dist/core/privacy.js.map +1 -1
  112. package/dist/core/qualityScorecard.js +25 -13
  113. package/dist/core/qualityScorecard.js.map +1 -1
  114. package/dist/core/startEvidence.js +26 -1
  115. package/dist/core/startEvidence.js.map +1 -1
  116. package/dist/core/startFixedRouteCriteria.js +5 -0
  117. package/dist/core/startFixedRouteCriteria.js.map +1 -1
  118. package/dist/core/startInputs.d.ts +3 -0
  119. package/dist/core/startMissionPolicy.d.ts +1 -1
  120. package/dist/core/startMissionPolicy.js +18 -7
  121. package/dist/core/startMissionPolicy.js.map +1 -1
  122. package/dist/core/startMode.js +17 -4
  123. package/dist/core/startMode.js.map +1 -1
  124. package/dist/core/startReportBuilder.js +1 -1
  125. package/dist/core/startReportBuilder.js.map +1 -1
  126. package/dist/core/startReviewGate.js +26 -4
  127. package/dist/core/startReviewGate.js.map +1 -1
  128. package/dist/core/startRouteActions.js +6 -0
  129. package/dist/core/startRouteActions.js.map +1 -1
  130. package/dist/core/understand.js +60 -13
  131. package/dist/core/understand.js.map +1 -1
  132. package/dist/core/workplan.js +99 -17
  133. package/dist/core/workplan.js.map +1 -1
  134. package/dist/projscan-sbom.cdx.json +6 -6
  135. package/dist/reporters/ciIssueDetails.d.ts +10 -0
  136. package/dist/reporters/ciIssueDetails.js +37 -0
  137. package/dist/reporters/ciIssueDetails.js.map +1 -0
  138. package/dist/reporters/consoleCiReporter.d.ts +2 -1
  139. package/dist/reporters/consoleCiReporter.js +26 -9
  140. package/dist/reporters/consoleCiReporter.js.map +1 -1
  141. package/dist/reporters/consoleFileReporter.js +10 -0
  142. package/dist/reporters/consoleFileReporter.js.map +1 -1
  143. package/dist/reporters/consoleHealthReporter.js +3 -1
  144. package/dist/reporters/consoleHealthReporter.js.map +1 -1
  145. package/dist/reporters/jsonReporter.d.ts +2 -1
  146. package/dist/reporters/jsonReporter.js +17 -10
  147. package/dist/reporters/jsonReporter.js.map +1 -1
  148. package/dist/reporters/markdownFileReporter.js +11 -0
  149. package/dist/reporters/markdownFileReporter.js.map +1 -1
  150. package/dist/reporters/markdownHealthReporter.d.ts +2 -1
  151. package/dist/reporters/markdownHealthReporter.js +5 -5
  152. package/dist/reporters/markdownHealthReporter.js.map +1 -1
  153. package/dist/reporters/scoreBreakdownReporter.d.ts +2 -0
  154. package/dist/reporters/scoreBreakdownReporter.js +24 -0
  155. package/dist/reporters/scoreBreakdownReporter.js.map +1 -0
  156. package/dist/tool-manifest.json +2 -2
  157. package/dist/types/analysis.d.ts +21 -1
  158. package/dist/types/bugHunt.d.ts +3 -0
  159. package/dist/types/config.d.ts +9 -0
  160. package/dist/types/dogfood.d.ts +15 -1
  161. package/dist/types/inspection.d.ts +3 -0
  162. package/dist/types/preflight.d.ts +3 -0
  163. package/dist/types/startMissionControl.d.ts +3 -0
  164. package/dist/types/startMissionReview.d.ts +2 -0
  165. package/dist/utils/ciFailOn.d.ts +5 -0
  166. package/dist/utils/ciFailOn.js +12 -0
  167. package/dist/utils/ciFailOn.js.map +1 -0
  168. package/dist/utils/config.js +3 -1
  169. package/dist/utils/config.js.map +1 -1
  170. package/dist/utils/configBasics.d.ts +2 -0
  171. package/dist/utils/configBasics.js +21 -0
  172. package/dist/utils/configBasics.js.map +1 -1
  173. package/dist/utils/configIssueRules.js +64 -0
  174. package/dist/utils/configIssueRules.js.map +1 -1
  175. package/dist/utils/scoreCalculator.js +77 -16
  176. package/dist/utils/scoreCalculator.js.map +1 -1
  177. package/docs/GUIDE.md +36 -6
  178. package/docs/demos/projscan-4-1-demo.html +8 -8
  179. package/docs/demos/projscan-mission-control.tape +2 -2
  180. package/docs/demos/projscan-mission-proof.tape +9 -5
  181. package/docs/projscan-mission-control.gif +0 -0
  182. package/docs/projscan-mission-control.png +0 -0
  183. package/docs/projscan-mission-proof.gif +0 -0
  184. package/docs/projscan-proof-router.png +0 -0
  185. package/package.json +1 -1
@@ -0,0 +1,222 @@
1
+ const PRIVACY_WEIGHT_THREE_KEYWORDS = new Set([
2
+ 'privacy',
3
+ 'trust',
4
+ 'boundary',
5
+ 'env',
6
+ 'upload',
7
+ 'telemetry',
8
+ 'network',
9
+ 'offline',
10
+ 'leave',
11
+ 'machine',
12
+ ]);
13
+ const PRIVACY_WEIGHT_TWO_KEYWORDS = new Set([
14
+ 'read',
15
+ 'code',
16
+ 'source',
17
+ 'values',
18
+ 'contact',
19
+ 'contacted',
20
+ 'write',
21
+ 'writes',
22
+ 'projscan',
23
+ ]);
24
+ const UNDERSTAND_WEIGHT_TWO_KEYWORDS = new Set([
25
+ 'read',
26
+ 'summarize',
27
+ 'summary',
28
+ 'contract',
29
+ 'contracts',
30
+ 'api',
31
+ 'apis',
32
+ 'deprecate',
33
+ 'deprecates',
34
+ 'deprecated',
35
+ 'deprecation',
36
+ 'compatibility',
37
+ 'compatible',
38
+ 'architecture',
39
+ 'repo',
40
+ 'codebase',
41
+ 'service',
42
+ 'services',
43
+ 'main',
44
+ 'entrypoint',
45
+ 'entrypoints',
46
+ 'entry',
47
+ 'point',
48
+ 'important',
49
+ 'look',
50
+ 'first',
51
+ 'tour',
52
+ 'walk',
53
+ 'through',
54
+ 'new',
55
+ 'onboard',
56
+ 'onboarding',
57
+ 'run',
58
+ 'runs',
59
+ 'start',
60
+ 'app',
61
+ 'command',
62
+ 'commands',
63
+ 'dev',
64
+ 'server',
65
+ 'local',
66
+ 'locally',
67
+ 'docker',
68
+ 'compose',
69
+ 'npm',
70
+ 'script',
71
+ 'scripts',
72
+ 'test',
73
+ 'tests',
74
+ 'e2e',
75
+ 'unit',
76
+ 'integration',
77
+ 'storybook',
78
+ 'cypress',
79
+ 'playwright',
80
+ 'eslint',
81
+ 'prettier',
82
+ 'format',
83
+ 'lint',
84
+ 'typecheck',
85
+ 'typechecking',
86
+ 'verify',
87
+ 'verification',
88
+ 'proof',
89
+ 'prove',
90
+ 'checks',
91
+ 'environment',
92
+ 'environments',
93
+ 'variable',
94
+ 'variables',
95
+ 'missing',
96
+ 'required',
97
+ 'feature',
98
+ 'endpoint',
99
+ 'button',
100
+ 'put',
101
+ 'need',
102
+ 'change',
103
+ 'files',
104
+ 'add',
105
+ 'implement',
106
+ 'build',
107
+ 'create',
108
+ 'wire',
109
+ 'route',
110
+ 'component',
111
+ 'page',
112
+ 'screen',
113
+ 'view',
114
+ 'webhook',
115
+ 'auth',
116
+ 'login',
117
+ 'support',
118
+ 'checkout',
119
+ 'search',
120
+ 'doc',
121
+ 'docs',
122
+ 'document',
123
+ 'documentation',
124
+ 'readme',
125
+ 'examples',
126
+ 'example',
127
+ 'migration',
128
+ 'migrations',
129
+ 'migrate',
130
+ 'migrates',
131
+ 'database',
132
+ 'db',
133
+ 'schema',
134
+ 'table',
135
+ 'column',
136
+ 'seed',
137
+ 'seeds',
138
+ 'reset',
139
+ 'resets',
140
+ 'guide',
141
+ 'update',
142
+ 'updating',
143
+ ]);
144
+ const FEEDBACK_WEIGHT_THREE_KEYWORDS = new Set([
145
+ 'feedback',
146
+ 'reviewer',
147
+ 'reviewers',
148
+ 'user',
149
+ 'users',
150
+ 'intake',
151
+ 'allow',
152
+ 'script',
153
+ 'scripts',
154
+ 'warning',
155
+ 'warnings',
156
+ 'tree',
157
+ 'sitter',
158
+ ]);
159
+ const FEEDBACK_WEIGHT_TWO_KEYWORDS = new Set([
160
+ 'false',
161
+ 'positive',
162
+ 'unused',
163
+ 'exports',
164
+ 'alias',
165
+ 'import',
166
+ 'noisy',
167
+ 'noise',
168
+ 'caution',
169
+ 'signal',
170
+ 'doc',
171
+ 'docs',
172
+ 'output',
173
+ 'outputs',
174
+ 'wording',
175
+ 'confusing',
176
+ 'bigger',
177
+ 'demonstrated',
178
+ 'feature',
179
+ 'features',
180
+ 'breadth',
181
+ 'killer',
182
+ 'engineer',
183
+ 'engineers',
184
+ 'trust',
185
+ 'daily',
186
+ 'few',
187
+ 'workflow',
188
+ 'workflows',
189
+ 'overclaim',
190
+ 'overclaims',
191
+ 'wrong',
192
+ 'incorrect',
193
+ 'node',
194
+ 'gyp',
195
+ ]);
196
+ export function trustFeedbackKeywordWeight(tool, keyword) {
197
+ if (tool === 'projscan_privacy_check')
198
+ return privacyKeywordWeight(keyword);
199
+ if (tool === 'projscan_understand')
200
+ return understandKeywordWeight(keyword);
201
+ if (tool === 'projscan_feedback_intake')
202
+ return feedbackKeywordWeight(keyword);
203
+ return undefined;
204
+ }
205
+ function privacyKeywordWeight(keyword) {
206
+ if (PRIVACY_WEIGHT_THREE_KEYWORDS.has(keyword))
207
+ return 3;
208
+ if (PRIVACY_WEIGHT_TWO_KEYWORDS.has(keyword))
209
+ return 2;
210
+ return undefined;
211
+ }
212
+ function understandKeywordWeight(keyword) {
213
+ return UNDERSTAND_WEIGHT_TWO_KEYWORDS.has(keyword) ? 2 : undefined;
214
+ }
215
+ function feedbackKeywordWeight(keyword) {
216
+ if (FEEDBACK_WEIGHT_THREE_KEYWORDS.has(keyword))
217
+ return 3;
218
+ if (FEEDBACK_WEIGHT_TWO_KEYWORDS.has(keyword))
219
+ return 2;
220
+ return undefined;
221
+ }
222
+ //# sourceMappingURL=intentRouterTrustFeedbackKeywordWeights.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intentRouterTrustFeedbackKeywordWeights.js","sourceRoot":"","sources":["../../src/core/intentRouterTrustFeedbackKeywordWeights.ts"],"names":[],"mappings":"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"}
@@ -112,6 +112,7 @@ export function understandKeywordMatches(keyword, tokens) {
112
112
  'screen',
113
113
  'view',
114
114
  'webhook',
115
+ 'auth',
115
116
  'login',
116
117
  'support',
117
118
  'checkout',
@@ -1 +1 @@
1
- {"version":3,"file":"intentRouterUnderstandSignals.js","sourceRoot":"","sources":["../../src/core/intentRouterUnderstandSignals.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"intentRouterUnderstandSignals.js","sourceRoot":"","sources":["../../src/core/intentRouterUnderstandSignals.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { productImprovementContextMatches } from './intentRouterProductImprovementSignals.js';
1
2
  function workplanDoContextMatches(tokens) {
2
3
  return [
3
4
  'next',
@@ -72,6 +73,8 @@ export function bugHuntSpeedContextMatches(tokens) {
72
73
  return (['fix', 'issue', 'issues', 'bug', 'bugs', 'defect', 'broken', 'repair'].some((token) => tokens.has(token)) || bugHuntOpportunityContextMatches(tokens));
73
74
  }
74
75
  export function bugHuntOpportunityContextMatches(tokens) {
76
+ if (productImprovementContextMatches(tokens))
77
+ return true;
75
78
  if ((tokens.has('improve') || tokens.has('improvement')) &&
76
79
  tokens.has('next') &&
77
80
  !protectedImproveNextContextMatches(tokens))
@@ -1 +1 @@
1
- {"version":3,"file":"intentRouterWorkSignals.js","sourceRoot":"","sources":["../../src/core/intentRouterWorkSignals.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"intentRouterWorkSignals.js","sourceRoot":"","sources":["../../src/core/intentRouterWorkSignals.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function workflowKeywordWeight(tool: string, keyword: string): number | undefined;
@@ -0,0 +1,124 @@
1
+ const EVIDENCE_PACK_WEIGHT_ONE_KEYWORDS = new Set(['changed', 'file', 'files']);
2
+ const EVIDENCE_PACK_WEIGHT_TWO_KEYWORDS = new Set([
3
+ 'evidence',
4
+ 'proof',
5
+ 'approval',
6
+ 'approve',
7
+ 'comment',
8
+ 'summarize',
9
+ 'changes',
10
+ 'description',
11
+ 'draft',
12
+ 'say',
13
+ 'checklist',
14
+ 'tell',
15
+ 'team',
16
+ 'change',
17
+ 'share',
18
+ 'reviewer',
19
+ 'reviewers',
20
+ 'summary',
21
+ 'packet',
22
+ 'paste',
23
+ 'who',
24
+ 'review',
25
+ 'ready',
26
+ 'release',
27
+ 'readiness',
28
+ 'check',
29
+ 'publish',
30
+ 'publishing',
31
+ 'open',
32
+ 'opening',
33
+ 'before',
34
+ 'prepare',
35
+ 'owner',
36
+ 'owners',
37
+ 'owns',
38
+ 'routing',
39
+ ]);
40
+ const RELEASE_TRAIN_WEIGHT_TWO_KEYWORDS = new Set([
41
+ 'releasing',
42
+ 'deploy',
43
+ 'deploying',
44
+ 'deployed',
45
+ 'deployment',
46
+ 'build',
47
+ 'next',
48
+ 'roadmap',
49
+ 'plan',
50
+ 'product',
51
+ 'products',
52
+ 'feature',
53
+ 'features',
54
+ 'workstream',
55
+ 'workstreams',
56
+ 'changed',
57
+ 'since',
58
+ 'last',
59
+ 'changelog',
60
+ 'note',
61
+ 'notes',
62
+ 'entry',
63
+ 'summarize',
64
+ 'summary',
65
+ ]);
66
+ const BUG_HUNT_WEIGHT_TWO_KEYWORDS = new Set([
67
+ 'bug',
68
+ 'bugs',
69
+ 'hunt',
70
+ 'defect',
71
+ 'broken',
72
+ 'first',
73
+ 'fastest',
74
+ 'quickest',
75
+ 'quick',
76
+ 'smallest',
77
+ 'small',
78
+ 'low',
79
+ 'lowest',
80
+ 'improve',
81
+ 'improvement',
82
+ 'useful',
83
+ 'easy',
84
+ 'beginner',
85
+ 'starter',
86
+ 'intern',
87
+ 'interns',
88
+ 'task',
89
+ 'tasks',
90
+ 'five',
91
+ 'minutes',
92
+ 'today',
93
+ 'win',
94
+ 'wins',
95
+ ]);
96
+ export function workflowKeywordWeight(tool, keyword) {
97
+ if (tool === 'projscan_evidence_pack')
98
+ return evidencePackKeywordWeight(keyword);
99
+ if (tool === 'projscan_release_train')
100
+ return releaseTrainKeywordWeight(keyword);
101
+ if (tool === 'projscan_bug_hunt')
102
+ return bugHuntKeywordWeight(keyword);
103
+ return undefined;
104
+ }
105
+ function evidencePackKeywordWeight(keyword) {
106
+ if (keyword === 'pr')
107
+ return 0.25;
108
+ if (EVIDENCE_PACK_WEIGHT_ONE_KEYWORDS.has(keyword))
109
+ return 1;
110
+ if (EVIDENCE_PACK_WEIGHT_TWO_KEYWORDS.has(keyword))
111
+ return 2;
112
+ return undefined;
113
+ }
114
+ function releaseTrainKeywordWeight(keyword) {
115
+ return RELEASE_TRAIN_WEIGHT_TWO_KEYWORDS.has(keyword) ? 2 : undefined;
116
+ }
117
+ function bugHuntKeywordWeight(keyword) {
118
+ if (BUG_HUNT_WEIGHT_TWO_KEYWORDS.has(keyword))
119
+ return 2;
120
+ if (['find', 'fix', 'pr'].includes(keyword))
121
+ return 0.25;
122
+ return undefined;
123
+ }
124
+ //# sourceMappingURL=intentRouterWorkflowKeywordWeights.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intentRouterWorkflowKeywordWeights.js","sourceRoot":"","sources":["../../src/core/intentRouterWorkflowKeywordWeights.ts"],"names":[],"mappings":"AAAA,MAAM,iCAAiC,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAEhF,MAAM,iCAAiC,GAAG,IAAI,GAAG,CAAC;IAChD,UAAU;IACV,OAAO;IACP,UAAU;IACV,SAAS;IACT,SAAS;IACT,WAAW;IACX,SAAS;IACT,aAAa;IACb,OAAO;IACP,KAAK;IACL,WAAW;IACX,MAAM;IACN,MAAM;IACN,QAAQ;IACR,OAAO;IACP,UAAU;IACV,WAAW;IACX,SAAS;IACT,QAAQ;IACR,OAAO;IACP,KAAK;IACL,QAAQ;IACR,OAAO;IACP,SAAS;IACT,WAAW;IACX,OAAO;IACP,SAAS;IACT,YAAY;IACZ,MAAM;IACN,SAAS;IACT,QAAQ;IACR,SAAS;IACT,OAAO;IACP,QAAQ;IACR,MAAM;IACN,SAAS;CACV,CAAC,CAAC;AAEH,MAAM,iCAAiC,GAAG,IAAI,GAAG,CAAC;IAChD,WAAW;IACX,QAAQ;IACR,WAAW;IACX,UAAU;IACV,YAAY;IACZ,OAAO;IACP,MAAM;IACN,SAAS;IACT,MAAM;IACN,SAAS;IACT,UAAU;IACV,SAAS;IACT,UAAU;IACV,YAAY;IACZ,aAAa;IACb,SAAS;IACT,OAAO;IACP,MAAM;IACN,WAAW;IACX,MAAM;IACN,OAAO;IACP,OAAO;IACP,WAAW;IACX,SAAS;CACV,CAAC,CAAC;AAEH,MAAM,4BAA4B,GAAG,IAAI,GAAG,CAAC;IAC3C,KAAK;IACL,MAAM;IACN,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,SAAS;IACT,UAAU;IACV,OAAO;IACP,UAAU;IACV,OAAO;IACP,KAAK;IACL,QAAQ;IACR,SAAS;IACT,aAAa;IACb,QAAQ;IACR,MAAM;IACN,UAAU;IACV,SAAS;IACT,QAAQ;IACR,SAAS;IACT,MAAM;IACN,OAAO;IACP,MAAM;IACN,SAAS;IACT,OAAO;IACP,KAAK;IACL,MAAM;CACP,CAAC,CAAC;AAEH,MAAM,UAAU,qBAAqB,CAAC,IAAY,EAAE,OAAe;IACjE,IAAI,IAAI,KAAK,wBAAwB;QAAE,OAAO,yBAAyB,CAAC,OAAO,CAAC,CAAC;IACjF,IAAI,IAAI,KAAK,wBAAwB;QAAE,OAAO,yBAAyB,CAAC,OAAO,CAAC,CAAC;IACjF,IAAI,IAAI,KAAK,mBAAmB;QAAE,OAAO,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACvE,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,yBAAyB,CAAC,OAAe;IAChD,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAClC,IAAI,iCAAiC,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,OAAO,CAAC,CAAC;IAC7D,IAAI,iCAAiC,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,OAAO,CAAC,CAAC;IAC7D,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,yBAAyB,CAAC,OAAe;IAChD,OAAO,iCAAiC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACxE,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAe;IAC3C,IAAI,4BAA4B,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,OAAO,CAAC,CAAC;IACxD,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACzD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1,3 +1,4 @@
1
+ import fs from 'node:fs/promises';
1
2
  import { check as eslintCheck } from '../analyzers/eslintCheck.js';
2
3
  import { check as prettierCheck } from '../analyzers/prettierCheck.js';
3
4
  import { check as testCheck } from '../analyzers/testCheck.js';
@@ -19,7 +20,7 @@ import { buildCodeGraph } from './codeGraph.js';
19
20
  import { computeDataflow } from './dataflow.js';
20
21
  import { buildSemanticGraph } from './semanticGraph.js';
21
22
  import { loadPlugins, runAnalyzerPlugins, pluginsEnabled, } from './plugins.js';
22
- import { loadConfig } from '../utils/config.js';
23
+ import { applyConfigToIssues, loadConfig } from '../utils/config.js';
23
24
  const SCAN_ENV_VALUES_ENV = 'PROJSCAN_SCAN_ENV_VALUES';
24
25
  const checkers = [
25
26
  eslintCheck,
@@ -49,7 +50,11 @@ export async function collectIssues(rootPath, files, options = {}) {
49
50
  ...checkers.map((check) => check(rootPath, files)),
50
51
  securityCheck(rootPath, files, { scanEnvValues }),
51
52
  ]);
52
- const issues = results.flat();
53
+ let issues = results.flat();
54
+ const inlineSuppressions = await loadInlineSuppressions(files, issues);
55
+ if (Object.keys(inlineSuppressions).length > 0) {
56
+ issues = applyConfigToIssues(issues, { inlineSuppressions });
57
+ }
53
58
  // 1.10+ — fold in issues from loaded analyzer plugins. No-op unless
54
59
  // PROJSCAN_PLUGINS_PREVIEW=1 is set; loadPlugins() short-circuits to []
55
60
  // when the env flag is off, so users who haven't opted into the preview
@@ -81,6 +86,45 @@ export async function collectIssues(rootPath, files, options = {}) {
81
86
  await recordRunInMemory(rootPath, issues);
82
87
  return issues;
83
88
  }
89
+ async function loadInlineSuppressions(files, issues) {
90
+ const filesByPath = new Map(files.map((file) => [file.relativePath, file]));
91
+ const issueFiles = new Set(issues.flatMap((issue) => (issue.locations ?? []).map((location) => location.file)));
92
+ const suppressions = {};
93
+ await Promise.all([...issueFiles].map(async (relativePath) => {
94
+ const file = filesByPath.get(relativePath);
95
+ if (!file)
96
+ return;
97
+ const entries = await readInlineSuppressions(file.absolutePath).catch(() => []);
98
+ if (entries.length > 0)
99
+ suppressions[relativePath] = entries;
100
+ }));
101
+ return suppressions;
102
+ }
103
+ async function readInlineSuppressions(filePath) {
104
+ const content = await fs.readFile(filePath, 'utf-8');
105
+ return content.split(/\r?\n/).flatMap((line, index) => inlineSuppressionForLine(line, index + 1));
106
+ }
107
+ function inlineSuppressionForLine(line, lineNumber) {
108
+ const marker = 'projscan-ignore-line';
109
+ const markerIndex = line.indexOf(marker);
110
+ if (markerIndex < 0)
111
+ return [];
112
+ const rest = line.slice(markerIndex + marker.length).trim();
113
+ const [rulesPart, reasonPart] = rest.split(/\s+--\s+/, 2);
114
+ const rules = (rulesPart ?? '')
115
+ .split(/[,\s]+/)
116
+ .map((rule) => rule.trim())
117
+ .filter(Boolean);
118
+ if (rules.length === 0)
119
+ return [];
120
+ return [
121
+ {
122
+ line: lineNumber,
123
+ rules,
124
+ ...(reasonPart?.trim() ? { reason: reasonPart.trim() } : {}),
125
+ },
126
+ ];
127
+ }
84
128
  async function shouldScanEnvValues(rootPath, options) {
85
129
  if (options.scanEnvValues === true || process.env[SCAN_ENV_VALUES_ENV] === '1')
86
130
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"issueEngine.js","sourceRoot":"","sources":["../../src/core/issueEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"issueEngine.js","sourceRoot":"","sources":["../../src/core/issueEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAElC,OAAO,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,KAAK,IAAI,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,KAAK,IAAI,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,KAAK,IAAI,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AACnF,OAAO,EAAE,KAAK,IAAI,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,KAAK,IAAI,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,KAAK,IAAI,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AACvF,OAAO,EAAE,KAAK,IAAI,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,KAAK,IAAI,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAC3F,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,KAAK,IAAI,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,KAAK,IAAI,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,KAAK,IAAI,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AAC/F,OAAO,EAAE,KAAK,IAAI,2BAA2B,EAAE,MAAM,6CAA6C,CAAC;AACnG,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,cAAc,EAAkB,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,cAAc,GAEf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAIrE,MAAM,mBAAmB,GAAG,0BAA0B,CAAC;AASvD,MAAM,QAAQ,GAAc;IAC1B,WAAW;IACX,aAAa;IACb,SAAS;IACT,iBAAiB;IACjB,mBAAmB;IACnB,gBAAgB;IAChB,qBAAqB;IACrB,aAAa;IACb,uEAAuE;IACvE,0EAA0E;IAC1E,UAAU;IACV,wEAAwE;IACxE,qEAAqE;IACrE,uBAAuB;IACvB,uEAAuE;IACvE,uBAAuB;IACvB,eAAe;IACf,iBAAiB;IACjB,yBAAyB;IACzB,2BAA2B;CAC5B,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,QAAgB,EAChB,KAAkB,EAClB,UAAkC,EAAE;IAEpC,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACnE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAChC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAClD,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,CAAC;KAClD,CAAC,CAAC;IACH,IAAI,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAE5B,MAAM,kBAAkB,GAAG,MAAM,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvE,IAAI,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/C,MAAM,GAAG,mBAAmB,CAAC,MAAM,EAAE,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,oEAAoE;IACpE,wEAAwE;IACxE,wEAAwE;IACxE,iBAAiB;IACjB,IAAI,cAAc,EAAE,EAAE,CAAC;QACrB,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAC3C,OAAO,EACP,QAAQ,EACR,KAAK,EACL,2BAA2B,CAAC,QAAQ,EAAE,KAAK,CAAC,CAC7C,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,2CAA2C;IAC3C,MAAM,aAAa,GAA2B,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IAChF,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAE3F,qEAAqE;IACrE,sEAAsE;IACtE,qEAAqE;IACrE,oEAAoE;IACpE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,OAAO;YAAE,KAAK,CAAC,eAAe,GAAG,OAAO,CAAC;IAC/C,CAAC;IAED,qEAAqE;IACrE,oEAAoE;IACpE,sEAAsE;IACtE,4EAA4E;IAC5E,oDAAoD;IACpD,MAAM,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAE1C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,sBAAsB,CACnC,KAAkB,EAClB,MAAe;IAEf,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5E,MAAM,UAAU,GAAG,IAAI,GAAG,CACxB,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CACpF,CAAC;IACF,MAAM,YAAY,GAA4C,EAAE,CAAC;IACjE,MAAM,OAAO,CAAC,GAAG,CACf,CAAC,GAAG,UAAU,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE;QACzC,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAChF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,YAAY,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC;IAC/D,CAAC,CAAC,CACH,CAAC;IACF,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,QAAgB;IACpD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACrD,OAAO,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,wBAAwB,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;AACpG,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAY,EAAE,UAAkB;IAChE,MAAM,MAAM,GAAG,sBAAsB,CAAC;IACtC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,WAAW,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5D,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC;SAC5B,KAAK,CAAC,QAAQ,CAAC;SACf,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,OAAO,CAAC,CAAC;IACnB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAClC,OAAO;QACL;YACE,IAAI,EAAE,UAAU;YAChB,KAAK;YACL,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7D;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,QAAgB,EAChB,OAA+B;IAE/B,IAAI,OAAO,CAAC,aAAa,KAAK,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IAC5F,IAAI,OAAO,CAAC,SAAS,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IAC9C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,EAAoB,EAAE,CAAC,CAAC,CAAC;IAC1F,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;AACpD,CAAC;AAED,SAAS,2BAA2B,CAAC,QAAgB,EAAE,KAAkB;IACvE,IAAI,gBAAgD,CAAC;IACrD,IAAI,oBAA8D,CAAC;IACnE,IAAI,eAAoD,CAAC;IAEzD,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,gBAAgB,KAAK,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACrD,OAAO,gBAAgB,CAAC;IAC1B,CAAC,CAAC;IAEF,OAAO;QACL,aAAa,EAAE,CAAC;QAChB,YAAY;QACZ,gBAAgB,EAAE,GAAG,EAAE;YACrB,oBAAoB,KAAK,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;YACnF,OAAO,oBAAoB,CAAC;QAC9B,CAAC;QACD,WAAW,EAAE,GAAG,EAAE;YAChB,eAAe,KAAK,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAChD,eAAe,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CACnD,CAAC;YACF,OAAO,eAAe,CAAC;QACzB,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,iBAAiB,CAAC,QAAgB,EAAE,MAAe;IAChE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC;QACzF,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACvB,MAAM,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,cAAc;IAChB,CAAC;AACH,CAAC"}
@@ -19,6 +19,7 @@
19
19
  * no agent identity, no machine identifiers.
20
20
  */
21
21
  export declare const MEMORY_SCHEMA_VERSION = 1;
22
+ export declare const MEMORY_DIR = ".projscan-memory";
22
23
  /** Drop rules unseen for this many days. */
23
24
  export declare const STALE_RULE_DAYS = 90;
24
25
  /**
@@ -106,6 +107,7 @@ export declare function loadMemory(rootPath: string): Promise<ProjectMemory>;
106
107
  * swallowed. Mirrors the session module's last-write-wins semantics.
107
108
  */
108
109
  export declare function saveMemory(rootPath: string, memory: ProjectMemory): Promise<void>;
110
+ export declare function ensureProjectMemoryIgnored(rootPath: string): Promise<void>;
109
111
  /**
110
112
  * Record one analyzer run's worth of issues. Called by the issue
111
113
  * engine once per `projscan doctor` / `projscan ci` execution.
@@ -21,7 +21,7 @@ import path from 'node:path';
21
21
  * no agent identity, no machine identifiers.
22
22
  */
23
23
  export const MEMORY_SCHEMA_VERSION = 1;
24
- const MEMORY_DIR = '.projscan-memory';
24
+ export const MEMORY_DIR = '.projscan-memory';
25
25
  const MEMORY_FILENAME = 'memory.json';
26
26
  const MS_PER_DAY = 24 * 60 * 60 * 1000;
27
27
  /** Drop rules unseen for this many days. */
@@ -80,6 +80,7 @@ export async function saveMemory(rootPath, memory) {
80
80
  try {
81
81
  const dir = path.join(rootPath, MEMORY_DIR);
82
82
  await fs.mkdir(dir, { recursive: true });
83
+ await fs.writeFile(path.join(dir, '.gitignore'), '*\n', 'utf-8').catch(() => { });
83
84
  const filePath = memoryFilePath(rootPath);
84
85
  memory.lastUpdatedAt = new Date().toISOString();
85
86
  await fs.writeFile(filePath, JSON.stringify(memory, null, 2), 'utf-8');
@@ -88,6 +89,21 @@ export async function saveMemory(rootPath, memory) {
88
89
  // best-effort
89
90
  }
90
91
  }
92
+ export async function ensureProjectMemoryIgnored(rootPath) {
93
+ const target = path.join(rootPath, '.gitignore');
94
+ let current = '';
95
+ try {
96
+ current = await fs.readFile(target, 'utf-8');
97
+ }
98
+ catch (error) {
99
+ if (!isMissingFileError(error))
100
+ throw error;
101
+ }
102
+ if (gitignoreAlreadyCoversProjectMemory(current))
103
+ return;
104
+ const separator = current.length > 0 && !current.endsWith('\n') ? '\n' : '';
105
+ await fs.writeFile(target, `${current}${separator}${MEMORY_DIR}/\n`, 'utf-8');
106
+ }
91
107
  /**
92
108
  * Record one analyzer run's worth of issues. Called by the issue
93
109
  * engine once per `projscan doctor` / `projscan ci` execution.
@@ -329,6 +345,22 @@ function createFresh() {
329
345
  function memoryFilePath(rootPath) {
330
346
  return path.join(rootPath, MEMORY_DIR, MEMORY_FILENAME);
331
347
  }
348
+ function gitignoreAlreadyCoversProjectMemory(content) {
349
+ return content
350
+ .split(/\r?\n/)
351
+ .map((line) => line.trim())
352
+ .some((line) => !line.startsWith('#') &&
353
+ [
354
+ MEMORY_DIR,
355
+ `${MEMORY_DIR}/`,
356
+ `/${MEMORY_DIR}`,
357
+ `/${MEMORY_DIR}/`,
358
+ `**/${MEMORY_DIR}/**`,
359
+ ].includes(line));
360
+ }
361
+ function isMissingFileError(error) {
362
+ return typeof error === 'object' && error !== null && 'code' in error && error.code === 'ENOENT';
363
+ }
332
364
  function isMemoryShape(value) {
333
365
  if (!value || typeof value !== 'object')
334
366
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/core/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC;AACvC,MAAM,UAAU,GAAG,kBAAkB,CAAC;AACtC,MAAM,eAAe,GAAG,aAAa,CAAC;AACtC,MAAM,UAAU,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEvC,4CAA4C;AAC5C,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,CAAC;AAElC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC;AACvC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAElC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC;AAC/B,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC;AA+D1B;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAgB;IAC/C,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC1C,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,WAAW,EAAE,CAAC;IACvB,CAAC;IACD,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,WAAW,EAAE,CAAC;IACvB,CAAC;IACD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,aAAa,KAAK,qBAAqB,EAAE,CAAC;QAC7E,OAAO,WAAW,EAAE,CAAC;IACvB,CAAC;IACD,gEAAgE;IAChE,kDAAkD;IAClD,IAAI,CAAC,MAAM,CAAC,QAAQ;QAAE,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC;IAC3C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAgB,EAAE,MAAqB;IACtE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC5C,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,CAAC,aAAa,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAChD,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACzE,CAAC;IAAC,MAAM,CAAC;QACP,cAAc;IAChB,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,SAAS,CACvB,MAAqB,EACrB,UAA4B,EAC5B,gBAAkC,EAAE;IAEpC,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACxC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;IACvC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;IAE7C,oEAAoE;IACpE,mDAAmD;IACnD,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,MAAM,gBAAgB,GACpB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,UAAU,CAAC;QAC9E,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,gBAAgB,EAAE,CAAC;YAC9E,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED,8CAA8C;IAC9C,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,UAAU,GAAG,MAAM,CAAC;YAC7B,QAAQ,CAAC,QAAQ,IAAI,CAAC,CAAC;YACvB,QAAQ,CAAC,kBAAkB,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG;gBACrB,MAAM;gBACN,WAAW,EAAE,MAAM;gBACnB,UAAU,EAAE,MAAM;gBAClB,QAAQ,EAAE,CAAC;gBACX,UAAU,EAAE,CAAC;gBACb,kBAAkB,EAAE,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC;aAC9C,CAAC;QACJ,CAAC;IACH,CAAC;IAED,mEAAmE;IACnE,8BAA8B;IAC9B,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,QAAQ;YAAE,QAAQ,CAAC,kBAAkB,GAAG,IAAI,CAAC;IACnD,CAAC;IAED,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;IACtB,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAC3B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,MAAqB;IACnD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,QAAQ,GAAG,gBAAgB,GAAG,UAAU,CAAC;IAC/C,MAAM,GAAG,GAAsB,EAAE,CAAC;IAClC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9C,IAAI,GAAG,CAAC,kBAAkB;YAAE,SAAS;QACrC,IAAI,GAAG,CAAC,UAAU,GAAG,CAAC;YAAE,SAAS;QACjC,IAAI,GAAG,CAAC,QAAQ,GAAG,qBAAqB;YAAE,SAAS;QACnD,MAAM,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAChD,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,QAAQ;YAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjE,CAAC;IACD,qDAAqD;IACrD,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC5C,OAAO,GAAG,CAAC;AACb,CAAC;AAsBD,MAAM,UAAU,qBAAqB,CAAC,MAAqB,EAAE,MAAc;IACzE,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,GAAG;QAAE,OAAO,QAAQ,CAAC;IAC1B,IAAI,GAAG,CAAC,UAAU,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC;IACtC,IAAI,GAAG,CAAC,QAAQ,GAAG,qBAAqB;QAAE,OAAO,QAAQ,CAAC;IAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,gBAAgB,GAAG,UAAU,CAAC;IAC/C,sEAAsE;IACtE,sEAAsE;IACtE,gEAAgE;IAChE,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC3E,OAAO,QAAQ,CAAC;AAClB,CAAC;AA2BD,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AACrC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC;AACjC,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAC;AAElC,MAAM,UAAU,oBAAoB,CAAC,MAAqB,EAAE,MAAc;IACxE,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,GAAG;QAAE,OAAO,QAAQ,CAAC;IAC1B,oEAAoE;IACpE,kEAAkE;IAClE,6DAA6D;IAC7D,oEAAoE;IACpE,IAAI,GAAG,CAAC,kBAAkB;QAAE,OAAO,QAAQ,CAAC;IAC5C,IAAI,GAAG,CAAC,QAAQ,IAAI,kBAAkB,IAAI,GAAG,CAAC,UAAU,KAAK,CAAC;QAAE,OAAO,UAAU,CAAC;IAClF,IAAI,GAAG,CAAC,QAAQ,IAAI,eAAe,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAC;QAC9C,IAAI,OAAO,GAAG,cAAc;YAAE,OAAO,OAAO,CAAC;IAC/C,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,0BAA0B,CAAC,MAAqB,EAAE,MAAc;IAC9E,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,GAAG;QAAE,OAAO,GAAG,CAAC;IACrB,MAAM,KAAK,GAAG,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpD,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,OAAO,CAAC,CAAC;IAC1C,CAAC;IACD,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;QACpB,2DAA2D;QAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,UAAU,CAAC,MAAqB,EAAE,MAAc;IAC9D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5B,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAqB,EACrB,QAA2E;IAE3E,IAAI,CAAC,MAAM,CAAC,QAAQ;QAAE,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC;IAC3C,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACxC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrB,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,UAAU,GAAG,MAAM,CAAC;YAC7B,QAAQ,CAAC,QAAQ,IAAI,CAAC,CAAC;YACvB,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC;YAC3B,QAAQ,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG;gBAC5B,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,WAAW,EAAE,MAAM;gBACnB,UAAU,EAAE,MAAM;gBAClB,QAAQ,EAAE,CAAC;gBACX,MAAM,EAAE,KAAK,CAAC,EAAE;gBAChB,SAAS,EAAE,KAAK,CAAC,KAAK;aACvB,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC;IAC9B,6DAA6D;IAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,eAAe,GAAG,UAAU,CAAC;IACzD,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1D,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,MAAM;YAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACxE,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAqB;IACxD,IAAI,CAAC,MAAM,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAC;IAChC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,KAAK,GAAG,QAAQ,GAAG,UAAU,CAAC;IACpC,MAAM,GAAG,GAAyB,EAAE,CAAC;IACrC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjD,IAAI,GAAG,CAAC,QAAQ,GAAG,aAAa;YAAE,SAAS;QAC3C,MAAM,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAChD,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,KAAK;YAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9D,CAAC;IACD,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC5C,OAAO,GAAG,CAAC;AACb,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,aAAa,CAAC,MAAqB,EAAE,IAAY;IAC/D,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7D,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7B,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAqB;IAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,eAAe,GAAG,UAAU,CAAC;IACzD,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,MAAM;YAAE,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACvE,CAAC;AACH,CAAC;AAED,SAAS,WAAW;IAClB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,OAAO;QACL,aAAa,EAAE,qBAAqB;QACpC,aAAa,EAAE,GAAG;QAClB,KAAK,EAAE,EAAE;QACT,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE,CAAC;KACb,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,QAAgB;IACtC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,CAAC,GAAG,KAAgC,CAAC;IAC3C,OAAO,CACL,OAAO,CAAC,CAAC,aAAa,KAAK,QAAQ;QACnC,OAAO,CAAC,CAAC,aAAa,KAAK,QAAQ;QACnC,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ;QAC/B,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAC5B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/core/memory.ts"],"names":[],"mappings":"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"}