octocode-cli 1.2.8 → 1.2.10

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 +45 -38
  2. package/out/octocode-cli.js +73 -11763
  3. package/package.json +35 -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 +413 -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
@@ -0,0 +1,265 @@
1
+ # Code Quality Scan Report
2
+
3
+ **Generated**: 2026-03-22T10:40:13.784Z
4
+ **Root**: `/Users/guybary/Documents/octocode-mcp/skills/octocode-research`
5
+
6
+ ## Scan Scope
7
+
8
+ | Metric | Count |
9
+ |--------|-------|
10
+ | Files analyzed | 36 |
11
+ | Functions | 286 |
12
+ | Flow nodes | 357 |
13
+ | Dependency files | 53 |
14
+ | Packages | 1 |
15
+
16
+ ## Findings Overview
17
+
18
+ | Severity | Count |
19
+ |----------|-------|
20
+ | Critical | 7 |
21
+ | High | 126 |
22
+ | Medium | 90 |
23
+ | Low | 84 |
24
+ | **Total** | **307** |
25
+
26
+ > **Scoped scan**: Only showing findings for: `src`
27
+
28
+ > **Semantic analysis**: TypeChecker + LanguageService enabled (14 additional categories)
29
+
30
+ ## Health Scores
31
+
32
+ | Pillar | Score | Grade |
33
+ |--------|-------|-------|
34
+ | **Overall** | **17/100** | **F** |
35
+ | Architecture | 38/100 | D |
36
+ | Code Quality | 68/100 | B |
37
+ | Dead Code & Hygiene | 29/100 | D |
38
+ | Security | 73/100 | B |
39
+ | Test Quality | 100/100 | A |
40
+
41
+ ## Top Concern Tags
42
+
43
+ Searchable tags across all findings — use to filter `findings.json` with `jq`.
44
+
45
+ - `dead-code`: 195 findings
46
+ - `semantic`: 135 findings
47
+ - `refactoring`: 77 findings
48
+ - `module-surface`: 73 findings
49
+ - `architecture`: 70 findings
50
+ - `cleanup`: 59 findings
51
+ - `api-surface`: 58 findings
52
+ - `dependency`: 26 findings
53
+ - `security`: 22 findings
54
+ - `performance`: 20 findings
55
+ - `change-risk`: 17 findings
56
+ - `injection`: 15 findings
57
+
58
+ ## Analysis Signals
59
+
60
+ - **Graph Signal**: src/utils/responseBuilder.ts concentrates dependency pressure (articulation point, 1 bridge edge(s), on critical path, high complexity risk (109)).
61
+ - **AST Signal**: src/server-init.ts performs import-time work that matches the reported side-effect risk.
62
+ - **Combined Interpretation**: Structural chokepoint and Hidden initialization logic both appear in this scan, so use a hybrid investigation instead of a single-lens conclusion.
63
+ - **Confidence**: medium
64
+ - **Recommended Validation**: navigate to the awaited call to check if parallelization is safe (tools: localSearchCode -> lspGotoDefinition)
65
+
66
+ **Investigation Prompts**
67
+ - Inspect src/utils/responseBuilder.ts first and validate the graph claim with localSearchCode plus LSP navigation.
68
+ - Use file-inventory.json for src/server-init.ts to explain why the code shape matches the finding.
69
+ - Use a hybrid investigation before proposing a refactor because the signals do not fully align yet.
70
+ - Cross-check the top hotspot src/utils/logger.ts with the strongest architecture finding before editing code.
71
+
72
+ ## Architecture Health
73
+
74
+ > 67 findings (score: 38/100) — see [`architecture.json`](./architecture.json)
75
+
76
+ | Metric | Value |
77
+ |--------|-------|
78
+ | Modules | 53 |
79
+ | Import edges | 93 |
80
+ | Cycles | 0 |
81
+ | Critical paths | 12 |
82
+ | Root modules | 21 |
83
+ | Leaf modules | 22 |
84
+ | Test-only modules | 4 |
85
+ | Unresolved imports | 0 |
86
+
87
+ - `dependency-cycle`: 0
88
+ - `dependency-critical-path`: 7
89
+ - `dependency-test-only`: 4
90
+ - `architecture-sdp-violation`: 1
91
+ - `high-coupling`: 0
92
+ - `god-module-coupling`: 0
93
+ - `orphan-module`: 3
94
+ - `unreachable-module`: 12
95
+ - `layer-violation`: 0
96
+ - `low-cohesion`: 2
97
+ - `mega-folder`: 0
98
+ - `distance-from-main-sequence`: 7
99
+ - `feature-envy`: 3
100
+ - `untested-critical-code`: 10
101
+ - `over-abstraction`: 14
102
+ - `concrete-dependency`: 0
103
+ - `circular-type-dependency`: 0
104
+ - `shotgun-surgery`: 0
105
+ - `import-side-effect-risk`: 2
106
+ - `cycle-cluster`: 0
107
+ - `broker-module`: 0
108
+ - `bridge-module`: 0
109
+ - `package-boundary-chatter`: 0
110
+ - `startup-risk-hub`: 0
111
+ - `namespace-import`: 0
112
+ - `commonjs-in-esm`: 0
113
+ - `export-star-leak`: 2
114
+ - `mixed-module-format`: 0
115
+
116
+ ## Change Risk Hotspots
117
+
118
+ Files most dangerous to change — high fan-in, complexity, or cycle membership.
119
+
120
+ | File | Risk | Fan-In | Fan-Out | Complexity | Exports | Cycle | Critical Path |
121
+ |------|------|--------|---------|------------|---------|-------|---------------|
122
+ | `src/utils/logger.ts` | 97 | 4 | 2 | 112 | 12 | - | Y |
123
+ | `src/utils/responseBuilder.ts` | 87 | 6 | 0 | 109 | 3 | - | Y |
124
+ | `src/validation/schemas.ts` | 84 | 2 | 1 | 37 | 39 | - | - |
125
+ | `src/utils/circuitBreaker.ts` | 75 | 4 | 3 | 70 | 11 | - | Y |
126
+ | `src/routes/tools.ts` | 58 | 1 | 8 | 79 | 1 | - | Y |
127
+ | `src/types/guards.ts` | 55 | 6 | 0 | 40 | 11 | - | - |
128
+ | `src/server.ts` | 54 | 0 | 11 | 71 | 2 | - | Y |
129
+ | `src/routes/lsp.ts` | 51 | 1 | 7 | 65 | 1 | - | Y |
130
+ | `src/utils/retry.ts` | 50 | 2 | 1 | 66 | 7 | - | - |
131
+ | `src/routes/github.ts` | 45 | 1 | 7 | 54 | 1 | - | Y |
132
+ | `src/types/errorGuards.ts` | 45 | 1 | 0 | 47 | 12 | - | - |
133
+ | `src/utils/resilience.ts` | 45 | 5 | 3 | 21 | 5 | - | Y |
134
+ | `src/utils/responseFactory.ts` | 44 | 4 | 2 | 38 | 8 | - | - |
135
+ | `src/routes/local.ts` | 41 | 1 | 7 | 46 | 1 | - | Y |
136
+ | `src/utils/responseParser.ts` | 41 | 3 | 0 | 43 | 7 | - | - |
137
+
138
+ ## Code Quality
139
+
140
+ > 41 findings (score: 68/100) — see [`code-quality.json`](./code-quality.json)
141
+
142
+ - `duplicate-function-body`: 0
143
+ - `duplicate-flow-structure`: 0
144
+ - `function-optimization`: 0
145
+ - `cognitive-complexity`: 4
146
+ - `god-module`: 1
147
+ - `god-function`: 0
148
+ - `halstead-effort`: 0
149
+ - `low-maintainability`: 0
150
+ - `excessive-parameters`: 2
151
+ - `unsafe-any`: 0
152
+ - `empty-catch`: 3
153
+ - `switch-no-default`: 0
154
+ - `unused-parameter`: 0
155
+ - `deep-override-chain`: 0
156
+ - `interface-compliance`: 0
157
+ - `type-assertion-escape`: 2
158
+ - `promise-misuse`: 2
159
+ - `narrowable-type`: 4
160
+ - `missing-error-boundary`: 3
161
+ - `await-in-loop`: 4
162
+ - `sync-io`: 4
163
+ - `uncleared-timer`: 2
164
+ - `listener-leak-risk`: 6
165
+ - `unbounded-collection`: 0
166
+ - `similar-function-body`: 4
167
+ - `message-chain`: 0
168
+
169
+ ## Dead Code & Hygiene
170
+
171
+ > 177 findings (score: 29/100) — see [`dead-code.json`](./dead-code.json)
172
+
173
+ - `dead-export`: 55
174
+ - `dead-re-export`: 1
175
+ - `re-export-duplication`: 1
176
+ - `re-export-shadowed`: 0
177
+ - `unused-npm-dependency`: 0
178
+ - `package-boundary-violation`: 0
179
+ - `barrel-explosion`: 0
180
+ - `unused-import`: 0
181
+ - `orphan-implementation`: 0
182
+ - `move-to-caller`: 73
183
+ - `semantic-dead-export`: 44
184
+ - `dead-file`: 3
185
+
186
+ ## Security
187
+
188
+ > 22 findings (score: 73/100) — see [`security.json`](./security.json)
189
+
190
+ - `hardcoded-secret`: 1
191
+ - `eval-usage`: 0
192
+ - `unsafe-html`: 0
193
+ - `sql-injection-risk`: 2
194
+ - `unsafe-regex`: 0
195
+ - `prototype-pollution-risk`: 6
196
+ - `unvalidated-input-sink`: 7
197
+ - `input-passthrough-risk`: 6
198
+ - `path-traversal-risk`: 0
199
+ - `command-injection-risk`: 0
200
+ - `debug-log-leakage`: 0
201
+ - `sensitive-data-logging`: 0
202
+
203
+ ## Test Quality
204
+
205
+ > 0 findings (score: 100/100) — no `test-quality.json` written for this scan
206
+
207
+ - `low-assertion-density`: 0
208
+ - `test-no-assertion`: 0
209
+ - `excessive-mocking`: 0
210
+ - `shared-mutable-state`: 0
211
+ - `missing-test-cleanup`: 0
212
+ - `focused-test`: 0
213
+ - `fake-timer-no-restore`: 0
214
+ - `missing-mock-restoration`: 0
215
+
216
+ > **Note**: Test Quality reflects analyzed test files only. 10 modules flagged as `untested-critical-code` (architecture pillar) have no test coverage — use `--include-tests` for test-quality analysis.
217
+
218
+ ## Top Recommendations
219
+
220
+ - **[CRITICAL]** `src/server.ts` — Critical dependency chain risk: 6 files (2 entry points) *(dependency-critical-path)*
221
+ - **[CRITICAL]** `src/__tests__/integration/routes.test.ts` — Critical dependency chain risk: 6 files (2 entry points) *(dependency-critical-path)*
222
+ - **[HIGH]** `src/server-init.ts` — await inside loop — sequential async execution *(await-in-loop)*
223
+ - **[HIGH]** `src/server-init.ts` — await inside loop — sequential async execution *(await-in-loop)*
224
+ - **[HIGH]** `src/utils/responseParser.ts` — High cognitive complexity: parseToolResponse (29) *(cognitive-complexity)*
225
+ - **[HIGH]** `src/utils/responseParser.ts` — High cognitive complexity: parseToolResponseBulk (30) *(cognitive-complexity)*
226
+ - **[HIGH]** `src/types/errorGuards.ts` — Unused export: hasMessage *(dead-export)*
227
+ - **[HIGH]** `src/types/errorGuards.ts` — Unused export: hasHeaders *(dead-export)*
228
+ - **[HIGH]** `src/mcpCache.ts` — Distance from Main Sequence: src/mcpCache.ts (D=1.00) *(distance-from-main-sequence)*
229
+ - **[HIGH]** `src/types/guards.ts` — Distance from Main Sequence: src/types/guards.ts (D=1.00) *(distance-from-main-sequence)*
230
+
231
+ ## AST Trees (`ast-trees.txt`)
232
+
233
+ Compact indented text format — each node is `Kind[startLine:endLine]`, nesting = indentation.
234
+
235
+ Run these commands from the skill directory. Current scan: `.octocode/scan/2026-03-22T10-40-10-469Z`.
236
+
237
+ ```
238
+ SourceFile[1:152]
239
+ ImportDeclaration[1]
240
+ FunctionDeclaration[3:20]
241
+ Block[4:19]
242
+ IfStatement[5:12] ...
243
+ ```
244
+
245
+ **Smart navigation:**
246
+
247
+ - Find functions: `node scripts/ast/tree-search.js -i "/Users/guybary/Documents/octocode-mcp/skills/octocode-research/.octocode/scan/2026-03-22T10-40-10-469Z/ast-trees.txt" -k function_declaration --limit 25`
248
+ - Find classes: `node scripts/ast/tree-search.js -i "/Users/guybary/Documents/octocode-mcp/skills/octocode-research/.octocode/scan/2026-03-22T10-40-10-469Z/ast-trees.txt" -k class_declaration --limit 25`
249
+ - Find control flow: `node scripts/ast/tree-search.js -i "/Users/guybary/Documents/octocode-mcp/skills/octocode-research/.octocode/scan/2026-03-22T10-40-10-469Z/ast-trees.txt" -p 'IfStatement|SwitchStatement|ForStatement|WhileStatement' --limit 25`
250
+ - Narrow to one file: `node scripts/ast/tree-search.js -i "/Users/guybary/Documents/octocode-mcp/skills/octocode-research/.octocode/scan/2026-03-22T10-40-10-469Z/ast-trees.txt" --file "/Users/guybary/Documents/octocode-mcp/skills/octocode-research/src" -k function_declaration --limit 10`
251
+ - Raw text fallback: `rg 'FunctionDeclaration|IfStatement' "/Users/guybary/Documents/octocode-mcp/skills/octocode-research/.octocode/scan/2026-03-22T10-40-10-469Z/ast-trees.txt"`
252
+
253
+ ## Output Files
254
+
255
+ | File | Size | Description |
256
+ |------|------|-------------|
257
+ | [`summary.json`](./summary.json) | 29.0 KB | Scan metadata, agent output, parse errors |
258
+ | [`architecture.json`](./architecture.json) | 134.4 KB | Dependency graph, cycles, critical paths, architecture findings |
259
+ | [`code-quality.json`](./code-quality.json) | 56.5 KB | Duplicate detection, complexity, god modules/functions |
260
+ | [`dead-code.json`](./dead-code.json) | 247.2 KB | Dead files/exports/re-exports, unused deps, boundary violations |
261
+ | [`file-inventory.json`](./file-inventory.json) | 400.4 KB | Per-file function/flow/dependency details |
262
+ | [`findings.json`](./findings.json) | 437.8 KB | All findings across all categories (master list) |
263
+ | [`security.json`](./security.json) | 42.6 KB | security |
264
+ | [`graph.md`](./graph.md) | 9.7 KB | Mermaid dependency graph |
265
+ | [`ast-trees.txt`](./ast-trees.txt) | 141.0 KB | AST tree snapshots (compact indented text — grep/regex friendly) |
@@ -0,0 +1,60 @@
1
+ # Octocode Research — Changelog
2
+
3
+ ## Detached Daemon Architecture
4
+
5
+ `server-init.ts` no longer keeps the server as a child process. The server is now spawned **detached** (`detached: true`, `child.unref()`) so no client owns it. Every `server-init` invocation exits after confirming health — whether it spawned the server or found it already running. The server self-manages its lifecycle via the existing 30-minute idle timeout and SIGTERM handling.
6
+
7
+ - **PID file**: `server.ts` writes `~/.octocode/research-server-{PORT}.pid` on startup, removes on shutdown
8
+ - **Multi-client safe**: multiple agents/IDEs share one server instance without ownership conflicts
9
+ - **`/health` endpoint**: now includes `pid` field and `processManager: 'self (detached daemon)'`
10
+ - **Tests**: lifecycle tests updated to verify detached behavior (init exits, server survives, PID file lifecycle)
11
+
12
+ ---
13
+
14
+ **36 files changed** | +1,456 −2,391 | Net: **−935 lines**
15
+
16
+ ---
17
+
18
+ ## Dead Code Removal
19
+
20
+ Deleted `src/types/toolTypes.ts`, `src/utils/logEmoji.ts`. Removed unused exports from 15 files (`errorGuards`, `guards`, `responses`, `mcp`, `circuitBreaker`, `logger`, `responseFactory`, `responseParser`, `retry`, `resilience`, `routeFactory`, `schemas`, `toolCallSchema`, `httpPreprocess`, `index`). Removed unused `queryParser` middleware.
21
+
22
+ ## Bug Fixes
23
+
24
+ - **Port fallback**: `server.ts` now reads `OCTOCODE_PORT` like `server-init.ts`
25
+ - **Version mismatch**: routes hardcoded `2.0.0` while package.json said `2.2.0` — fixed via build-time `__PACKAGE_VERSION__` injection
26
+ - **Missing routes**: added `GET /tools/info` and `GET /tools/metadata` to 404 handler + startup log
27
+ - **PM2 cleanup**: replaced `processManager: 'pm2'`, removed `process.send('ready')`
28
+ - **Empty JSON Schemas**: `zod-to-json-schema` produced empty `{}` for Zod v4 schemas — replaced with `z.toJSONSchema()` (native Zod v4), removed `zod-to-json-schema` dependency. All 13 tool schemas now return full properties, types, and constraints.
29
+
30
+ ## `bin` → Init Lifecycle
31
+
32
+ `"bin"` now points to `server-init.js` (was `server.js`). `npx octocode-research` gets health polling, parent-child lifecycle, and graceful shutdown. All PM2 scripts removed.
33
+
34
+ ## Version — Single Source of Truth
35
+
36
+ `tsdown.config.ts` reads `package.json` at build time, injects `__PACKAGE_VERSION__`. Version bump = edit `package.json` only.
37
+
38
+ ## `server-init.ts` Rewrite (288 → 55 lines)
39
+
40
+ PM2-based init replaced with standalone lifecycle: health-check → spawn child → exponential backoff poll → stay alive → signal forwarding.
41
+
42
+ ## Route Refactors
43
+
44
+ Extracted helpers in `lsp.ts` and `package.ts` to reduce cognitive complexity.
45
+
46
+ ## Documentation
47
+
48
+ - **SKILL.md** (→ 380 lines): all 11 routes, 503 warm-up note, env var table, parallel/session sections extracted to `references/`
49
+ - **README.md** (→ 209 lines): "Why a Server?" section, corrected examples with required `id` field, accurate per-circuit resilience table
50
+ - **package.json**: renamed `octocode-skill` → `octocode-research`, removed PM2 scripts, removed `zod-to-json-schema`
51
+
52
+ ## New Files
53
+
54
+ - `references/SESSION_MANAGEMENT.md` — checkpoint/resume protocol
55
+ - `src/__tests__/integration/serverLifecycle.test.ts` — init/shutdown tests
56
+ - `src/__tests__/unit/schemas.test.ts` — Zod schema validation tests (509 lines)
57
+
58
+ ## Verification
59
+
60
+ Build OK | Lint 0 errors | Tests 215/215