projscan 4.3.1 → 4.4.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 (677) hide show
  1. package/CONTRIBUTING.md +5 -1
  2. package/PRIVACY.md +1 -0
  3. package/README.md +253 -229
  4. package/THIRD-PARTY-NOTICES.md +31 -31
  5. package/dist/analyzers/architectureCheck.js.map +1 -1
  6. package/dist/analyzers/crossPackageImportCheck.js +3 -2
  7. package/dist/analyzers/crossPackageImportCheck.js.map +1 -1
  8. package/dist/analyzers/deadCodeCheck.js +10 -2
  9. package/dist/analyzers/deadCodeCheck.js.map +1 -1
  10. package/dist/analyzers/dependencyRiskCheck.js +1 -5
  11. package/dist/analyzers/dependencyRiskCheck.js.map +1 -1
  12. package/dist/analyzers/eslintCheck.js +3 -1
  13. package/dist/analyzers/eslintCheck.js.map +1 -1
  14. package/dist/analyzers/prettierCheck.js +16 -3
  15. package/dist/analyzers/prettierCheck.js.map +1 -1
  16. package/dist/analyzers/pythonDependencyRiskCheck.js +4 -17
  17. package/dist/analyzers/pythonDependencyRiskCheck.js.map +1 -1
  18. package/dist/analyzers/pythonLinterCheck.js +2 -12
  19. package/dist/analyzers/pythonLinterCheck.js.map +1 -1
  20. package/dist/analyzers/securityCheck.js +26 -9
  21. package/dist/analyzers/securityCheck.js.map +1 -1
  22. package/dist/analyzers/supplyChainCheck.js +6 -2
  23. package/dist/analyzers/supplyChainCheck.js.map +1 -1
  24. package/dist/analyzers/testCheck.js +10 -1
  25. package/dist/analyzers/testCheck.js.map +1 -1
  26. package/dist/analyzers/unusedDependencyCheck.js +8 -8
  27. package/dist/analyzers/unusedDependencyCheck.js.map +1 -1
  28. package/dist/cli/_shared.d.ts +2 -1
  29. package/dist/cli/_shared.js +14 -2
  30. package/dist/cli/_shared.js.map +1 -1
  31. package/dist/cli/commands/agentBrief.js +7 -1
  32. package/dist/cli/commands/agentBrief.js.map +1 -1
  33. package/dist/cli/commands/analyze.js.map +1 -1
  34. package/dist/cli/commands/applyFix.js +1 -1
  35. package/dist/cli/commands/applyFix.js.map +1 -1
  36. package/dist/cli/commands/audit.js +4 -2
  37. package/dist/cli/commands/audit.js.map +1 -1
  38. package/dist/cli/commands/badge.js.map +1 -1
  39. package/dist/cli/commands/bugHunt.js +2 -2
  40. package/dist/cli/commands/bugHunt.js.map +1 -1
  41. package/dist/cli/commands/ci.js.map +1 -1
  42. package/dist/cli/commands/claim.js +3 -3
  43. package/dist/cli/commands/claim.js.map +1 -1
  44. package/dist/cli/commands/collision.js +4 -2
  45. package/dist/cli/commands/collision.js.map +1 -1
  46. package/dist/cli/commands/coordinate.js +4 -2
  47. package/dist/cli/commands/coordinate.js.map +1 -1
  48. package/dist/cli/commands/coupling.js.map +1 -1
  49. package/dist/cli/commands/coverage.js.map +1 -1
  50. package/dist/cli/commands/dataflow.js.map +1 -1
  51. package/dist/cli/commands/dependencies.js +1 -1
  52. package/dist/cli/commands/dependencies.js.map +1 -1
  53. package/dist/cli/commands/diff.js.map +1 -1
  54. package/dist/cli/commands/doctor.js.map +1 -1
  55. package/dist/cli/commands/dogfood.js +30 -5
  56. package/dist/cli/commands/dogfood.js.map +1 -1
  57. package/dist/cli/commands/evidencePack.js.map +1 -1
  58. package/dist/cli/commands/explainIssue.js +1 -1
  59. package/dist/cli/commands/explainIssue.js.map +1 -1
  60. package/dist/cli/commands/feedback.js +19 -5
  61. package/dist/cli/commands/feedback.js.map +1 -1
  62. package/dist/cli/commands/file.js +1 -1
  63. package/dist/cli/commands/file.js.map +1 -1
  64. package/dist/cli/commands/fix.js.map +1 -1
  65. package/dist/cli/commands/fixSuggest.js +12 -4
  66. package/dist/cli/commands/fixSuggest.js.map +1 -1
  67. package/dist/cli/commands/hotspots.js.map +1 -1
  68. package/dist/cli/commands/impact.js +1 -1
  69. package/dist/cli/commands/impact.js.map +1 -1
  70. package/dist/cli/commands/init.js +13 -5
  71. package/dist/cli/commands/init.js.map +1 -1
  72. package/dist/cli/commands/installHook.js +2 -2
  73. package/dist/cli/commands/installHook.js.map +1 -1
  74. package/dist/cli/commands/mcp.js.map +1 -1
  75. package/dist/cli/commands/memory.js +5 -2
  76. package/dist/cli/commands/memory.js.map +1 -1
  77. package/dist/cli/commands/mergeRisk.js +1 -1
  78. package/dist/cli/commands/mergeRisk.js.map +1 -1
  79. package/dist/cli/commands/missionProof.js +13 -12
  80. package/dist/cli/commands/missionProof.js.map +1 -1
  81. package/dist/cli/commands/outdated.js +1 -1
  82. package/dist/cli/commands/outdated.js.map +1 -1
  83. package/dist/cli/commands/plugin.js +10 -6
  84. package/dist/cli/commands/plugin.js.map +1 -1
  85. package/dist/cli/commands/prDiff.js +1 -1
  86. package/dist/cli/commands/prDiff.js.map +1 -1
  87. package/dist/cli/commands/preflight.js +1 -5
  88. package/dist/cli/commands/preflight.js.map +1 -1
  89. package/dist/cli/commands/privacyCheck.js +3 -1
  90. package/dist/cli/commands/privacyCheck.js.map +1 -1
  91. package/dist/cli/commands/qualityScorecard.js.map +1 -1
  92. package/dist/cli/commands/recipes.js.map +1 -1
  93. package/dist/cli/commands/regressionPlan.js.map +1 -1
  94. package/dist/cli/commands/releaseTrain.js.map +1 -1
  95. package/dist/cli/commands/review.js +1 -1
  96. package/dist/cli/commands/review.js.map +1 -1
  97. package/dist/cli/commands/route.js.map +1 -1
  98. package/dist/cli/commands/search.js +5 -2
  99. package/dist/cli/commands/search.js.map +1 -1
  100. package/dist/cli/commands/semanticGraph.js.map +1 -1
  101. package/dist/cli/commands/session.js +2 -2
  102. package/dist/cli/commands/session.js.map +1 -1
  103. package/dist/cli/commands/start.js +3 -1177
  104. package/dist/cli/commands/start.js.map +1 -1
  105. package/dist/cli/commands/startAction.d.ts +36 -0
  106. package/dist/cli/commands/startAction.js +70 -0
  107. package/dist/cli/commands/startAction.js.map +1 -0
  108. package/dist/cli/commands/startConsole.d.ts +7 -0
  109. package/dist/cli/commands/startConsole.js +309 -0
  110. package/dist/cli/commands/startConsole.js.map +1 -0
  111. package/dist/cli/commands/startMissionBundle.d.ts +41 -0
  112. package/dist/cli/commands/startMissionBundle.js +645 -0
  113. package/dist/cli/commands/startMissionBundle.js.map +1 -0
  114. package/dist/cli/commands/startOutput.d.ts +31 -0
  115. package/dist/cli/commands/startOutput.js +232 -0
  116. package/dist/cli/commands/startOutput.js.map +1 -0
  117. package/dist/cli/commands/startShortcuts.d.ts +26 -0
  118. package/dist/cli/commands/startShortcuts.js +117 -0
  119. package/dist/cli/commands/startShortcuts.js.map +1 -0
  120. package/dist/cli/commands/telemetry.js +2 -1
  121. package/dist/cli/commands/telemetry.js.map +1 -1
  122. package/dist/cli/commands/trial.js +19 -4
  123. package/dist/cli/commands/trial.js.map +1 -1
  124. package/dist/cli/commands/understand.js +3 -1
  125. package/dist/cli/commands/understand.js.map +1 -1
  126. package/dist/cli/commands/upgrade.js.map +1 -1
  127. package/dist/cli/commands/watch.js +1 -1
  128. package/dist/cli/commands/watch.js.map +1 -1
  129. package/dist/cli/commands/workplan.js.map +1 -1
  130. package/dist/cli/commands/workspace.js +1 -1
  131. package/dist/cli/commands/workspace.js.map +1 -1
  132. package/dist/cli/commands/workspaces.js +1 -1
  133. package/dist/cli/commands/workspaces.js.map +1 -1
  134. package/dist/cli/index.js +2 -117
  135. package/dist/cli/index.js.map +1 -1
  136. package/dist/cli/registerCommands.d.ts +4 -0
  137. package/dist/cli/registerCommands.js +125 -0
  138. package/dist/cli/registerCommands.js.map +1 -0
  139. package/dist/core/adoption.d.ts +2 -1
  140. package/dist/core/adoption.js +40 -13
  141. package/dist/core/adoption.js.map +1 -1
  142. package/dist/core/agentBrief.js +19 -6
  143. package/dist/core/agentBrief.js.map +1 -1
  144. package/dist/core/applyFix.js.map +1 -1
  145. package/dist/core/ast.js +30 -19
  146. package/dist/core/ast.js.map +1 -1
  147. package/dist/core/auditRunner.js.map +1 -1
  148. package/dist/core/bugHunt.js +119 -17
  149. package/dist/core/bugHunt.js.map +1 -1
  150. package/dist/core/claims.js +5 -2
  151. package/dist/core/claims.js.map +1 -1
  152. package/dist/core/codeGraph.js +10 -0
  153. package/dist/core/codeGraph.js.map +1 -1
  154. package/dist/core/codeGraphReexports.d.ts +9 -0
  155. package/dist/core/codeGraphReexports.js +59 -0
  156. package/dist/core/codeGraphReexports.js.map +1 -0
  157. package/dist/core/collisionDetector.js +14 -4
  158. package/dist/core/collisionDetector.js.map +1 -1
  159. package/dist/core/coordination.js +4 -6
  160. package/dist/core/coordination.js.map +1 -1
  161. package/dist/core/couplingAnalyzer.d.ts +2 -1
  162. package/dist/core/couplingAnalyzer.js.map +1 -1
  163. package/dist/core/coverageParser.js.map +1 -1
  164. package/dist/core/dataflow.js +11 -2
  165. package/dist/core/dataflow.js.map +1 -1
  166. package/dist/core/dataflowFilters.js +8 -3
  167. package/dist/core/dataflowFilters.js.map +1 -1
  168. package/dist/core/dependencyAnalyzer.js +4 -1
  169. package/dist/core/dependencyAnalyzer.js.map +1 -1
  170. package/dist/core/dogfood.d.ts +1 -1
  171. package/dist/core/dogfood.js +39 -5
  172. package/dist/core/dogfood.js.map +1 -1
  173. package/dist/core/embeddings.js.map +1 -1
  174. package/dist/core/evidenceComment.js +34 -12
  175. package/dist/core/evidenceComment.js.map +1 -1
  176. package/dist/core/explainIssue.js +1 -2
  177. package/dist/core/explainIssue.js.map +1 -1
  178. package/dist/core/feedback.d.ts +1 -1
  179. package/dist/core/feedback.js +15 -4
  180. package/dist/core/feedback.js.map +1 -1
  181. package/dist/core/fileInspector.js +8 -2
  182. package/dist/core/fileInspector.js.map +1 -1
  183. package/dist/core/fixFirst.d.ts +3 -1
  184. package/dist/core/fixFirst.js +17 -4
  185. package/dist/core/fixFirst.js.map +1 -1
  186. package/dist/core/fixSuggest.js +20 -12
  187. package/dist/core/fixSuggest.js.map +1 -1
  188. package/dist/core/frameworkDetector.js +5 -3
  189. package/dist/core/frameworkDetector.js.map +1 -1
  190. package/dist/core/frameworkSources.js +22 -2
  191. package/dist/core/frameworkSources.js.map +1 -1
  192. package/dist/core/graphCorpus.d.ts +1 -1
  193. package/dist/core/graphCorpus.js +9 -1
  194. package/dist/core/graphCorpus.js.map +1 -1
  195. package/dist/core/graphQuery.js.map +1 -1
  196. package/dist/core/hotspotAnalyzer.js +26 -6
  197. package/dist/core/hotspotAnalyzer.js.map +1 -1
  198. package/dist/core/impact.d.ts +1 -1
  199. package/dist/core/impact.js.map +1 -1
  200. package/dist/core/importGraph.js.map +1 -1
  201. package/dist/core/indexCache.js.map +1 -1
  202. package/dist/core/intent.d.ts +1 -1
  203. package/dist/core/intent.js +143 -46
  204. package/dist/core/intent.js.map +1 -1
  205. package/dist/core/intentRouter.js +5467 -445
  206. package/dist/core/intentRouter.js.map +1 -1
  207. package/dist/core/issueEngine.js +1 -1
  208. package/dist/core/issueEngine.js.map +1 -1
  209. package/dist/core/languageDetector.js +1 -9
  210. package/dist/core/languageDetector.js.map +1 -1
  211. package/dist/core/languages/cppAdapter.js +3 -1
  212. package/dist/core/languages/cppAdapter.js.map +1 -1
  213. package/dist/core/languages/cppExports.js +6 -1
  214. package/dist/core/languages/cppExports.js.map +1 -1
  215. package/dist/core/languages/cppFunctions.js +3 -1
  216. package/dist/core/languages/cppFunctions.js.map +1 -1
  217. package/dist/core/languages/csharpAdapter.js.map +1 -1
  218. package/dist/core/languages/csharpFunctions.js +3 -1
  219. package/dist/core/languages/csharpFunctions.js.map +1 -1
  220. package/dist/core/languages/csharpImports.js +2 -1
  221. package/dist/core/languages/csharpImports.js.map +1 -1
  222. package/dist/core/languages/goAdapter.js.map +1 -1
  223. package/dist/core/languages/goExports.js.map +1 -1
  224. package/dist/core/languages/goFunctions.js +9 -3
  225. package/dist/core/languages/goFunctions.js.map +1 -1
  226. package/dist/core/languages/javaAdapter.js +1 -2
  227. package/dist/core/languages/javaAdapter.js.map +1 -1
  228. package/dist/core/languages/javaFunctions.js +6 -2
  229. package/dist/core/languages/javaFunctions.js.map +1 -1
  230. package/dist/core/languages/javascriptAdapter.js +43 -8
  231. package/dist/core/languages/javascriptAdapter.js.map +1 -1
  232. package/dist/core/languages/kotlinAdapter.js +5 -2
  233. package/dist/core/languages/kotlinAdapter.js.map +1 -1
  234. package/dist/core/languages/kotlinFunctions.js +5 -6
  235. package/dist/core/languages/kotlinFunctions.js.map +1 -1
  236. package/dist/core/languages/kotlinImports.js +3 -1
  237. package/dist/core/languages/kotlinImports.js.map +1 -1
  238. package/dist/core/languages/kotlinManifests.js +7 -1
  239. package/dist/core/languages/kotlinManifests.js.map +1 -1
  240. package/dist/core/languages/phpAdapter.js +4 -1
  241. package/dist/core/languages/phpAdapter.js.map +1 -1
  242. package/dist/core/languages/phpExports.js.map +1 -1
  243. package/dist/core/languages/phpFunctions.js +18 -6
  244. package/dist/core/languages/phpFunctions.js.map +1 -1
  245. package/dist/core/languages/phpManifests.js.map +1 -1
  246. package/dist/core/languages/pythonAdapter.js.map +1 -1
  247. package/dist/core/languages/pythonFunctions.js +9 -3
  248. package/dist/core/languages/pythonFunctions.js.map +1 -1
  249. package/dist/core/languages/pythonManifests.js.map +1 -1
  250. package/dist/core/languages/rubyAdapter.js.map +1 -1
  251. package/dist/core/languages/rubyFunctions.js +6 -2
  252. package/dist/core/languages/rubyFunctions.js.map +1 -1
  253. package/dist/core/languages/rustAdapter.js.map +1 -1
  254. package/dist/core/languages/rustFunctions.js +6 -2
  255. package/dist/core/languages/rustFunctions.js.map +1 -1
  256. package/dist/core/languages/swiftAdapter.js +3 -1
  257. package/dist/core/languages/swiftAdapter.js.map +1 -1
  258. package/dist/core/languages/swiftCyclomatic.js.map +1 -1
  259. package/dist/core/languages/swiftFunctions.js +3 -1
  260. package/dist/core/languages/swiftFunctions.js.map +1 -1
  261. package/dist/core/languages/swiftImports.js.map +1 -1
  262. package/dist/core/mergeRisk.js +5 -1
  263. package/dist/core/mergeRisk.js.map +1 -1
  264. package/dist/core/missionOutcome.d.ts +1 -1
  265. package/dist/core/missionOutcome.js +9 -4
  266. package/dist/core/missionOutcome.js.map +1 -1
  267. package/dist/core/missionProof.d.ts +1 -1
  268. package/dist/core/missionProof.js +8 -6
  269. package/dist/core/missionProof.js.map +1 -1
  270. package/dist/core/missionProofBaseline.d.ts +1 -1
  271. package/dist/core/missionProofBaseline.js +8 -2
  272. package/dist/core/missionProofBaseline.js.map +1 -1
  273. package/dist/core/missionProofMarkdown.d.ts +1 -1
  274. package/dist/core/missionProofMarkdown.js +4 -1
  275. package/dist/core/missionProofMarkdown.js.map +1 -1
  276. package/dist/core/missionProofSummary.d.ts +1 -1
  277. package/dist/core/monorepo.d.ts +1 -1
  278. package/dist/core/monorepo.js +4 -2
  279. package/dist/core/monorepo.js.map +1 -1
  280. package/dist/core/onboarding.d.ts +2 -1
  281. package/dist/core/onboarding.js.map +1 -1
  282. package/dist/core/outdatedDetector.js +5 -1
  283. package/dist/core/outdatedDetector.js.map +1 -1
  284. package/dist/core/ownership.js +3 -1
  285. package/dist/core/ownership.js.map +1 -1
  286. package/dist/core/pathClassifiers.js.map +1 -1
  287. package/dist/core/pluginDx.js +2 -1
  288. package/dist/core/pluginDx.js.map +1 -1
  289. package/dist/core/pluginTrust.js +1 -3
  290. package/dist/core/pluginTrust.js.map +1 -1
  291. package/dist/core/plugins.js +5 -5
  292. package/dist/core/plugins.js.map +1 -1
  293. package/dist/core/prDiff.d.ts +1 -2
  294. package/dist/core/prDiff.js +5 -1
  295. package/dist/core/prDiff.js.map +1 -1
  296. package/dist/core/preflight.js +15 -6
  297. package/dist/core/preflight.js.map +1 -1
  298. package/dist/core/privacy.js.map +1 -1
  299. package/dist/core/qualityScorecard.d.ts +1 -1
  300. package/dist/core/qualityScorecard.js +43 -11
  301. package/dist/core/qualityScorecard.js.map +1 -1
  302. package/dist/core/regressionPlan.js +25 -7
  303. package/dist/core/regressionPlan.js.map +1 -1
  304. package/dist/core/releaseEvidence.js +41 -17
  305. package/dist/core/releaseEvidence.js.map +1 -1
  306. package/dist/core/releaseTrain.js +66 -38
  307. package/dist/core/releaseTrain.js.map +1 -1
  308. package/dist/core/repositoryScanner.js +1 -3
  309. package/dist/core/repositoryScanner.js.map +1 -1
  310. package/dist/core/review.d.ts +1 -1
  311. package/dist/core/review.js +72 -10
  312. package/dist/core/review.js.map +1 -1
  313. package/dist/core/reviewDataflow.js +7 -1
  314. package/dist/core/reviewDataflow.js.map +1 -1
  315. package/dist/core/reviewPublicSurface.d.ts +13 -0
  316. package/dist/core/reviewPublicSurface.js +134 -0
  317. package/dist/core/reviewPublicSurface.js.map +1 -0
  318. package/dist/core/roadmapCatalog.js +122 -23
  319. package/dist/core/roadmapCatalog.js.map +1 -1
  320. package/dist/core/searchIndex.js +124 -17
  321. package/dist/core/searchIndex.js.map +1 -1
  322. package/dist/core/semanticGraph.js.map +1 -1
  323. package/dist/core/semanticSearch.js +20 -4
  324. package/dist/core/semanticSearch.js.map +1 -1
  325. package/dist/core/session.js +1 -2
  326. package/dist/core/session.js.map +1 -1
  327. package/dist/core/sessionResources.js +6 -2
  328. package/dist/core/sessionResources.js.map +1 -1
  329. package/dist/core/start.d.ts +3 -9
  330. package/dist/core/start.js +22 -3231
  331. package/dist/core/start.js.map +1 -1
  332. package/dist/core/startAdoptionLoop.d.ts +2 -0
  333. package/dist/core/startAdoptionLoop.js +41 -0
  334. package/dist/core/startAdoptionLoop.js.map +1 -0
  335. package/dist/core/startEvidence.d.ts +5 -0
  336. package/dist/core/startEvidence.js +62 -0
  337. package/dist/core/startEvidence.js.map +1 -0
  338. package/dist/core/startExecutionPlan.d.ts +16 -0
  339. package/dist/core/startExecutionPlan.js +185 -0
  340. package/dist/core/startExecutionPlan.js.map +1 -0
  341. package/dist/core/startHarness.d.ts +3 -0
  342. package/dist/core/startHarness.js +47 -0
  343. package/dist/core/startHarness.js.map +1 -0
  344. package/dist/core/startIntentTargets.d.ts +24 -0
  345. package/dist/core/startIntentTargets.js +1106 -0
  346. package/dist/core/startIntentTargets.js.map +1 -0
  347. package/dist/core/startMissionControl.d.ts +16 -0
  348. package/dist/core/startMissionControl.js +145 -0
  349. package/dist/core/startMissionControl.js.map +1 -0
  350. package/dist/core/startMissionPolicy.d.ts +19 -0
  351. package/dist/core/startMissionPolicy.js +246 -0
  352. package/dist/core/startMissionPolicy.js.map +1 -0
  353. package/dist/core/startMode.d.ts +11 -0
  354. package/dist/core/startMode.js +139 -0
  355. package/dist/core/startMode.js.map +1 -0
  356. package/dist/core/startOptions.d.ts +18 -0
  357. package/dist/core/startOptions.js +29 -0
  358. package/dist/core/startOptions.js.map +1 -0
  359. package/dist/core/startResume.d.ts +7 -0
  360. package/dist/core/startResume.js +468 -0
  361. package/dist/core/startResume.js.map +1 -0
  362. package/dist/core/startReviewGate.d.ts +11 -0
  363. package/dist/core/startReviewGate.js +200 -0
  364. package/dist/core/startReviewGate.js.map +1 -0
  365. package/dist/core/startRouteActions.d.ts +7 -0
  366. package/dist/core/startRouteActions.js +497 -0
  367. package/dist/core/startRouteActions.js.map +1 -0
  368. package/dist/core/startRunbook.d.ts +24 -0
  369. package/dist/core/startRunbook.js +271 -0
  370. package/dist/core/startRunbook.js.map +1 -0
  371. package/dist/core/startSuccessCriteria.d.ts +14 -0
  372. package/dist/core/startSuccessCriteria.js +497 -0
  373. package/dist/core/startSuccessCriteria.js.map +1 -0
  374. package/dist/core/taint.js +12 -3
  375. package/dist/core/taint.js.map +1 -1
  376. package/dist/core/telemetry.js +19 -5
  377. package/dist/core/telemetry.js.map +1 -1
  378. package/dist/core/trial.d.ts +1 -1
  379. package/dist/core/trial.js +15 -6
  380. package/dist/core/trial.js.map +1 -1
  381. package/dist/core/understand.d.ts +1 -1
  382. package/dist/core/understand.js +165 -51
  383. package/dist/core/understand.js.map +1 -1
  384. package/dist/core/upgradePreview.js +1 -1
  385. package/dist/core/upgradePreview.js.map +1 -1
  386. package/dist/core/watcher.js +18 -3
  387. package/dist/core/watcher.js.map +1 -1
  388. package/dist/core/workplan.js +87 -17
  389. package/dist/core/workplan.js.map +1 -1
  390. package/dist/core/workspace.js.map +1 -1
  391. package/dist/index.d.ts +9 -9
  392. package/dist/index.js +7 -7
  393. package/dist/index.js.map +1 -1
  394. package/dist/mcp/pagination.js.map +1 -1
  395. package/dist/mcp/prompts.js +28 -20
  396. package/dist/mcp/prompts.js.map +1 -1
  397. package/dist/mcp/server.js +6 -74
  398. package/dist/mcp/server.js.map +1 -1
  399. package/dist/mcp/serverPayload.d.ts +13 -0
  400. package/dist/mcp/serverPayload.js +61 -0
  401. package/dist/mcp/serverPayload.js.map +1 -0
  402. package/dist/mcp/tokenBudget.js.map +1 -1
  403. package/dist/mcp/tools/_shared.js.map +1 -1
  404. package/dist/mcp/tools/agentBrief.js +7 -1
  405. package/dist/mcp/tools/agentBrief.js.map +1 -1
  406. package/dist/mcp/tools/applyFix.js +1 -1
  407. package/dist/mcp/tools/applyFix.js.map +1 -1
  408. package/dist/mcp/tools/audit.js.map +1 -1
  409. package/dist/mcp/tools/bugHunt.js +2 -2
  410. package/dist/mcp/tools/bugHunt.js.map +1 -1
  411. package/dist/mcp/tools/claim.js +8 -3
  412. package/dist/mcp/tools/claim.js.map +1 -1
  413. package/dist/mcp/tools/collision.js +3 -1
  414. package/dist/mcp/tools/collision.js.map +1 -1
  415. package/dist/mcp/tools/coordinate.js.map +1 -1
  416. package/dist/mcp/tools/coordinateWatch.js +5 -2
  417. package/dist/mcp/tools/coordinateWatch.js.map +1 -1
  418. package/dist/mcp/tools/costSummary.js.map +1 -1
  419. package/dist/mcp/tools/coupling.js.map +1 -1
  420. package/dist/mcp/tools/coverage.js.map +1 -1
  421. package/dist/mcp/tools/dataflow.js.map +1 -1
  422. package/dist/mcp/tools/dependencies.js +4 -1
  423. package/dist/mcp/tools/dependencies.js.map +1 -1
  424. package/dist/mcp/tools/doctor.js.map +1 -1
  425. package/dist/mcp/tools/explainIssue.js +4 -1
  426. package/dist/mcp/tools/explainIssue.js.map +1 -1
  427. package/dist/mcp/tools/fixSuggest.js +5 -2
  428. package/dist/mcp/tools/fixSuggest.js.map +1 -1
  429. package/dist/mcp/tools/hotspots.js +4 -1
  430. package/dist/mcp/tools/hotspots.js.map +1 -1
  431. package/dist/mcp/tools/impact.js +10 -3
  432. package/dist/mcp/tools/impact.js.map +1 -1
  433. package/dist/mcp/tools/mergeRisk.js.map +1 -1
  434. package/dist/mcp/tools/plugin.js +6 -1
  435. package/dist/mcp/tools/plugin.js.map +1 -1
  436. package/dist/mcp/tools/prDiff.js.map +1 -1
  437. package/dist/mcp/tools/preflight.js +1 -5
  438. package/dist/mcp/tools/preflight.js.map +1 -1
  439. package/dist/mcp/tools/review.js.map +1 -1
  440. package/dist/mcp/tools/reviewWatch.d.ts +1 -1
  441. package/dist/mcp/tools/reviewWatch.js +9 -9
  442. package/dist/mcp/tools/reviewWatch.js.map +1 -1
  443. package/dist/mcp/tools/route.js +1 -1
  444. package/dist/mcp/tools/route.js.map +1 -1
  445. package/dist/mcp/tools/search.js.map +1 -1
  446. package/dist/mcp/tools/semanticGraph.js +8 -2
  447. package/dist/mcp/tools/semanticGraph.js.map +1 -1
  448. package/dist/mcp/tools/start.js.map +1 -1
  449. package/dist/mcp/tools/structure.js +7 -1
  450. package/dist/mcp/tools/structure.js.map +1 -1
  451. package/dist/mcp/tools/understand.js.map +1 -1
  452. package/dist/mcp/tools/workspaceGraph.js +10 -1
  453. package/dist/mcp/tools/workspaceGraph.js.map +1 -1
  454. package/dist/mcp/tools.js +3 -1
  455. package/dist/mcp/tools.js.map +1 -1
  456. package/dist/projscan-sbom.cdx.json +2136 -904
  457. package/dist/reporters/consoleAnalysisReporter.d.ts +2 -0
  458. package/dist/reporters/consoleAnalysisReporter.js +89 -0
  459. package/dist/reporters/consoleAnalysisReporter.js.map +1 -0
  460. package/dist/reporters/consoleArchitectureReporter.d.ts +3 -0
  461. package/dist/reporters/consoleArchitectureReporter.js +47 -0
  462. package/dist/reporters/consoleArchitectureReporter.js.map +1 -0
  463. package/dist/reporters/consoleAuditReporter.d.ts +2 -0
  464. package/dist/reporters/consoleAuditReporter.js +46 -0
  465. package/dist/reporters/consoleAuditReporter.js.map +1 -0
  466. package/dist/reporters/consoleCiReporter.d.ts +2 -0
  467. package/dist/reporters/consoleCiReporter.js +27 -0
  468. package/dist/reporters/consoleCiReporter.js.map +1 -0
  469. package/dist/reporters/consoleCouplingReporter.d.ts +2 -0
  470. package/dist/reporters/consoleCouplingReporter.js +53 -0
  471. package/dist/reporters/consoleCouplingReporter.js.map +1 -0
  472. package/dist/reporters/consoleCoverageReporter.d.ts +2 -0
  473. package/dist/reporters/consoleCoverageReporter.js +62 -0
  474. package/dist/reporters/consoleCoverageReporter.js.map +1 -0
  475. package/dist/reporters/consoleDependencyReporter.d.ts +2 -0
  476. package/dist/reporters/consoleDependencyReporter.js +64 -0
  477. package/dist/reporters/consoleDependencyReporter.js.map +1 -0
  478. package/dist/reporters/consoleDiffReporter.d.ts +2 -0
  479. package/dist/reporters/consoleDiffReporter.js +80 -0
  480. package/dist/reporters/consoleDiffReporter.js.map +1 -0
  481. package/dist/reporters/consoleExplanationReporter.d.ts +2 -0
  482. package/dist/reporters/consoleExplanationReporter.js +33 -0
  483. package/dist/reporters/consoleExplanationReporter.js.map +1 -0
  484. package/dist/reporters/consoleFileReporter.d.ts +2 -0
  485. package/dist/reporters/consoleFileReporter.js +133 -0
  486. package/dist/reporters/consoleFileReporter.js.map +1 -0
  487. package/dist/reporters/consoleFixGuidanceReporter.d.ts +8 -0
  488. package/dist/reporters/consoleFixGuidanceReporter.js +135 -0
  489. package/dist/reporters/consoleFixGuidanceReporter.js.map +1 -0
  490. package/dist/reporters/consoleHealthReporter.d.ts +13 -0
  491. package/dist/reporters/consoleHealthReporter.js +111 -0
  492. package/dist/reporters/consoleHealthReporter.js.map +1 -0
  493. package/dist/reporters/consoleHotspotReporter.d.ts +2 -0
  494. package/dist/reporters/consoleHotspotReporter.js +68 -0
  495. package/dist/reporters/consoleHotspotReporter.js.map +1 -0
  496. package/dist/reporters/consoleImpactReporter.d.ts +2 -0
  497. package/dist/reporters/consoleImpactReporter.js +65 -0
  498. package/dist/reporters/consoleImpactReporter.js.map +1 -0
  499. package/dist/reporters/consoleOutdatedReporter.d.ts +2 -0
  500. package/dist/reporters/consoleOutdatedReporter.js +54 -0
  501. package/dist/reporters/consoleOutdatedReporter.js.map +1 -0
  502. package/dist/reporters/consolePrDiffReporter.d.ts +2 -0
  503. package/dist/reporters/consolePrDiffReporter.js +75 -0
  504. package/dist/reporters/consolePrDiffReporter.js.map +1 -0
  505. package/dist/reporters/consoleReporter.d.ts +21 -38
  506. package/dist/reporters/consoleReporter.js +19 -1000
  507. package/dist/reporters/consoleReporter.js.map +1 -1
  508. package/dist/reporters/consoleReviewReporter.d.ts +2 -0
  509. package/dist/reporters/consoleReviewReporter.js +101 -0
  510. package/dist/reporters/consoleReviewReporter.js.map +1 -0
  511. package/dist/reporters/consoleUpgradeReporter.d.ts +2 -0
  512. package/dist/reporters/consoleUpgradeReporter.js +67 -0
  513. package/dist/reporters/consoleUpgradeReporter.js.map +1 -0
  514. package/dist/reporters/consoleWorkspaceReporter.d.ts +2 -0
  515. package/dist/reporters/consoleWorkspaceReporter.js +24 -0
  516. package/dist/reporters/consoleWorkspaceReporter.js.map +1 -0
  517. package/dist/reporters/htmlReporter.d.ts +2 -1
  518. package/dist/reporters/htmlReporter.js +9 -3
  519. package/dist/reporters/htmlReporter.js.map +1 -1
  520. package/dist/reporters/jsonReporter.d.ts +2 -1
  521. package/dist/reporters/jsonReporter.js.map +1 -1
  522. package/dist/reporters/markdownAnalysisReporter.d.ts +2 -0
  523. package/dist/reporters/markdownAnalysisReporter.js +40 -0
  524. package/dist/reporters/markdownAnalysisReporter.js.map +1 -0
  525. package/dist/reporters/markdownAuditReporter.d.ts +2 -0
  526. package/dist/reporters/markdownAuditReporter.js +27 -0
  527. package/dist/reporters/markdownAuditReporter.js.map +1 -0
  528. package/dist/reporters/markdownDependencyReporter.d.ts +2 -0
  529. package/dist/reporters/markdownDependencyReporter.js +33 -0
  530. package/dist/reporters/markdownDependencyReporter.js.map +1 -0
  531. package/dist/reporters/markdownDiffReporter.d.ts +2 -0
  532. package/dist/reporters/markdownDiffReporter.js +65 -0
  533. package/dist/reporters/markdownDiffReporter.js.map +1 -0
  534. package/dist/reporters/markdownFileReporter.d.ts +2 -0
  535. package/dist/reporters/markdownFileReporter.js +92 -0
  536. package/dist/reporters/markdownFileReporter.js.map +1 -0
  537. package/dist/reporters/markdownFixGuidanceReporter.d.ts +8 -0
  538. package/dist/reporters/markdownFixGuidanceReporter.js +95 -0
  539. package/dist/reporters/markdownFixGuidanceReporter.js.map +1 -0
  540. package/dist/reporters/markdownImpactReporter.d.ts +2 -0
  541. package/dist/reporters/markdownImpactReporter.js +52 -0
  542. package/dist/reporters/markdownImpactReporter.js.map +1 -0
  543. package/dist/reporters/markdownReporter.d.ts +10 -16
  544. package/dist/reporters/markdownReporter.js +9 -452
  545. package/dist/reporters/markdownReporter.js.map +1 -1
  546. package/dist/reporters/markdownReviewReporter.d.ts +2 -0
  547. package/dist/reporters/markdownReviewReporter.js +84 -0
  548. package/dist/reporters/markdownReviewReporter.js.map +1 -0
  549. package/dist/reporters/markdownUpgradeReporter.d.ts +2 -0
  550. package/dist/reporters/markdownUpgradeReporter.js +47 -0
  551. package/dist/reporters/markdownUpgradeReporter.js.map +1 -0
  552. package/dist/reporters/sarifReporter.js.map +1 -1
  553. package/dist/tool-manifest.json +4 -4
  554. package/dist/types/agentBrief.d.ts +48 -0
  555. package/dist/types/agentBrief.js +2 -0
  556. package/dist/types/agentBrief.js.map +1 -0
  557. package/dist/types/analysis.d.ts +32 -0
  558. package/dist/types/analysis.js +2 -0
  559. package/dist/types/analysis.js.map +1 -0
  560. package/dist/types/baseline.d.ts +59 -0
  561. package/dist/types/baseline.js +2 -0
  562. package/dist/types/baseline.js.map +1 -0
  563. package/dist/types/bugHunt.d.ts +41 -0
  564. package/dist/types/bugHunt.js +2 -0
  565. package/dist/types/bugHunt.js.map +1 -0
  566. package/dist/types/common.d.ts +34 -0
  567. package/dist/types/common.js +2 -0
  568. package/dist/types/common.js.map +1 -0
  569. package/dist/types/config.d.ts +56 -0
  570. package/dist/types/config.js +2 -0
  571. package/dist/types/config.js.map +1 -0
  572. package/dist/types/coupling.d.ts +40 -0
  573. package/dist/types/coupling.js +2 -0
  574. package/dist/types/coupling.js.map +1 -0
  575. package/dist/types/coverage.d.ts +32 -0
  576. package/dist/types/coverage.js +2 -0
  577. package/dist/types/coverage.js.map +1 -0
  578. package/dist/types/dependencyHealth.d.ts +61 -0
  579. package/dist/types/dependencyHealth.js +2 -0
  580. package/dist/types/dependencyHealth.js.map +1 -0
  581. package/dist/types/dogfood.d.ts +185 -0
  582. package/dist/types/dogfood.js +2 -0
  583. package/dist/types/dogfood.js.map +1 -0
  584. package/dist/types/evidencePack.d.ts +76 -0
  585. package/dist/types/evidencePack.js +2 -0
  586. package/dist/types/evidencePack.js.map +1 -0
  587. package/dist/types/fixes.d.ts +77 -0
  588. package/dist/types/fixes.js +2 -0
  589. package/dist/types/fixes.js.map +1 -0
  590. package/dist/types/graph.d.ts +80 -0
  591. package/dist/types/graph.js +2 -0
  592. package/dist/types/graph.js.map +1 -0
  593. package/dist/types/graphCorpus.d.ts +16 -0
  594. package/dist/types/graphCorpus.js +2 -0
  595. package/dist/types/graphCorpus.js.map +1 -0
  596. package/dist/types/hotspots.d.ts +42 -0
  597. package/dist/types/hotspots.js +2 -0
  598. package/dist/types/hotspots.js.map +1 -0
  599. package/dist/types/impact.d.ts +62 -0
  600. package/dist/types/impact.js +2 -0
  601. package/dist/types/impact.js.map +1 -0
  602. package/dist/types/inspection.d.ts +47 -0
  603. package/dist/types/inspection.js +2 -0
  604. package/dist/types/inspection.js.map +1 -0
  605. package/dist/types/mcp.d.ts +39 -0
  606. package/dist/types/mcp.js +2 -0
  607. package/dist/types/mcp.js.map +1 -0
  608. package/dist/types/pluginDx.d.ts +42 -0
  609. package/dist/types/pluginDx.js +2 -0
  610. package/dist/types/pluginDx.js.map +1 -0
  611. package/dist/types/prDiff.d.ts +41 -0
  612. package/dist/types/prDiff.js +2 -0
  613. package/dist/types/prDiff.js.map +1 -0
  614. package/dist/types/preflight.d.ts +122 -0
  615. package/dist/types/preflight.js +2 -0
  616. package/dist/types/preflight.js.map +1 -0
  617. package/dist/types/qualityScorecard.d.ts +34 -0
  618. package/dist/types/qualityScorecard.js +2 -0
  619. package/dist/types/qualityScorecard.js.map +1 -0
  620. package/dist/types/regressionPlan.d.ts +32 -0
  621. package/dist/types/regressionPlan.js +2 -0
  622. package/dist/types/regressionPlan.js.map +1 -0
  623. package/dist/types/releaseTrain.d.ts +37 -0
  624. package/dist/types/releaseTrain.js +2 -0
  625. package/dist/types/releaseTrain.js.map +1 -0
  626. package/dist/types/review.d.ts +203 -0
  627. package/dist/types/review.js +2 -0
  628. package/dist/types/review.js.map +1 -0
  629. package/dist/types/reviewContract.d.ts +9 -0
  630. package/dist/types/reviewContract.js +2 -0
  631. package/dist/types/reviewContract.js.map +1 -0
  632. package/dist/types/scanning.d.ts +111 -0
  633. package/dist/types/scanning.js +2 -0
  634. package/dist/types/scanning.js.map +1 -0
  635. package/dist/types/session.d.ts +42 -0
  636. package/dist/types/session.js +2 -0
  637. package/dist/types/session.js.map +1 -0
  638. package/dist/types/start.d.ts +437 -0
  639. package/dist/types/start.js +2 -0
  640. package/dist/types/start.js.map +1 -0
  641. package/dist/types/trial.d.ts +27 -0
  642. package/dist/types/trial.js +2 -0
  643. package/dist/types/trial.js.map +1 -0
  644. package/dist/types/understand.d.ts +153 -0
  645. package/dist/types/understand.js +2 -0
  646. package/dist/types/understand.js.map +1 -0
  647. package/dist/types/workplan.d.ts +67 -0
  648. package/dist/types/workplan.js +2 -0
  649. package/dist/types/workplan.js.map +1 -0
  650. package/dist/types/workplanHandoff.d.ts +11 -0
  651. package/dist/types/workplanHandoff.js +2 -0
  652. package/dist/types/workplanHandoff.js.map +1 -0
  653. package/dist/types/workspace.d.ts +18 -0
  654. package/dist/types/workspace.js +2 -0
  655. package/dist/types/workspace.js.map +1 -0
  656. package/dist/types.d.ts +34 -2348
  657. package/dist/types.js +0 -1
  658. package/dist/types.js.map +1 -1
  659. package/dist/utils/banner.js +15 -6
  660. package/dist/utils/banner.js.map +1 -1
  661. package/dist/utils/baseline.js +11 -9
  662. package/dist/utils/baseline.js.map +1 -1
  663. package/dist/utils/changedFiles.js +1 -1
  664. package/dist/utils/changedFiles.js.map +1 -1
  665. package/dist/utils/config.d.ts +2 -1
  666. package/dist/utils/config.js.map +1 -1
  667. package/dist/utils/formatSupport.d.ts +1 -1
  668. package/dist/utils/formatSupport.js +7 -1
  669. package/dist/utils/formatSupport.js.map +1 -1
  670. package/dist/utils/packageJsonLocator.js.map +1 -1
  671. package/docs/GUIDE.md +186 -146
  672. package/docs/PLUGIN-GALLERY.md +9 -1
  673. package/docs/ROADMAP.md +69 -68
  674. package/docs/demos/projscan-4-1-demo.html +46 -79
  675. package/docs/examples/plugins/graph-context.mjs +1 -2
  676. package/docs/examples/plugins/security-sensitive-files.mjs +2 -1
  677. package/package.json +10 -5
