octocode-cli 1.2.7 → 1.2.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (282) hide show
  1. package/README.md +42 -35
  2. package/out/octocode-cli.js +36 -11719
  3. package/package.json +36 -36
  4. package/skills/README.md +42 -114
  5. package/skills/{octocode-code-engineer → octocode-engineer}/.claude/settings.local.json +2 -1
  6. package/skills/octocode-engineer/README.md +99 -0
  7. package/skills/octocode-engineer/SKILL.md +499 -0
  8. package/skills/octocode-engineer/build.mjs +29 -0
  9. package/skills/{octocode-code-engineer → octocode-engineer}/eslint.config.mjs +3 -13
  10. package/skills/{octocode-code-engineer → octocode-engineer}/package.json +28 -27
  11. package/skills/octocode-engineer/references/ast-reference.md +166 -0
  12. package/skills/{octocode-code-engineer → octocode-engineer}/references/cli-reference.md +80 -6
  13. package/skills/octocode-engineer/references/externals.md +86 -0
  14. package/skills/{octocode-code-engineer → octocode-engineer}/references/output-files.md +46 -6
  15. package/skills/octocode-engineer/references/quality-indicators.md +202 -0
  16. package/skills/octocode-engineer/references/tool-workflows.md +298 -0
  17. package/skills/octocode-engineer/references/validation-playbooks.md +99 -0
  18. package/skills/octocode-engineer/scripts/ast/search.js +45 -0
  19. package/skills/octocode-engineer/scripts/ast/tree-search.js +27 -0
  20. package/skills/octocode-engineer/scripts/index.js +173 -0
  21. package/skills/octocode-engineer/scripts/run.js +179 -0
  22. package/skills/octocode-engineer/src/analysis/dependencies.ts +378 -0
  23. package/skills/{octocode-code-engineer → octocode-engineer}/src/analysis/discovery.test.ts +57 -0
  24. package/skills/{octocode-code-engineer → octocode-engineer}/src/analysis/discovery.ts +43 -0
  25. package/skills/{octocode-code-engineer → octocode-engineer}/src/ast/search.test.ts +113 -0
  26. package/skills/{octocode-code-engineer → octocode-engineer}/src/ast/search.ts +64 -1
  27. package/skills/{octocode-code-engineer → octocode-engineer}/src/ast/tree-sitter.test.ts +118 -2
  28. package/skills/{octocode-code-engineer → octocode-engineer}/src/ast/tree-sitter.ts +65 -3
  29. package/skills/{octocode-code-engineer → octocode-engineer}/src/ast/ts-analyzer.test.ts +281 -1
  30. package/skills/{octocode-code-engineer → octocode-engineer}/src/ast/ts-analyzer.ts +173 -3
  31. package/skills/{octocode-code-engineer → octocode-engineer}/src/collectors/security.test.ts +73 -0
  32. package/skills/{octocode-code-engineer → octocode-engineer}/src/collectors/security.ts +62 -4
  33. package/skills/octocode-engineer/src/detector-gating.test.ts +59 -0
  34. package/skills/{octocode-code-engineer → octocode-engineer}/src/detectors/code-quality.ts +342 -0
  35. package/skills/{octocode-code-engineer → octocode-engineer}/src/detectors/index.ts +8 -0
  36. package/skills/{octocode-code-engineer → octocode-engineer}/src/index.test.ts +565 -11
  37. package/skills/octocode-engineer/src/index.ts +468 -0
  38. package/skills/octocode-engineer/src/pipeline/affected.test.ts +147 -0
  39. package/skills/octocode-engineer/src/pipeline/affected.ts +68 -0
  40. package/skills/octocode-engineer/src/pipeline/baseline.test.ts +276 -0
  41. package/skills/octocode-engineer/src/pipeline/baseline.ts +76 -0
  42. package/skills/{octocode-code-engineer → octocode-engineer}/src/pipeline/cli.test.ts +300 -53
  43. package/skills/{octocode-code-engineer → octocode-engineer}/src/pipeline/cli.ts +180 -36
  44. package/skills/octocode-engineer/src/pipeline/config-loader.test.ts +264 -0
  45. package/skills/octocode-engineer/src/pipeline/config-loader.ts +109 -0
  46. package/skills/octocode-engineer/src/pipeline/create-options.ts +55 -0
  47. package/skills/octocode-engineer/src/pipeline/health-score.test.ts +65 -0
  48. package/skills/{octocode-code-engineer → octocode-engineer}/src/pipeline/main.ts +130 -17
  49. package/skills/octocode-engineer/src/pipeline/progress.ts +51 -0
  50. package/skills/octocode-engineer/src/pipeline/reporters.test.ts +155 -0
  51. package/skills/octocode-engineer/src/pipeline/reporters.ts +64 -0
  52. package/skills/octocode-engineer/src/reporting/graph-features.test.ts +279 -0
  53. package/skills/{octocode-code-engineer → octocode-engineer}/src/reporting/output-contract.test.ts +6 -0
  54. package/skills/octocode-engineer/src/reporting/summary-md.test.ts +1066 -0
  55. package/skills/octocode-engineer/src/reporting/summary-md.ts +1604 -0
  56. package/skills/{octocode-code-engineer → octocode-engineer}/src/reporting/writer.ts +136 -13
  57. package/skills/octocode-engineer/src/run.ts +78 -0
  58. package/skills/{octocode-code-engineer → octocode-engineer}/src/sanity.test.ts +1 -1
  59. package/skills/octocode-engineer/src/types/analysis.ts +25 -0
  60. package/skills/octocode-engineer/src/types/collectors.ts +134 -0
  61. package/skills/{octocode-code-engineer → octocode-engineer}/src/types/constants.ts +75 -41
  62. package/skills/octocode-engineer/src/types/core.ts +203 -0
  63. package/skills/octocode-engineer/src/types/dependency.ts +215 -0
  64. package/skills/octocode-engineer/src/types/file-entry.ts +108 -0
  65. package/skills/octocode-engineer/src/types/findings.ts +105 -0
  66. package/skills/{octocode-code-engineer → octocode-engineer}/src/types/index.ts +60 -30
  67. package/skills/octocode-engineer/src/types/tree-sitter.ts +38 -0
  68. package/skills/{octocode-code-engineer → octocode-engineer}/tsconfig.json +1 -0
  69. package/skills/octocode-research/.octocode/scan/.cache/analysis-cache.json +1 -0
  70. package/skills/octocode-research/.octocode/scan/2026-03-22T10-32-27-073Z/architecture.json +1 -0
  71. package/skills/octocode-research/.octocode/scan/2026-03-22T10-32-27-073Z/ast-trees.txt +5566 -0
  72. package/skills/octocode-research/.octocode/scan/2026-03-22T10-32-27-073Z/code-quality.json +1 -0
  73. package/skills/octocode-research/.octocode/scan/2026-03-22T10-32-27-073Z/dead-code.json +1 -0
  74. package/skills/octocode-research/.octocode/scan/2026-03-22T10-32-27-073Z/file-inventory.json +1 -0
  75. package/skills/octocode-research/.octocode/scan/2026-03-22T10-32-27-073Z/findings.json +1 -0
  76. package/skills/octocode-research/.octocode/scan/2026-03-22T10-32-27-073Z/graph.md +189 -0
  77. package/skills/octocode-research/.octocode/scan/2026-03-22T10-32-27-073Z/security.json +1 -0
  78. package/skills/octocode-research/.octocode/scan/2026-03-22T10-32-27-073Z/summary.json +1 -0
  79. package/skills/octocode-research/.octocode/scan/2026-03-22T10-32-27-073Z/summary.md +265 -0
  80. package/skills/octocode-research/.octocode/scan/2026-03-22T10-40-10-469Z/architecture.json +1 -0
  81. package/skills/octocode-research/.octocode/scan/2026-03-22T10-40-10-469Z/ast-trees.txt +5555 -0
  82. package/skills/octocode-research/.octocode/scan/2026-03-22T10-40-10-469Z/code-quality.json +1 -0
  83. package/skills/octocode-research/.octocode/scan/2026-03-22T10-40-10-469Z/dead-code.json +1 -0
  84. package/skills/octocode-research/.octocode/scan/2026-03-22T10-40-10-469Z/file-inventory.json +1 -0
  85. package/skills/octocode-research/.octocode/scan/2026-03-22T10-40-10-469Z/findings.json +1 -0
  86. package/skills/octocode-research/.octocode/scan/2026-03-22T10-40-10-469Z/graph.md +190 -0
  87. package/skills/octocode-research/.octocode/scan/2026-03-22T10-40-10-469Z/security.json +1 -0
  88. package/skills/octocode-research/.octocode/scan/2026-03-22T10-40-10-469Z/summary.json +1 -0
  89. package/skills/octocode-research/.octocode/scan/2026-03-22T10-40-10-469Z/summary.md +265 -0
  90. package/skills/octocode-research/CHANGELOG.md +60 -0
  91. package/skills/octocode-research/README.md +102 -388
  92. package/skills/octocode-research/SKILL.md +169 -498
  93. package/skills/octocode-research/package.json +19 -31
  94. package/skills/octocode-research/references/PARALLEL_AGENT_PROTOCOL.md +19 -0
  95. package/skills/octocode-research/references/SESSION_MANAGEMENT.md +38 -0
  96. package/skills/octocode-research/scripts/server-init.js +1 -1
  97. package/skills/octocode-research/scripts/server.d.ts +2 -1
  98. package/skills/octocode-research/scripts/server.js +329 -233
  99. package/skills/octocode-research/src/__tests__/integration/promptsRoutes.test.ts +180 -0
  100. package/skills/octocode-research/src/__tests__/integration/serverHttp.test.ts +221 -0
  101. package/skills/octocode-research/src/__tests__/integration/serverLifecycle.test.ts +194 -0
  102. package/skills/octocode-research/src/__tests__/integration/toolsRoutes.test.ts +501 -0
  103. package/skills/octocode-research/src/__tests__/unit/readiness.test.ts +61 -0
  104. package/skills/octocode-research/src/__tests__/unit/resilience.test.ts +192 -0
  105. package/skills/octocode-research/src/__tests__/unit/responseFactory.test.ts +172 -0
  106. package/skills/octocode-research/src/__tests__/unit/responseParser.test.ts +288 -0
  107. package/skills/octocode-research/src/__tests__/unit/schemas.test.ts +509 -0
  108. package/skills/octocode-research/src/index.ts +4 -124
  109. package/skills/octocode-research/src/middleware/queryParser.ts +0 -26
  110. package/skills/octocode-research/src/routes/lsp.ts +58 -59
  111. package/skills/octocode-research/src/routes/package.ts +35 -65
  112. package/skills/octocode-research/src/routes/prompts.ts +3 -3
  113. package/skills/octocode-research/src/routes/tools.ts +8 -20
  114. package/skills/octocode-research/src/server-init.ts +30 -237
  115. package/skills/octocode-research/src/server.ts +50 -23
  116. package/skills/octocode-research/src/types/errorGuards.ts +9 -80
  117. package/skills/octocode-research/src/types/guards.ts +0 -28
  118. package/skills/octocode-research/src/types/mcp.ts +11 -66
  119. package/skills/octocode-research/src/types/responses.ts +11 -129
  120. package/skills/octocode-research/src/utils/circuitBreaker.ts +0 -21
  121. package/skills/octocode-research/src/utils/logger.ts +1 -97
  122. package/skills/octocode-research/src/utils/resilience.ts +2 -12
  123. package/skills/octocode-research/src/utils/responseFactory.ts +0 -42
  124. package/skills/octocode-research/src/utils/responseParser.ts +3 -25
  125. package/skills/octocode-research/src/utils/retry.ts +0 -63
  126. package/skills/octocode-research/src/utils/routeFactory.ts +1 -1
  127. package/skills/octocode-research/src/validation/httpPreprocess.ts +0 -3
  128. package/skills/octocode-research/src/validation/index.ts +0 -1
  129. package/skills/octocode-research/src/validation/schemas.ts +0 -63
  130. package/skills/octocode-research/src/validation/toolCallSchema.ts +3 -3
  131. package/skills/octocode-research/tsdown.config.ts +4 -0
  132. package/skills/octocode-research/vitest.config.ts +3 -0
  133. package/skills/octocode-code-engineer/.plan/VALIDATED_PLAN.md +0 -223
  134. package/skills/octocode-code-engineer/README.md +0 -178
  135. package/skills/octocode-code-engineer/SKILL.md +0 -418
  136. package/skills/octocode-code-engineer/minify-scripts.mjs +0 -32
  137. package/skills/octocode-code-engineer/references/agent-ast-reading-rfc.md +0 -95
  138. package/skills/octocode-code-engineer/references/architecture-techniques.md +0 -121
  139. package/skills/octocode-code-engineer/references/ast-search.md +0 -210
  140. package/skills/octocode-code-engineer/references/ast-tree-search.md +0 -151
  141. package/skills/octocode-code-engineer/references/concepts.md +0 -107
  142. package/skills/octocode-code-engineer/references/finding-categories.md +0 -128
  143. package/skills/octocode-code-engineer/references/improvement-roadmap.md +0 -304
  144. package/skills/octocode-code-engineer/references/playbooks.md +0 -204
  145. package/skills/octocode-code-engineer/references/present-results.md +0 -136
  146. package/skills/octocode-code-engineer/references/tool-workflows.md +0 -566
  147. package/skills/octocode-code-engineer/references/validate-investigate.md +0 -225
  148. package/skills/octocode-code-engineer/scripts/analysis/dependencies.js +0 -1
  149. package/skills/octocode-code-engineer/scripts/analysis/dependency-summary.js +0 -1
  150. package/skills/octocode-code-engineer/scripts/analysis/discovery.js +0 -1
  151. package/skills/octocode-code-engineer/scripts/analysis/graph-analytics.js +0 -1
  152. package/skills/octocode-code-engineer/scripts/analysis/semantic.js +0 -1
  153. package/skills/octocode-code-engineer/scripts/ast/helpers.js +0 -1
  154. package/skills/octocode-code-engineer/scripts/ast/metrics.js +0 -1
  155. package/skills/octocode-code-engineer/scripts/ast/search.js +0 -2
  156. package/skills/octocode-code-engineer/scripts/ast/tree-search.js +0 -2
  157. package/skills/octocode-code-engineer/scripts/ast/tree-sitter.js +0 -1
  158. package/skills/octocode-code-engineer/scripts/ast/ts-analyzer.js +0 -1
  159. package/skills/octocode-code-engineer/scripts/collectors/chains.js +0 -1
  160. package/skills/octocode-code-engineer/scripts/collectors/effects.js +0 -1
  161. package/skills/octocode-code-engineer/scripts/collectors/input-sources.js +0 -1
  162. package/skills/octocode-code-engineer/scripts/collectors/performance.js +0 -1
  163. package/skills/octocode-code-engineer/scripts/collectors/prototype-pollution.js +0 -1
  164. package/skills/octocode-code-engineer/scripts/collectors/security.js +0 -1
  165. package/skills/octocode-code-engineer/scripts/collectors/test-profile.js +0 -1
  166. package/skills/octocode-code-engineer/scripts/common/is-direct-run.js +0 -1
  167. package/skills/octocode-code-engineer/scripts/common/utils.js +0 -1
  168. package/skills/octocode-code-engineer/scripts/detectors/code-quality.js +0 -1
  169. package/skills/octocode-code-engineer/scripts/detectors/cohesion.js +0 -1
  170. package/skills/octocode-code-engineer/scripts/detectors/coupling.js +0 -1
  171. package/skills/octocode-code-engineer/scripts/detectors/cycle.js +0 -1
  172. package/skills/octocode-code-engineer/scripts/detectors/dead-code.js +0 -1
  173. package/skills/octocode-code-engineer/scripts/detectors/import-style.js +0 -1
  174. package/skills/octocode-code-engineer/scripts/detectors/index.js +0 -1
  175. package/skills/octocode-code-engineer/scripts/detectors/security.js +0 -1
  176. package/skills/octocode-code-engineer/scripts/detectors/semantic.js +0 -1
  177. package/skills/octocode-code-engineer/scripts/detectors/shared.js +0 -1
  178. package/skills/octocode-code-engineer/scripts/detectors/test-quality.js +0 -1
  179. package/skills/octocode-code-engineer/scripts/index.js +0 -1
  180. package/skills/octocode-code-engineer/scripts/pipeline/cache.js +0 -1
  181. package/skills/octocode-code-engineer/scripts/pipeline/cli.js +0 -1
  182. package/skills/octocode-code-engineer/scripts/pipeline/main.js +0 -2
  183. package/skills/octocode-code-engineer/scripts/reporting/analysis.js +0 -1
  184. package/skills/octocode-code-engineer/scripts/reporting/summary-md.js +0 -1
  185. package/skills/octocode-code-engineer/scripts/reporting/writer.js +0 -1
  186. package/skills/octocode-code-engineer/scripts/types/constants.js +0 -1
  187. package/skills/octocode-code-engineer/scripts/types/index.js +0 -1
  188. package/skills/octocode-code-engineer/scripts/types/interfaces.js +0 -1
  189. package/skills/octocode-code-engineer/src/analysis/dependencies.ts +0 -406
  190. package/skills/octocode-code-engineer/src/index.ts +0 -403
  191. package/skills/octocode-code-engineer/src/reporting/summary-md.test.ts +0 -421
  192. package/skills/octocode-code-engineer/src/reporting/summary-md.ts +0 -714
  193. package/skills/octocode-code-engineer/src/types/interfaces.ts +0 -682
  194. package/skills/octocode-research/src/types/toolTypes.ts +0 -33
  195. package/skills/octocode-research/src/utils/logEmoji.ts +0 -103
  196. /package/skills/{octocode-code-engineer → octocode-engineer}/.octocode/rfc/RFC-code-engineer-weakness-fixes.md +0 -0
  197. /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/architecture.ts.html +0 -0
  198. /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/ast-helpers.ts.html +0 -0
  199. /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/ast-search.ts.html +0 -0
  200. /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/base.css +0 -0
  201. /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/block-navigation.js +0 -0
  202. /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/cache.ts.html +0 -0
  203. /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/cli.ts.html +0 -0
  204. /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/clover.xml +0 -0
  205. /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/collect-effects.ts.html +0 -0
  206. /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/collect-input-sources.ts.html +0 -0
  207. /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/collect-performance.ts.html +0 -0
  208. /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/collect-prototype-pollution.ts.html +0 -0
  209. /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/collect-security.ts.html +0 -0
  210. /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/collect-test-profile.ts.html +0 -0
  211. /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/coverage-final.json +0 -0
  212. /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/dependencies.ts.html +0 -0
  213. /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/dependency-summary.ts.html +0 -0
  214. /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/discovery.ts.html +0 -0
  215. /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/favicon.png +0 -0
  216. /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/graph-analytics.ts.html +0 -0
  217. /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/index.html +0 -0
  218. /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/index.ts.html +0 -0
  219. /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/metrics.ts.html +0 -0
  220. /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/pipeline.ts.html +0 -0
  221. /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/prettify.css +0 -0
  222. /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/prettify.js +0 -0
  223. /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/report-analysis.ts.html +0 -0
  224. /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/report-writer.ts.html +0 -0
  225. /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/security-detectors.ts.html +0 -0
  226. /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/semantic-detectors.ts.html +0 -0
  227. /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/semantic.ts.html +0 -0
  228. /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/sort-arrow-sprite.png +0 -0
  229. /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/sorter.js +0 -0
  230. /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/summary-md.ts.html +0 -0
  231. /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/test-quality-detectors.ts.html +0 -0
  232. /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/tree-sitter-analyzer.ts.html +0 -0
  233. /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/ts-analyzer.ts.html +0 -0
  234. /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/types.ts.html +0 -0
  235. /package/skills/{octocode-code-engineer → octocode-engineer}/coverage/utils.ts.html +0 -0
  236. /package/skills/{octocode-code-engineer → octocode-engineer}/src/analysis/dependencies.test.ts +0 -0
  237. /package/skills/{octocode-code-engineer → octocode-engineer}/src/analysis/dependency-summary.test.ts +0 -0
  238. /package/skills/{octocode-code-engineer → octocode-engineer}/src/analysis/dependency-summary.ts +0 -0
  239. /package/skills/{octocode-code-engineer → octocode-engineer}/src/analysis/graph-analytics.test.ts +0 -0
  240. /package/skills/{octocode-code-engineer → octocode-engineer}/src/analysis/graph-analytics.ts +0 -0
  241. /package/skills/{octocode-code-engineer → octocode-engineer}/src/analysis/semantic.test.ts +0 -0
  242. /package/skills/{octocode-code-engineer → octocode-engineer}/src/analysis/semantic.ts +0 -0
  243. /package/skills/{octocode-code-engineer → octocode-engineer}/src/ast/helpers.test.ts +0 -0
  244. /package/skills/{octocode-code-engineer → octocode-engineer}/src/ast/helpers.ts +0 -0
  245. /package/skills/{octocode-code-engineer → octocode-engineer}/src/ast/metrics.test.ts +0 -0
  246. /package/skills/{octocode-code-engineer → octocode-engineer}/src/ast/metrics.ts +0 -0
  247. /package/skills/{octocode-code-engineer → octocode-engineer}/src/ast/tree-search.test.ts +0 -0
  248. /package/skills/{octocode-code-engineer → octocode-engineer}/src/ast/tree-search.ts +0 -0
  249. /package/skills/{octocode-code-engineer → octocode-engineer}/src/collectors/chains.ts +0 -0
  250. /package/skills/{octocode-code-engineer → octocode-engineer}/src/collectors/effects.test.ts +0 -0
  251. /package/skills/{octocode-code-engineer → octocode-engineer}/src/collectors/effects.ts +0 -0
  252. /package/skills/{octocode-code-engineer → octocode-engineer}/src/collectors/input-sources.test.ts +0 -0
  253. /package/skills/{octocode-code-engineer → octocode-engineer}/src/collectors/input-sources.ts +0 -0
  254. /package/skills/{octocode-code-engineer → octocode-engineer}/src/collectors/performance.test.ts +0 -0
  255. /package/skills/{octocode-code-engineer → octocode-engineer}/src/collectors/performance.ts +0 -0
  256. /package/skills/{octocode-code-engineer → octocode-engineer}/src/collectors/prototype-pollution.test.ts +0 -0
  257. /package/skills/{octocode-code-engineer → octocode-engineer}/src/collectors/prototype-pollution.ts +0 -0
  258. /package/skills/{octocode-code-engineer → octocode-engineer}/src/collectors/test-profile.test.ts +0 -0
  259. /package/skills/{octocode-code-engineer → octocode-engineer}/src/collectors/test-profile.ts +0 -0
  260. /package/skills/{octocode-code-engineer → octocode-engineer}/src/common/is-direct-run.test.ts +0 -0
  261. /package/skills/{octocode-code-engineer → octocode-engineer}/src/common/is-direct-run.ts +0 -0
  262. /package/skills/{octocode-code-engineer → octocode-engineer}/src/common/utils.test.ts +0 -0
  263. /package/skills/{octocode-code-engineer → octocode-engineer}/src/common/utils.ts +0 -0
  264. /package/skills/{octocode-code-engineer → octocode-engineer}/src/detectors/cohesion.ts +0 -0
  265. /package/skills/{octocode-code-engineer → octocode-engineer}/src/detectors/coupling.ts +0 -0
  266. /package/skills/{octocode-code-engineer → octocode-engineer}/src/detectors/cycle.ts +0 -0
  267. /package/skills/{octocode-code-engineer → octocode-engineer}/src/detectors/dead-code.ts +0 -0
  268. /package/skills/{octocode-code-engineer → octocode-engineer}/src/detectors/import-style.ts +0 -0
  269. /package/skills/{octocode-code-engineer → octocode-engineer}/src/detectors/index.test.ts +0 -0
  270. /package/skills/{octocode-code-engineer → octocode-engineer}/src/detectors/security.test.ts +0 -0
  271. /package/skills/{octocode-code-engineer → octocode-engineer}/src/detectors/security.ts +0 -0
  272. /package/skills/{octocode-code-engineer → octocode-engineer}/src/detectors/semantic.ts +0 -0
  273. /package/skills/{octocode-code-engineer → octocode-engineer}/src/detectors/shared.ts +0 -0
  274. /package/skills/{octocode-code-engineer → octocode-engineer}/src/detectors/test-quality.test.ts +0 -0
  275. /package/skills/{octocode-code-engineer → octocode-engineer}/src/detectors/test-quality.ts +0 -0
  276. /package/skills/{octocode-code-engineer → octocode-engineer}/src/pipeline/cache.test.ts +0 -0
  277. /package/skills/{octocode-code-engineer → octocode-engineer}/src/pipeline/cache.ts +0 -0
  278. /package/skills/{octocode-code-engineer → octocode-engineer}/src/pipeline/main.test.ts +0 -0
  279. /package/skills/{octocode-code-engineer → octocode-engineer}/src/pipeline.test.ts +0 -0
  280. /package/skills/{octocode-code-engineer → octocode-engineer}/src/reporting/analysis.test.ts +0 -0
  281. /package/skills/{octocode-code-engineer → octocode-engineer}/src/reporting/analysis.ts +0 -0
  282. /package/skills/{octocode-code-engineer → octocode-engineer}/vitest.config.ts +0 -0
@@ -1,682 +0,0 @@
1
- import type Parser from 'tree-sitter';
2
-
3
- export type SyntaxNode = Parser.SyntaxNode;
4
-
5
- export interface AnalysisOptions {
6
- minFunctionStatements: number;
7
- minFlowStatements: number;
8
- root: string;
9
- includeTests: boolean;
10
- emitTree: boolean;
11
- json: boolean;
12
- graph: boolean;
13
- out: string | null;
14
- treeDepth: number;
15
- findingsLimit: number;
16
- parser: 'auto' | 'typescript' | 'tree-sitter';
17
- criticalComplexityThreshold: number;
18
- deepLinkTopN: number;
19
- packageRoot: string;
20
- ignoreDirs: Set<string>;
21
- couplingThreshold: number;
22
- fanInThreshold: number;
23
- fanOutThreshold: number;
24
- godModuleStatements: number;
25
- godModuleExports: number;
26
- godFunctionStatements: number;
27
- godFunctionMiThreshold: number;
28
- cognitiveComplexityThreshold: number;
29
- barrelSymbolThreshold: number;
30
- layerOrder: string[];
31
- parameterThreshold: number;
32
- halsteadEffortThreshold: number;
33
- maintainabilityIndexThreshold: number;
34
- anyThreshold: number;
35
- flowDupThreshold: number;
36
- maxRecsPerCategory: number;
37
- features: Set<string> | null;
38
- scope: string[] | null;
39
- scopeSymbols: Map<string, string[]> | null;
40
- noCache: boolean;
41
- clearCache: boolean;
42
- semantic: boolean;
43
- overrideChainThreshold: number;
44
- shotgunThreshold: number;
45
- sdpMinDelta: number;
46
- sdpMaxSourceInstability: number;
47
- secretEntropyThreshold: number;
48
- secretMinLength: number;
49
- similarityThreshold: number;
50
- mockThreshold: number;
51
- noDiversify: boolean;
52
- graphAdvanced: boolean;
53
- flow: boolean;
54
- }
55
-
56
- export interface Location {
57
- file: string;
58
- lineStart: number;
59
- lineEnd: number;
60
- columnStart: number;
61
- columnEnd: number;
62
- }
63
-
64
- export interface Metrics {
65
- complexity: number;
66
- maxBranchDepth: number;
67
- maxLoopDepth: number;
68
- returns: number;
69
- awaits: number;
70
- calls: number;
71
- loops: number;
72
- }
73
-
74
- export interface HalsteadMetrics {
75
- operators: number;
76
- operands: number;
77
- distinctOperators: number;
78
- distinctOperands: number;
79
- vocabulary: number;
80
- length: number;
81
- volume: number;
82
- difficulty: number;
83
- effort: number;
84
- time: number;
85
- estimatedBugs: number;
86
- }
87
-
88
- export interface CodeLocation {
89
- file: string;
90
- lineStart: number;
91
- lineEnd: number;
92
- }
93
-
94
- export interface MagicNumberEntry extends CodeLocation {
95
- value: number;
96
- }
97
-
98
- export interface ConsoleLogEntry {
99
- method: string;
100
- lineStart: number;
101
- lineEnd: number;
102
- hasSensitiveArg: boolean;
103
- argSnippet?: string;
104
- }
105
-
106
- export interface MessageChainEntry {
107
- chain: string;
108
- depth: number;
109
- lineStart: number;
110
- lineEnd: number;
111
- }
112
-
113
- export interface TreeSitterMetrics extends Metrics {
114
- statements: number;
115
- }
116
-
117
- export interface FunctionEntry {
118
- kind: string;
119
- name: string;
120
- nameHint: string;
121
- file: string;
122
- lineStart: number;
123
- lineEnd: number;
124
- columnStart: number;
125
- columnEnd: number;
126
- statementCount: number;
127
- complexity: number;
128
- maxBranchDepth: number;
129
- maxLoopDepth: number;
130
- returns: number;
131
- awaits: number;
132
- calls: number;
133
- loops: number;
134
- lengthLines: number;
135
- cognitiveComplexity: number;
136
- halstead?: HalsteadMetrics;
137
- maintainabilityIndex?: number;
138
- declared?: boolean;
139
- params?: number;
140
- source?: string;
141
- }
142
-
143
- export interface FlowEntry {
144
- kind: string;
145
- file: string;
146
- lineStart: number;
147
- lineEnd: number;
148
- columnStart: number;
149
- columnEnd: number;
150
- statementCount: number;
151
- }
152
-
153
- export interface FlowMapEntry extends FunctionEntry {
154
- hash: string;
155
- metrics: Metrics;
156
- }
157
-
158
- export interface ControlMapEntry extends FlowEntry {
159
- hash: string;
160
- }
161
-
162
- export interface DependencyProfile {
163
- internalDependencies: string[];
164
- externalDependencies: string[];
165
- unresolvedDependencies: string[];
166
- declaredExports: ExportSymbol[];
167
- importedSymbols: ImportedSymbolRef[];
168
- reExports: ReExportRef[];
169
- package?: string;
170
- file?: string;
171
- }
172
-
173
- export interface ExportSymbol {
174
- name: string;
175
- kind: 'value' | 'type' | 'unknown';
176
- isDefault?: boolean;
177
- lineStart?: number;
178
- lineEnd?: number;
179
- }
180
-
181
- export interface ImportedSymbolRef {
182
- sourceModule: string;
183
- resolvedModule?: string;
184
- importedName: string;
185
- localName: string;
186
- isTypeOnly: boolean;
187
- lineStart?: number;
188
- lineEnd?: number;
189
- }
190
-
191
- export interface ReExportRef {
192
- sourceModule: string;
193
- resolvedModule?: string;
194
- exportedAs: string;
195
- importedName: string;
196
- isStar: boolean;
197
- isTypeOnly: boolean;
198
- lineStart?: number;
199
- lineEnd?: number;
200
- }
201
-
202
- export interface DependencyState {
203
- files: Set<string>;
204
- outgoing: Map<string, Set<string>>;
205
- incoming: Map<string, Set<string>>;
206
- incomingFromTests: Map<string, Set<string>>;
207
- incomingFromProduction: Map<string, Set<string>>;
208
- externalCounts: Map<string, Set<string>>;
209
- unresolvedCounts: Map<string, Set<string>>;
210
- declaredExportsByFile: Map<string, ExportSymbol[]>;
211
- importedSymbolsByFile: Map<string, ImportedSymbolRef[]>;
212
- reExportsByFile: Map<string, ReExportRef[]>;
213
- }
214
-
215
- export interface DependencyRecord {
216
- file: string;
217
- outboundCount: number;
218
- inboundCount: number;
219
- inboundFromProduction: number;
220
- inboundFromTests: number;
221
- externalDependencyCount: number;
222
- unresolvedDependencyCount: number;
223
- }
224
-
225
- export interface FileCriticality {
226
- file: string;
227
- complexityRisk: number;
228
- highComplexityFunctions: number;
229
- functionCount: number;
230
- flows: number;
231
- score: number;
232
- complexitySum?: number;
233
- }
234
-
235
- export interface DuplicateGroup {
236
- hash: string;
237
- signature: string;
238
- kind: string;
239
- occurrences: number;
240
- filesCount: number;
241
- locations: FlowMapEntry[];
242
- }
243
-
244
- export interface RedundantFlowGroup {
245
- kind: string;
246
- occurrences: number;
247
- filesCount: number;
248
- locations: ControlMapEntry[];
249
- }
250
-
251
- export interface Cycle {
252
- path: string[];
253
- nodeCount: number;
254
- }
255
-
256
- export interface CriticalPath {
257
- start: string;
258
- path: string[];
259
- score: number;
260
- length: number;
261
- containsCycle: boolean;
262
- }
263
-
264
- export interface SccCluster {
265
- id: string;
266
- files: string[];
267
- nodeCount: number;
268
- edgeCount: number;
269
- entryEdges: number;
270
- exitEdges: number;
271
- hubFiles: string[];
272
- }
273
-
274
- export interface Chokepoint {
275
- file: string;
276
- score: number;
277
- reasons: string[];
278
- fanIn: number;
279
- fanOut: number;
280
- articulation: boolean;
281
- bridgeCount: number;
282
- cycleClusterCount: number;
283
- onCriticalPath: boolean;
284
- }
285
-
286
- export interface PackageGraphNode {
287
- package: string;
288
- inbound: number;
289
- outbound: number;
290
- internalFiles: number;
291
- }
292
-
293
- export interface PackageHotspot {
294
- from: string;
295
- to: string;
296
- edges: number;
297
- [key: string]: unknown;
298
- }
299
-
300
- export interface PackageGraphSummary {
301
- packageCount: number;
302
- edgeCount: number;
303
- packages: PackageGraphNode[];
304
- hotspots: PackageHotspot[];
305
- }
306
-
307
- export interface DependencySummary {
308
- totalModules: number;
309
- totalEdges: number;
310
- unresolvedEdgeCount: number;
311
- externalDependencyFiles: number;
312
- rootsCount: number;
313
- leavesCount: number;
314
- roots: string[];
315
- leaves: string[];
316
- criticalModules: CriticalModule[];
317
- testOnlyModules: TestOnlyModule[];
318
- unresolvedSample: string[];
319
- outgoingTop: ModuleCount[];
320
- inboundTop: ModuleCount[];
321
- cycles: Cycle[];
322
- criticalPaths: CriticalPath[];
323
- }
324
-
325
- export interface CriticalModule extends DependencyRecord {
326
- score: number;
327
- riskBand: string;
328
- [key: string]: unknown;
329
- }
330
-
331
- export interface HotFile {
332
- file: string;
333
- riskScore: number;
334
- fanIn: number;
335
- fanOut: number;
336
- complexityScore: number;
337
- exportCount: number;
338
- inCycle: boolean;
339
- onCriticalPath: boolean;
340
- }
341
-
342
- export interface TestOnlyModule extends DependencyRecord {
343
- lineStart?: number;
344
- lineEnd?: number;
345
- }
346
-
347
- export interface ModuleCount {
348
- file: string;
349
- count: number;
350
- score: number;
351
- }
352
-
353
- interface SuggestedFix {
354
- strategy: string;
355
- steps: string[];
356
- }
357
-
358
- interface LspHint {
359
- tool: 'lspFindReferences' | 'lspCallHierarchy' | 'lspGotoDefinition';
360
- symbolName: string;
361
- lineHint: number;
362
- file: string;
363
- expectedResult: string;
364
- }
365
-
366
- export type AnalysisLens = 'graph' | 'ast' | 'hybrid';
367
-
368
- export interface RecommendedValidation {
369
- summary: string;
370
- tools: string[];
371
- }
372
-
373
- export interface FlowTraceStep {
374
- file: string;
375
- lineStart: number;
376
- lineEnd: number;
377
- label: string;
378
- }
379
-
380
- export interface AnalysisSignal {
381
- kind: string;
382
- lens: AnalysisLens;
383
- title: string;
384
- summary: string;
385
- confidence: 'high' | 'medium' | 'low';
386
- score: number;
387
- files: string[];
388
- categories: string[];
389
- evidence: Record<string, unknown>;
390
- }
391
-
392
- export interface Finding {
393
- id: string;
394
- severity: 'critical' | 'high' | 'medium' | 'low' | 'info';
395
- category: string;
396
- file: string;
397
- lineStart: number;
398
- lineEnd: number;
399
- title: string;
400
- reason: string;
401
- files: string[];
402
- suggestedFix: SuggestedFix;
403
- impact?: string;
404
- tags?: string[];
405
- columnStart?: number;
406
- columnEnd?: number;
407
- lspHints?: LspHint[];
408
- ruleId?: string;
409
- analysisLens?: AnalysisLens;
410
- confidence?: 'high' | 'medium' | 'low';
411
- evidence?: Record<string, unknown>;
412
- correlatedSignals?: string[];
413
- recommendedValidation?: RecommendedValidation;
414
- flowTrace?: FlowTraceStep[];
415
- }
416
-
417
- export interface NodeTree {
418
- kind: string;
419
- startLine: number;
420
- endLine: number;
421
- children: NodeTree[];
422
- truncated?: boolean;
423
- }
424
-
425
- export interface TreeEntry {
426
- package: string;
427
- file: string;
428
- tree: NodeTree;
429
- }
430
-
431
- export interface SuspiciousString {
432
- lineStart: number;
433
- lineEnd: number;
434
- kind: 'hardcoded-secret' | 'sql-injection' | 'secret-assignment';
435
- snippet?: string;
436
- context?:
437
- | 'literal'
438
- | 'regex-definition'
439
- | 'template'
440
- | 'comment'
441
- | 'error-message';
442
- }
443
-
444
- export interface TimerCall {
445
- kind: 'setInterval' | 'setTimeout';
446
- lineStart: number;
447
- lineEnd: number;
448
- hasCleanup: boolean;
449
- }
450
-
451
- export interface TestBlock {
452
- name: string;
453
- lineStart: number;
454
- lineEnd: number;
455
- assertionCount: number;
456
- }
457
-
458
- export interface FocusedTestCall {
459
- kind:
460
- | 'it.only'
461
- | 'test.only'
462
- | 'describe.only'
463
- | 'it.skip'
464
- | 'test.skip'
465
- | 'describe.skip'
466
- | 'it.todo'
467
- | 'test.todo';
468
- lineStart: number;
469
- lineEnd: number;
470
- }
471
-
472
- export interface TimerControlCall {
473
- kind:
474
- | 'jest.useFakeTimers'
475
- | 'jest.useRealTimers'
476
- | 'vi.useFakeTimers'
477
- | 'vi.useRealTimers'
478
- | 'other';
479
- lineStart: number;
480
- lineEnd: number;
481
- }
482
-
483
- export interface MockControlCall extends CodeLocation {
484
- kind: 'spy' | 'stub' | 'restore' | 'restoreAll';
485
- target?: string;
486
- }
487
-
488
- export interface TestProfile {
489
- testBlocks: TestBlock[];
490
- mockCalls: CodeLocation[];
491
- setupCalls: Array<{
492
- kind: 'beforeAll' | 'beforeEach' | 'afterAll' | 'afterEach';
493
- lineStart: number;
494
- }>;
495
- mutableStateDecls: CodeLocation[];
496
- focusedCalls: FocusedTestCall[];
497
- timerControls: TimerControlCall[];
498
- mockRestores: MockControlCall[];
499
- spyOrStubCalls: MockControlCall[];
500
- }
501
-
502
- export interface InputSourceInfo {
503
- functionName: string;
504
- lineStart: number;
505
- lineEnd: number;
506
- sourceParams: string[];
507
- hasSinkInBody: boolean;
508
- sinkKinds: string[];
509
- hasValidation: boolean;
510
- callsWithInputArgs: Array<{ callee: string; lineStart: number }>;
511
- paramConfidence: 'high' | 'medium' | 'low';
512
- }
513
-
514
- export type TopLevelEffectKind =
515
- | 'sync-io'
516
- | 'exec-sync'
517
- | 'eval'
518
- | 'timer'
519
- | 'listener'
520
- | 'process-handler'
521
- | 'side-effect-import'
522
- | 'top-level-await'
523
- | 'dynamic-import';
524
-
525
- export interface TopLevelEffect {
526
- kind: TopLevelEffectKind;
527
- lineStart: number;
528
- lineEnd: number;
529
- detail: string;
530
- weight: number;
531
- confidence: 'high' | 'medium' | 'low';
532
- }
533
-
534
- export interface EffectProfile {
535
- totalEffects: number;
536
- totalWeight: number;
537
- byKind: Partial<Record<TopLevelEffectKind, number>>;
538
- highestRisk: TopLevelEffectKind | null;
539
- }
540
-
541
- export interface SymbolUsageSummary {
542
- declaredExportCount: number;
543
- importedSymbolCount: number;
544
- internalImportCount: number;
545
- externalImportCount: number;
546
- reExportCount: number;
547
- dominantInternalDependency: string | null;
548
- }
549
-
550
- export interface BoundaryRoleHint {
551
- role: string;
552
- confidence: 'high' | 'medium' | 'low';
553
- reasons: string[];
554
- }
555
-
556
- export interface CfgFlags {
557
- hasValidationChecks: boolean;
558
- hasCleanupHooks: boolean;
559
- exitPointCount: number;
560
- asyncBoundaryCount: number;
561
- hasTopLevelEffects: boolean;
562
- }
563
-
564
- export interface FileEntry {
565
- package: string;
566
- file: string;
567
- parseEngine: string;
568
- nodeCount: number;
569
- kindCounts: Record<string, number>;
570
- functions: FunctionEntry[];
571
- flows: FlowEntry[];
572
- dependencyProfile: DependencyProfile;
573
- emptyCatches?: CodeLocation[];
574
- switchesWithoutDefault?: CodeLocation[];
575
- anyCount?: number;
576
- magicNumbers?: MagicNumberEntry[];
577
- typeAssertionEscapes?: {
578
- asAny: CodeLocation[];
579
- doubleAssertion: CodeLocation[];
580
- nonNull: CodeLocation[];
581
- };
582
- asyncWithoutAwait?: Array<{
583
- name: string;
584
- lineStart: number;
585
- lineEnd: number;
586
- }>;
587
- unprotectedAsync?: Array<{
588
- name: string;
589
- awaitCount: number;
590
- lineStart: number;
591
- lineEnd: number;
592
- }>;
593
- evalUsages?: CodeLocation[];
594
- unsafeHtmlAssignments?: CodeLocation[];
595
- suspiciousStrings?: SuspiciousString[];
596
- regexLiterals?: Array<{
597
- lineStart: number;
598
- lineEnd: number;
599
- pattern: string;
600
- }>;
601
- awaitInLoopLocations?: CodeLocation[];
602
- syncIoCalls?: Array<{ name: string; lineStart: number; lineEnd: number }>;
603
- timerCalls?: TimerCall[];
604
- listenerRegistrations?: CodeLocation[];
605
- listenerRemovals?: CodeLocation[];
606
- testProfile?: TestProfile;
607
- inputSources?: InputSourceInfo[];
608
- treeSitterNodeCount?: number;
609
- treeSitterError?: string;
610
- parserFallback?: string;
611
- topLevelEffects?: TopLevelEffect[];
612
- prototypePollutionSites?: Array<{
613
- kind: string;
614
- detail: string;
615
- lineStart: number;
616
- lineEnd: number;
617
- guarded: boolean;
618
- }>;
619
- effectProfile?: EffectProfile;
620
- symbolUsageSummary?: SymbolUsageSummary;
621
- boundaryRoleHints?: BoundaryRoleHint[];
622
- cfgFlags?: CfgFlags;
623
- consoleLogs?: ConsoleLogEntry[];
624
- messageChains?: MessageChainEntry[];
625
- issueIds?: string[];
626
- }
627
-
628
- export interface PackageFileSummary {
629
- fileCount: number;
630
- nodeCount: number;
631
- functionCount: number;
632
- flowCount: number;
633
- kindCounts: Record<string, number>;
634
- functions: FunctionEntry[];
635
- flows: FlowEntry[];
636
- }
637
-
638
- export interface PackageInfo {
639
- name: string;
640
- dir: string;
641
- folder: string;
642
- }
643
-
644
- export interface DuplicateFlowHint {
645
- type: string;
646
- message: string;
647
- file: string | undefined;
648
- lineStart: number | undefined;
649
- lineEnd: number | undefined;
650
- details: string;
651
- }
652
-
653
- export interface FlowMaps {
654
- flowMap: Map<string, FlowMapEntry[]>;
655
- controlMap: Map<string, ControlMapEntry[]>;
656
- }
657
-
658
- export interface TreeSitterFileEntry {
659
- parseEngine: string;
660
- nodeCount: number;
661
- functions: FunctionEntry[];
662
- flows: FlowEntry[];
663
- tree?: NodeTree;
664
- }
665
-
666
- export interface TreeSitterRuntime {
667
- available: boolean;
668
- parserTs: Parser | null;
669
- parserTsx: Parser | null;
670
- error?: string;
671
- }
672
-
673
- export interface NodeBudget {
674
- size: number;
675
- }
676
-
677
-
678
- export interface WalkResult {
679
- path: string[];
680
- score: number;
681
- containsCycle: boolean;
682
- }
@@ -1,33 +0,0 @@
1
- /**
2
- * Type adapter for converting validated query inputs to MCP tool parameters.
3
- * All MCP tools expect { queries: T[] } format.
4
- *
5
- * @module types/toolTypes
6
- */
7
-
8
- /**
9
- * Base query parameters that all tool queries may include.
10
- */
11
- export interface BaseQueryParams {
12
- mainResearchGoal?: string;
13
- researchGoal?: string;
14
- reasoning?: string;
15
- [key: string]: unknown;
16
- }
17
-
18
- /**
19
- * Result type for tool query parameters.
20
- */
21
- export interface QueryParamsResult<T extends BaseQueryParams = BaseQueryParams> {
22
- queries: T[];
23
- }
24
-
25
- /**
26
- * Convert validated query to MCP tool format.
27
- * Works for all tools - local, GitHub, LSP, and package search.
28
- */
29
- export function toQueryParams<T extends BaseQueryParams>(
30
- validated: T[]
31
- ): QueryParamsResult<T> {
32
- return { queries: validated };
33
- }