@@ -0,0 +1,47 @@
1
+ import type { ExportInfo, ImportInfo, Issue } from './common.js';
2
+ import type { FileHotspot } from './hotspots.js';
3
+ export interface FileInspection {
4
+ relativePath: string;
5
+ exists: boolean;
6
+ reason?: string;
7
+ purpose: string;
8
+ lineCount: number;
9
+ sizeBytes: number;
10
+ imports: ImportInfo[];
11
+ exports: ExportInfo[];
12
+ potentialIssues: string[];
13
+ hotspot: FileHotspot | null;
14
+ issues: Issue[];
15
+ /** AST-derived McCabe complexity. null when no language adapter parsed this file. */
16
+ cyclomaticComplexity?: number | null;
17
+ /** Number of files that import this one. null when graph unavailable. */
18
+ fanIn?: number | null;
19
+ /** Number of locally-resolved imports this file makes. null when graph unavailable. */
20
+ fanOut?: number | null;
21
+ /** Adapter id (e.g. 'javascript', 'python'). Set when the graph was available. */
22
+ language?: string;
23
+ /**
24
+ * Per-function McCabe CC (0.13.0+). Sorted by cyclomaticComplexity desc.
25
+ * Empty array when the file has no functions or the adapter doesn't yet
26
+ * support per-function granularity.
27
+ */
28
+ functions?: FunctionDetail[];
29
+ }
30
+ /**
31
+ * Per-function CC entry exposed via projscan_file. Mirrors the internal
32
+ * `FunctionInfo` from `core/ast.ts` but is part of the stable API surface.
33
+ */
34
+ export interface FunctionDetail {
35
+ name: string;
36
+ /** 1-based start line. */
37
+ line: number;
38
+ /** 1-based end line. */
39
+ endLine: number;
40
+ cyclomaticComplexity: number;
41
+ /**
42
+ * Approximate fan-in (0.15.0+): count of other files whose `callSites`
43
+ * include this function's bare name. Name-based and approximate; absent
44
+ * when the graph couldn't compute it.
45
+ */
46
+ fanIn?: number;
47
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=inspection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inspection.js","sourceRoot":"","sources":["../../src/types/inspection.ts"],"names":[],"mappings":""}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * A reversible deprecation marker (3.8 deprecation pass). Present on a tool
3
+ * means "still works, but slated for removal in 4.0 - prefer `replacedBy`".
4
+ */
5
+ export interface ToolDeprecation {
6
+ /** Version the deprecation was announced in (e.g. "3.8.0"). */
7
+ since: string;
8
+ /** The recommended replacement (tool name for MCP, invocation for CLI). */
9
+ replacedBy: string;
10
+ /** Optional one-line rationale shown to humans/agents. */
11
+ note?: string;
12
+ }
13
+ export interface McpToolDefinition {
14
+ name: string;
15
+ description: string;
16
+ inputSchema: {
17
+ type: 'object';
18
+ properties: Record<string, unknown>;
19
+ required?: string[];
20
+ };
21
+ /** Set when the tool is deprecated and scheduled for removal in 4.0. */
22
+ deprecated?: ToolDeprecation;
23
+ }
24
+ export interface McpPromptArgument {
25
+ name: string;
26
+ description: string;
27
+ required?: boolean;
28
+ }
29
+ export interface McpPromptDefinition {
30
+ name: string;
31
+ description: string;
32
+ arguments?: McpPromptArgument[];
33
+ }
34
+ export interface McpResourceDefinition {
35
+ uri: string;
36
+ name: string;
37
+ description: string;
38
+ mimeType: string;
39
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=mcp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/types/mcp.ts"],"names":[],"mappings":""}
@@ -0,0 +1,42 @@
1
+ import type { Issue, IssueSeverity } from './common.js';
2
+ export interface PluginTestResult {
3
+ schemaVersion: 1;
4
+ manifestPath: string;
5
+ ok: boolean;
6
+ diagnostics: Array<{
7
+ code: string;
8
+ severity: IssueSeverity;
9
+ message: string;
10
+ }>;
11
+ trust: {
12
+ localOnly: true;
13
+ previewFlag: 'PROJSCAN_PLUGINS_PREVIEW=1';
14
+ reminder: string;
15
+ };
16
+ commands: {
17
+ validate: string;
18
+ test: string;
19
+ execute: string;
20
+ enable: string;
21
+ };
22
+ execution: {
23
+ requested: boolean;
24
+ executed: boolean;
25
+ mode: 'static' | 'execute';
26
+ note: string;
27
+ };
28
+ context: {
29
+ requested: boolean;
30
+ capabilities: Array<'semanticGraph' | 'dataflow'>;
31
+ note: string;
32
+ };
33
+ analyzer?: {
34
+ issues: Issue[];
35
+ };
36
+ reporter?: {
37
+ outputs: Array<{
38
+ command: string;
39
+ text: string;
40
+ }>;
41
+ };
42
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=pluginDx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pluginDx.js","sourceRoot":"","sources":["../../src/types/pluginDx.ts"],"names":[],"mappings":""}
@@ -0,0 +1,41 @@
1
+ export interface ExportRename {
2
+ from: string;
3
+ to: string;
4
+ }
5
+ export interface FileAstDiff {
6
+ relativePath: string;
7
+ status: 'added' | 'removed' | 'modified';
8
+ exportsAdded: string[];
9
+ exportsRemoved: string[];
10
+ /**
11
+ * Heuristically-detected renames (0.11). When an export disappears from
12
+ * base AND a similar new name appears in head AND no other export matches,
13
+ * we report it here instead of as a +/- pair. Removed/added lists exclude
14
+ * any names that ended up in renames.
15
+ */
16
+ exportsRenamed: ExportRename[];
17
+ importsAdded: string[];
18
+ importsRemoved: string[];
19
+ callsAdded: string[];
20
+ callsRemoved: string[];
21
+ /** CC(head) - CC(base). null when either side wasn't AST-parsed. */
22
+ cyclomaticDelta: number | null;
23
+ /** fanIn(head) - fanIn(base). null when graph entry missing on either side. */
24
+ fanInDelta: number | null;
25
+ }
26
+ export interface PrDiffReport {
27
+ available: boolean;
28
+ reason?: string;
29
+ base: {
30
+ ref: string;
31
+ resolvedSha: string | null;
32
+ };
33
+ head: {
34
+ ref: string;
35
+ resolvedSha: string | null;
36
+ };
37
+ filesAdded: string[];
38
+ filesRemoved: string[];
39
+ filesModified: FileAstDiff[];
40
+ totalFilesChanged: number;
41
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=prDiff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prDiff.js","sourceRoot":"","sources":["../../src/types/prDiff.ts"],"names":[],"mappings":""}
@@ -0,0 +1,122 @@
1
+ import type { IssueSeverity } from './common.js';
2
+ import type { HealthScore } from './analysis.js';
3
+ type PreflightReviewVerdict = 'ok' | 'review' | 'block';
4
+ export type PreflightMode = 'before_edit' | 'before_commit' | 'before_merge';
5
+ export type PreflightVerdict = 'proceed' | 'caution' | 'block';
6
+ export type PreflightReasonSource = 'doctor' | 'review' | 'taint' | 'session' | 'plugin' | 'supply-chain' | 'memory' | 'changed-files' | 'hotspots' | 'git' | 'format' | 'release' | 'coordination';
7
+ export interface PreflightReason {
8
+ severity: IssueSeverity;
9
+ source: PreflightReasonSource;
10
+ message: string;
11
+ file?: string;
12
+ issueId?: string;
13
+ tool?: string;
14
+ }
15
+ export interface PreflightRequiredCheck {
16
+ name: string;
17
+ status: 'pass' | 'warn' | 'fail' | 'unavailable';
18
+ reason?: string;
19
+ }
20
+ export interface PreflightSuggestedAction {
21
+ label: string;
22
+ command?: string;
23
+ tool?: string;
24
+ args?: Record<string, unknown>;
25
+ }
26
+ export interface PreflightReleaseScaleEvidence {
27
+ detected: boolean;
28
+ changedFiles: number;
29
+ threshold: number;
30
+ reviewVerdict?: PreflightReviewVerdict;
31
+ reviewSummary?: string;
32
+ concreteBlockers: string[];
33
+ explanation: string;
34
+ }
35
+ export interface PreflightEvidence {
36
+ health?: {
37
+ score: number;
38
+ grade: HealthScore['grade'];
39
+ errors: number;
40
+ warnings: number;
41
+ infos: number;
42
+ };
43
+ changedFiles?: {
44
+ available: boolean;
45
+ count: number;
46
+ files: string[];
47
+ reason?: string;
48
+ };
49
+ review?: {
50
+ available: boolean;
51
+ verdict?: PreflightReviewVerdict;
52
+ summary?: string;
53
+ reason?: string;
54
+ };
55
+ session?: {
56
+ kind?: 'remembered-session';
57
+ id: string;
58
+ touchedFiles: string[];
59
+ totalTouchedFiles?: number;
60
+ eventCount: number;
61
+ note?: string;
62
+ truncated?: boolean;
63
+ };
64
+ riskSources?: {
65
+ currentWorktree: {
66
+ kind: 'current-worktree';
67
+ available: boolean;
68
+ count: number;
69
+ files: string[];
70
+ baseRef: string | null;
71
+ reason?: string;
72
+ };
73
+ sessionMemory: {
74
+ kind: 'remembered-session';
75
+ id: string;
76
+ touchedFiles: string[];
77
+ totalTouchedFiles: number;
78
+ eventCount: number;
79
+ note: string;
80
+ truncated?: boolean;
81
+ };
82
+ };
83
+ hotspots?: {
84
+ touched: Array<{
85
+ file: string;
86
+ riskScore: number;
87
+ }>;
88
+ };
89
+ plugins?: {
90
+ enabled: boolean;
91
+ errorIssues: number;
92
+ warningIssues: number;
93
+ };
94
+ supplyChain?: {
95
+ errorIssues: number;
96
+ warningIssues: number;
97
+ };
98
+ releaseScale?: PreflightReleaseScaleEvidence;
99
+ coordination?: {
100
+ available: boolean;
101
+ readiness: 'clear' | 'caution' | 'conflicted';
102
+ worktreeCount: number;
103
+ collisions: {
104
+ high: number;
105
+ medium: number;
106
+ };
107
+ contendedClaims: number;
108
+ };
109
+ }
110
+ export interface PreflightReport {
111
+ schemaVersion: 1;
112
+ mode: PreflightMode;
113
+ verdict: PreflightVerdict;
114
+ summary: string;
115
+ reasons: PreflightReason[];
116
+ evidence: PreflightEvidence;
117
+ requiredChecks: PreflightRequiredCheck[];
118
+ suggestedNextActions: PreflightSuggestedAction[];
119
+ toolCalls: PreflightSuggestedAction[];
120
+ truncated?: boolean;
121
+ }
122
+ export {};
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=preflight.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preflight.js","sourceRoot":"","sources":["../../src/types/preflight.ts"],"names":[],"mappings":""}
@@ -0,0 +1,34 @@
1
+ import type { HealthScore } from './analysis.js';
2
+ import type { PreflightSuggestedAction } from './preflight.js';
3
+ import type { FixFirstRecommendation, WorkplanPriority } from './workplan.js';
4
+ export type QualityScorecardVerdict = 'excellent' | 'healthy' | 'needs_attention' | 'blocked';
5
+ export type QualityScorecardStatus = 'pass' | 'watch' | 'fail';
6
+ export interface QualityScorecardDimension {
7
+ id: 'health' | 'security' | 'tests' | 'maintainability' | 'coordination';
8
+ label: string;
9
+ status: QualityScorecardStatus;
10
+ score: number;
11
+ summary: string;
12
+ evidence: string[];
13
+ commands: string[];
14
+ }
15
+ export interface QualityScorecardRisk {
16
+ id: string;
17
+ priority: WorkplanPriority;
18
+ title: string;
19
+ files: string[];
20
+ source: 'issue' | 'hotspot' | 'coordination';
21
+ command: string;
22
+ }
23
+ export interface QualityScorecardReport {
24
+ schemaVersion: 1;
25
+ verdict: QualityScorecardVerdict;
26
+ summary: string;
27
+ health: HealthScore;
28
+ dimensions: QualityScorecardDimension[];
29
+ topRisks: QualityScorecardRisk[];
30
+ fixFirst?: FixFirstRecommendation;
31
+ commands: string[];
32
+ suggestedNextActions: PreflightSuggestedAction[];
33
+ truncated?: boolean;
34
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=qualityScorecard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qualityScorecard.js","sourceRoot":"","sources":["../../src/types/qualityScorecard.ts"],"names":[],"mappings":""}
@@ -0,0 +1,32 @@
1
+ import type { BugHuntVerdict } from './bugHunt.js';
2
+ import type { PreflightSuggestedAction, PreflightVerdict } from './preflight.js';
3
+ import type { WorkplanPriority, WorkplanVerification } from './workplan.js';
4
+ export type RegressionPlanLevel = 'smoke' | 'focused' | 'full';
5
+ export type RegressionPlanVerdict = 'ready' | 'needs_tests' | 'blocked';
6
+ export interface RegressionPlanTarget {
7
+ id: string;
8
+ priority: WorkplanPriority;
9
+ source: 'baseline' | 'bug-hunt' | 'product-line' | 'preflight';
10
+ title: string;
11
+ why: string;
12
+ files: string[];
13
+ verification: WorkplanVerification;
14
+ }
15
+ export interface RegressionPlanReport {
16
+ schemaVersion: 1;
17
+ level: RegressionPlanLevel;
18
+ verdict: RegressionPlanVerdict;
19
+ summary: string;
20
+ releaseLines: string[];
21
+ evidence: {
22
+ healthScore: number;
23
+ bugHuntVerdict: BugHuntVerdict;
24
+ preflightVerdict: PreflightVerdict;
25
+ changedFiles: number;
26
+ touchedFiles: number;
27
+ };
28
+ targets: RegressionPlanTarget[];
29
+ commands: string[];
30
+ suggestedNextActions: PreflightSuggestedAction[];
31
+ truncated?: boolean;
32
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=regressionPlan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regressionPlan.js","sourceRoot":"","sources":["../../src/types/regressionPlan.ts"],"names":[],"mappings":""}
@@ -0,0 +1,37 @@
1
+ import type { PreflightSuggestedAction, PreflightVerdict } from './preflight.js';
2
+ import type { WorkplanPriority, WorkplanVerification } from './workplan.js';
3
+ export interface ReleaseTrainTrack {
4
+ line: string;
5
+ theme: string;
6
+ outcome: string;
7
+ includedInPlan: boolean;
8
+ scope: string[];
9
+ successCriteria: string[];
10
+ }
11
+ export interface ReleaseTrainTask {
12
+ id: string;
13
+ priority: WorkplanPriority;
14
+ title: string;
15
+ why: string;
16
+ track: string;
17
+ files: string[];
18
+ verification: WorkplanVerification;
19
+ }
20
+ export interface ReleaseTrainReport {
21
+ schemaVersion: 1;
22
+ currentVersion: string | null;
23
+ plan: {
24
+ policy: 'product-readiness-plan';
25
+ lines: string[];
26
+ readOnly: true;
27
+ };
28
+ readiness: {
29
+ verdict: PreflightVerdict;
30
+ blockers: number;
31
+ cautions: number;
32
+ summary: string;
33
+ };
34
+ tracks: ReleaseTrainTrack[];
35
+ tasks: ReleaseTrainTask[];
36
+ suggestedNextActions: PreflightSuggestedAction[];
37
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=releaseTrain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"releaseTrain.js","sourceRoot":"","sources":["../../src/types/releaseTrain.ts"],"names":[],"mappings":""}
@@ -0,0 +1,203 @@
1
+ import type { DataflowRiskConfidence, DataflowRiskKind, DataflowRiskSeverity, GraphEvidenceSummary } from './graph.js';
2
+ import type { PrDiffReport } from './prDiff.js';
3
+ import type { ReviewContractChange } from './reviewContract.js';
4
+ /**
5
+ * One changed file enriched with risk signals. The agent calling
6
+ * projscan_review uses these to decide which files need careful review.
7
+ */
8
+ export interface ReviewFile {
9
+ relativePath: string;
10
+ status: 'added' | 'removed' | 'modified';
11
+ /** Hotspot risk score for the head version. null when file isn't in the hotspot scope. */
12
+ riskScore: number | null;
13
+ /** Cyclomatic complexity at head. null when no AST adapter parsed it. */
14
+ cyclomaticComplexity: number | null;
15
+ /** Delta from the structural diff (mirrors FileAstDiff.cyclomaticDelta). null when file was added/removed. */
16
+ cyclomaticDelta: number | null;
17
+ /** Number of exports added in this PR. */
18
+ exportsAdded: number;
19
+ /** Number of exports removed in this PR. */
20
+ exportsRemoved: number;
21
+ /** Number of imports added. */
22
+ importsAdded: number;
23
+ /** Number of imports removed. */
24
+ importsRemoved: number;
25
+ /** 1.9+ - set when `projscan_review` was called with an `intent` arg. Absent otherwise. */
26
+ intentAlignment?: 'expected' | 'unexpected' | 'out-of-scope' | 'unknown';
27
+ }
28
+ /**
29
+ * A circular import that exists at head and either didn't exist at base or
30
+ * grew. Surfaced separately from the file list so reviewers see at-a-glance
31
+ * whether the PR introduces new architectural debt.
32
+ */
33
+ export interface ReviewCycle {
34
+ files: string[];
35
+ size: number;
36
+ /**
37
+ * 'new' = no overlap with any base cycle; 'expanded' = at least one new
38
+ * file added to an existing cycle.
39
+ */
40
+ classification: 'new' | 'expanded';
41
+ /** 1.9+ - set when `projscan_review` was called with an `intent` arg. Absent otherwise. */
42
+ intentAlignment?: 'expected' | 'unexpected' | 'out-of-scope' | 'unknown';
43
+ }
44
+ /**
45
+ * A function whose CC newly crossed a worry threshold (>= 10) at head, or
46
+ * was added with high CC, or jumped by 5+ since base.
47
+ */
48
+ export interface ReviewFunction {
49
+ file: string;
50
+ name: string;
51
+ line: number;
52
+ endLine: number;
53
+ cyclomaticComplexity: number;
54
+ /** CC at base. null when the function did not exist at base. */
55
+ baseCc: number | null;
56
+ /** Why this function shows up. */
57
+ reason: 'added' | 'jumped' | 'crossed-threshold';
58
+ /** 1.9+ - set when `projscan_review` was called with an `intent` arg. Absent otherwise. */
59
+ intentAlignment?: 'expected' | 'unexpected' | 'out-of-scope' | 'unknown';
60
+ }
61
+ /**
62
+ * 1.6+ - A taint flow that is NEW at head (not present at base). Mirrors
63
+ * the core TaintFlow shape but is intentionally light - review summaries
64
+ * should be readable in a glance, so we drop the per-step file list and
65
+ * keep only the source/sink, the function pair, and the path length.
66
+ */
67
+ export interface ReviewTaintFlow {
68
+ sourceFn: string;
69
+ sinkFn: string;
70
+ source: string;
71
+ sink: string;
72
+ /** Hop count from source function to sink function, inclusive of both ends. */
73
+ pathLength: number;
74
+ /** First and last files in the path; same value when length = 1. */
75
+ files: string[];
76
+ /** 1.9+ - set when `projscan_review` was called with an `intent` arg. Absent otherwise. */
77
+ intentAlignment?: 'expected' | 'unexpected' | 'out-of-scope' | 'unknown';
78
+ }
79
+ /**
80
+ * 3.0+ - Review-time dataflow risks that are not represented by legacy
81
+ * taint reachability, especially bridge helpers that call both a source
82
+ * wrapper and a sink wrapper.
83
+ */
84
+ export interface ReviewDataflowRisk {
85
+ kind: DataflowRiskKind;
86
+ sourceFn: string;
87
+ sinkFn: string;
88
+ bridgeFn?: string;
89
+ source: string;
90
+ sink: string;
91
+ pathLength: number;
92
+ files: string[];
93
+ severity: DataflowRiskSeverity;
94
+ confidence: DataflowRiskConfidence;
95
+ intentAlignment?: 'expected' | 'unexpected' | 'out-of-scope' | 'unknown';
96
+ }
97
+ /** Workspace-package-scoped dependency change. Aggregates root + workspaces. */
98
+ export interface ReviewDependencyChange {
99
+ /** Workspace name; '' for the root manifest. */
100
+ workspace: string;
101
+ manifestFile: string;
102
+ added: Array<{
103
+ name: string;
104
+ version: string;
105
+ kind: 'dep' | 'dev';
106
+ }>;
107
+ removed: Array<{
108
+ name: string;
109
+ version: string;
110
+ kind: 'dep' | 'dev';
111
+ }>;
112
+ bumped: Array<{
113
+ name: string;
114
+ from: string;
115
+ to: string;
116
+ kind: 'dep' | 'dev';
117
+ }>;
118
+ /** 1.9+ - set when `projscan_review` was called with an `intent` arg. Absent otherwise. */
119
+ intentAlignment?: 'expected' | 'unexpected' | 'out-of-scope' | 'unknown';
120
+ }
121
+ /**
122
+ * 1.5+ - `projscan_review` can shape its response at three tiers based
123
+ * on a `max_cost_tokens` budget passed by the caller: full (no budget
124
+ * or large budget), summary (3K-7K tokens), verdict-only (<3K).
125
+ * Selected by `selectReviewTier` and surfaced as the `tier` field on
126
+ * the response.
127
+ */
128
+ export type ReviewTier = 'full' | 'summary' | 'verdict-only';
129
+ export interface ReviewReport {
130
+ available: boolean;
131
+ reason?: string;
132
+ base: {
133
+ ref: string;
134
+ resolvedSha: string | null;
135
+ };
136
+ head: {
137
+ ref: string;
138
+ resolvedSha: string | null;
139
+ };
140
+ /** The structural diff (same shape as projscan_pr_diff). */
141
+ prDiff: PrDiffReport;
142
+ /** Each changed file annotated with risk + CC + delta. Sorted by risk desc. */
143
+ changedFiles: ReviewFile[];
144
+ /** Cycles introduced or expanded by this PR. Empty when none. */
145
+ newCycles: ReviewCycle[];
146
+ /** Functions that meaningfully grew or were added with high CC. Sorted by CC desc. */
147
+ riskyFunctions: ReviewFunction[];
148
+ /** package.json deltas across root + workspaces. */
149
+ dependencyChanges: ReviewDependencyChange[];
150
+ /**
151
+ * 2.1+ - additive public contract changes such as export and package
152
+ * entrypoint changes. Empty or absent when no contract signal is available.
153
+ */
154
+ contractChanges?: ReviewContractChange[];
155
+ /**
156
+ * 1.6+ - NEW source-to-sink taint flows introduced by this PR. Each
157
+ * entry is a flow that exists at head but didn't exist at base
158
+ * (matched by sourceFn + sinkFn pair). Empty when taint is unavailable
159
+ * (no per-function callSites at either side).
160
+ */
161
+ newTaintFlows: ReviewTaintFlow[];
162
+ /**
163
+ * 3.0+ - NEW dataflow risks introduced by this PR that are outside the
164
+ * legacy source-to-sink taint flow list. Empty when unavailable or clean.
165
+ */
166
+ newDataflowRisks: ReviewDataflowRisk[];
167
+ /** 3.5+ - compact graph/dataflow evidence for review consumers. */
168
+ graphEvidence?: GraphEvidenceSummary;
169
+ /** 'ok' = ship it; 'review' = needs careful look; 'block' = strongly suggests rework. */
170
+ verdict: 'ok' | 'review' | 'block';
171
+ /** One-line bullets explaining the verdict. */
172
+ summary: string[];
173
+ /**
174
+ * 1.5+ - which tier this report was shaped at. Absent when the full
175
+ * report is returned without budget shaping.
176
+ */
177
+ tier?: ReviewTier;
178
+ /**
179
+ * 1.9+ - the parsed intent the agent passed (if any). Echo of the
180
+ * raw string + the parser's classified action + extracted scope
181
+ * tokens. Absent when `intent` arg wasn't provided.
182
+ */
183
+ intent?: {
184
+ raw: string;
185
+ action: 'feature' | 'fix' | 'refactor' | 'perf' | 'test' | 'docs' | 'chore' | 'remove' | 'unknown';
186
+ scopeTokens: string[];
187
+ };
188
+ /**
189
+ * 1.9+ - per-alignment totals across all findings + a small sample
190
+ * of "notable" (unexpected / out-of-scope) findings. Absent when
191
+ * no intent was provided. Verdict is NOT affected by intent -
192
+ * verdict stays structural.
193
+ */
194
+ intentAnalysis?: {
195
+ totals: Record<'expected' | 'unexpected' | 'out-of-scope' | 'unknown', number>;
196
+ notable: Array<{
197
+ kind: 'file' | 'function' | 'cycle' | 'taint' | 'dataflow' | 'dependency';
198
+ label: string;
199
+ alignment: 'expected' | 'unexpected' | 'out-of-scope' | 'unknown';
200
+ reason: string;
201
+ }>;
202
+ };
203
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=review.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review.js","sourceRoot":"","sources":["../../src/types/review.ts"],"names":[],"mappings":""}