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,509 @@
1
+ /**
2
+ * Unit tests for HTTP-compatible Zod schemas.
3
+ *
4
+ * Tests the composed schemas in validation/schemas.ts:
5
+ * - Preprocessing transforms (string → number/boolean/array)
6
+ * - Alias mappings (context → contextLines, maxResults → limit)
7
+ * - Research defaults injection (id, mainResearchGoal, etc.)
8
+ * - Required field validation
9
+ * - Refinement checks
10
+ */
11
+
12
+ import { describe, it, expect } from 'vitest';
13
+ import {
14
+ localSearchSchema,
15
+ localContentSchema,
16
+ localFindSchema,
17
+ localStructureSchema,
18
+ lspDefinitionSchema,
19
+ lspReferencesSchema,
20
+ lspCallsSchema,
21
+ githubSearchSchema,
22
+ githubContentSchema,
23
+ githubReposSchema,
24
+ githubStructureSchema,
25
+ githubPRsSchema,
26
+ packageSearchSchema,
27
+ } from '../../validation/schemas.js';
28
+
29
+ // =============================================================================
30
+ // Local Schemas
31
+ // =============================================================================
32
+
33
+ describe('localSearchSchema', () => {
34
+ it('parses minimal valid input', () => {
35
+ const result = localSearchSchema.safeParse({
36
+ pattern: 'useState',
37
+ path: '/project/src',
38
+ });
39
+ expect(result.success).toBe(true);
40
+ if (result.success) {
41
+ expect(result.data.pattern).toBe('useState');
42
+ expect(result.data.path).toBe('/project/src');
43
+ }
44
+ });
45
+
46
+ it('converts numeric strings to numbers', () => {
47
+ const result = localSearchSchema.safeParse({
48
+ pattern: 'test',
49
+ path: '/project',
50
+ contextLines: '5',
51
+ maxFiles: '10',
52
+ limit: '100',
53
+ });
54
+ expect(result.success).toBe(true);
55
+ if (result.success) {
56
+ expect(result.data.contextLines).toBe(5);
57
+ expect(result.data.maxFiles).toBe(10);
58
+ expect(result.data.limit).toBe(100);
59
+ }
60
+ });
61
+
62
+ it('converts boolean strings', () => {
63
+ const result = localSearchSchema.safeParse({
64
+ pattern: 'test',
65
+ path: '/project',
66
+ filesOnly: 'true',
67
+ caseInsensitive: 'false',
68
+ hidden: 'true',
69
+ });
70
+ expect(result.success).toBe(true);
71
+ if (result.success) {
72
+ expect(result.data.filesOnly).toBe(true);
73
+ expect(result.data.caseInsensitive).toBe(false);
74
+ expect(result.data.hidden).toBe(true);
75
+ }
76
+ });
77
+
78
+ it('maps deprecated context alias to contextLines', () => {
79
+ const result = localSearchSchema.safeParse({
80
+ pattern: 'test',
81
+ path: '/project',
82
+ context: '3',
83
+ });
84
+ expect(result.success).toBe(true);
85
+ if (result.success) {
86
+ expect(result.data.contextLines).toBe(3);
87
+ }
88
+ });
89
+
90
+ it('maps deprecated maxResults alias to limit', () => {
91
+ const result = localSearchSchema.safeParse({
92
+ pattern: 'test',
93
+ path: '/project',
94
+ maxResults: '50',
95
+ });
96
+ expect(result.success).toBe(true);
97
+ if (result.success) {
98
+ expect(result.data.limit).toBe(50);
99
+ }
100
+ });
101
+
102
+ it('injects research defaults', () => {
103
+ const result = localSearchSchema.safeParse({
104
+ pattern: 'test',
105
+ path: '/project',
106
+ });
107
+ expect(result.success).toBe(true);
108
+ if (result.success) {
109
+ expect(result.data.mainResearchGoal).toBe('HTTP API request');
110
+ expect(result.data.researchGoal).toBe('Execute tool via HTTP');
111
+ expect(result.data.reasoning).toBe('HTTP API call');
112
+ expect(result.data.id).toMatch(/^http-\d+$/);
113
+ }
114
+ });
115
+
116
+ it('preserves custom research context', () => {
117
+ const result = localSearchSchema.safeParse({
118
+ pattern: 'test',
119
+ path: '/project',
120
+ mainResearchGoal: 'Custom goal',
121
+ researchGoal: 'Custom research',
122
+ reasoning: 'Custom reason',
123
+ });
124
+ expect(result.success).toBe(true);
125
+ if (result.success) {
126
+ expect(result.data.mainResearchGoal).toBe('Custom goal');
127
+ expect(result.data.researchGoal).toBe('Custom research');
128
+ expect(result.data.reasoning).toBe('Custom reason');
129
+ }
130
+ });
131
+
132
+ it('rejects empty pattern', () => {
133
+ const result = localSearchSchema.safeParse({
134
+ pattern: '',
135
+ path: '/project',
136
+ });
137
+ expect(result.success).toBe(false);
138
+ });
139
+
140
+ it('rejects path traversal', () => {
141
+ const result = localSearchSchema.safeParse({
142
+ pattern: 'test',
143
+ path: '../../../etc/passwd',
144
+ });
145
+ expect(result.success).toBe(false);
146
+ });
147
+
148
+ it('converts comma-separated include to array', () => {
149
+ const result = localSearchSchema.safeParse({
150
+ pattern: 'test',
151
+ path: '/project',
152
+ include: 'ts,js,tsx',
153
+ });
154
+ expect(result.success).toBe(true);
155
+ if (result.success) {
156
+ expect(result.data.include).toEqual(['ts', 'js', 'tsx']);
157
+ }
158
+ });
159
+ });
160
+
161
+ describe('localContentSchema', () => {
162
+ it('parses minimal valid input', () => {
163
+ const result = localContentSchema.safeParse({ path: '/project/file.ts' });
164
+ expect(result.success).toBe(true);
165
+ });
166
+
167
+ it('converts line numbers from strings', () => {
168
+ const result = localContentSchema.safeParse({
169
+ path: '/project/file.ts',
170
+ startLine: '10',
171
+ endLine: '50',
172
+ });
173
+ expect(result.success).toBe(true);
174
+ if (result.success) {
175
+ expect(result.data.startLine).toBe(10);
176
+ expect(result.data.endLine).toBe(50);
177
+ }
178
+ });
179
+
180
+ it('converts fullContent boolean', () => {
181
+ const result = localContentSchema.safeParse({
182
+ path: '/project/file.ts',
183
+ fullContent: 'true',
184
+ });
185
+ expect(result.success).toBe(true);
186
+ if (result.success) {
187
+ expect(result.data.fullContent).toBe(true);
188
+ }
189
+ });
190
+ });
191
+
192
+ describe('localFindSchema', () => {
193
+ it('parses minimal valid input', () => {
194
+ const result = localFindSchema.safeParse({ path: '/project' });
195
+ expect(result.success).toBe(true);
196
+ });
197
+
198
+ it('maps deprecated pattern to name', () => {
199
+ const result = localFindSchema.safeParse({
200
+ path: '/project',
201
+ pattern: '*.ts',
202
+ });
203
+ expect(result.success).toBe(true);
204
+ if (result.success) {
205
+ expect(result.data.name).toBe('*.ts');
206
+ }
207
+ });
208
+
209
+ it('transforms file type codes', () => {
210
+ const result = localFindSchema.safeParse({
211
+ path: '/project',
212
+ type: 'file',
213
+ });
214
+ expect(result.success).toBe(true);
215
+ if (result.success) {
216
+ expect(result.data.type).toBe('f');
217
+ }
218
+ });
219
+
220
+ it('passes through short type codes', () => {
221
+ const result = localFindSchema.safeParse({
222
+ path: '/project',
223
+ type: 'd',
224
+ });
225
+ expect(result.success).toBe(true);
226
+ if (result.success) {
227
+ expect(result.data.type).toBe('d');
228
+ }
229
+ });
230
+ });
231
+
232
+ describe('localStructureSchema', () => {
233
+ it('parses with depth as string', () => {
234
+ const result = localStructureSchema.safeParse({
235
+ path: '/project',
236
+ depth: '3',
237
+ });
238
+ expect(result.success).toBe(true);
239
+ if (result.success) {
240
+ expect(result.data.depth).toBe(3);
241
+ }
242
+ });
243
+
244
+ it('maps showHidden alias to hidden', () => {
245
+ const result = localStructureSchema.safeParse({
246
+ path: '/project',
247
+ showHidden: 'true',
248
+ });
249
+ expect(result.success).toBe(true);
250
+ if (result.success) {
251
+ expect(result.data.hidden).toBe(true);
252
+ }
253
+ });
254
+ });
255
+
256
+ // =============================================================================
257
+ // LSP Schemas
258
+ // =============================================================================
259
+
260
+ describe('lspDefinitionSchema', () => {
261
+ it('parses valid input with string numbers', () => {
262
+ const result = lspDefinitionSchema.safeParse({
263
+ uri: '/project/src/index.ts',
264
+ symbolName: 'MyClass',
265
+ lineHint: '42',
266
+ });
267
+ expect(result.success).toBe(true);
268
+ if (result.success) {
269
+ expect(result.data.lineHint).toBe(42);
270
+ expect(result.data.contextLines).toBe(5); // default
271
+ expect(result.data.orderHint).toBe(0); // default
272
+ }
273
+ });
274
+
275
+ it('rejects lineHint < 1', () => {
276
+ const result = lspDefinitionSchema.safeParse({
277
+ uri: '/project/src/index.ts',
278
+ symbolName: 'MyClass',
279
+ lineHint: '0',
280
+ });
281
+ expect(result.success).toBe(false);
282
+ });
283
+
284
+ it('rejects empty symbolName', () => {
285
+ const result = lspDefinitionSchema.safeParse({
286
+ uri: '/project/src/index.ts',
287
+ symbolName: '',
288
+ lineHint: '10',
289
+ });
290
+ expect(result.success).toBe(false);
291
+ });
292
+
293
+ it('rejects path traversal in uri', () => {
294
+ const result = lspDefinitionSchema.safeParse({
295
+ uri: '../../../etc/passwd',
296
+ symbolName: 'test',
297
+ lineHint: '10',
298
+ });
299
+ expect(result.success).toBe(false);
300
+ });
301
+ });
302
+
303
+ describe('lspReferencesSchema', () => {
304
+ it('parses with all defaults', () => {
305
+ const result = lspReferencesSchema.safeParse({
306
+ uri: '/project/src/index.ts',
307
+ symbolName: 'MyClass',
308
+ lineHint: '10',
309
+ });
310
+ expect(result.success).toBe(true);
311
+ if (result.success) {
312
+ expect(result.data.includeDeclaration).toBe(true);
313
+ expect(result.data.contextLines).toBe(2);
314
+ expect(result.data.referencesPerPage).toBe(20);
315
+ expect(result.data.page).toBe(1);
316
+ }
317
+ });
318
+
319
+ it('overrides defaults from strings', () => {
320
+ const result = lspReferencesSchema.safeParse({
321
+ uri: '/project/src/index.ts',
322
+ symbolName: 'MyClass',
323
+ lineHint: '10',
324
+ includeDeclaration: 'false',
325
+ referencesPerPage: '50',
326
+ page: '3',
327
+ });
328
+ expect(result.success).toBe(true);
329
+ if (result.success) {
330
+ expect(result.data.includeDeclaration).toBe(false);
331
+ expect(result.data.referencesPerPage).toBe(50);
332
+ expect(result.data.page).toBe(3);
333
+ }
334
+ });
335
+ });
336
+
337
+ describe('lspCallsSchema', () => {
338
+ it('requires direction', () => {
339
+ const result = lspCallsSchema.safeParse({
340
+ uri: '/project/src/index.ts',
341
+ symbolName: 'myFn',
342
+ lineHint: '10',
343
+ });
344
+ expect(result.success).toBe(false);
345
+ });
346
+
347
+ it('accepts valid direction', () => {
348
+ const result = lspCallsSchema.safeParse({
349
+ uri: '/project/src/index.ts',
350
+ symbolName: 'myFn',
351
+ lineHint: '10',
352
+ direction: 'incoming',
353
+ });
354
+ expect(result.success).toBe(true);
355
+ if (result.success) {
356
+ expect(result.data.direction).toBe('incoming');
357
+ expect(result.data.depth).toBe(1);
358
+ }
359
+ });
360
+
361
+ it('rejects invalid direction', () => {
362
+ const result = lspCallsSchema.safeParse({
363
+ uri: '/project/src/index.ts',
364
+ symbolName: 'myFn',
365
+ lineHint: '10',
366
+ direction: 'both',
367
+ });
368
+ expect(result.success).toBe(false);
369
+ });
370
+ });
371
+
372
+ // =============================================================================
373
+ // GitHub Schemas
374
+ // =============================================================================
375
+
376
+ describe('githubSearchSchema', () => {
377
+ it('parses comma-separated keywords', () => {
378
+ const result = githubSearchSchema.safeParse({
379
+ keywordsToSearch: 'react,hooks',
380
+ });
381
+ expect(result.success).toBe(true);
382
+ if (result.success) {
383
+ expect(result.data.keywordsToSearch).toEqual(['react', 'hooks']);
384
+ }
385
+ });
386
+ });
387
+
388
+ describe('githubContentSchema', () => {
389
+ it('requires owner, repo, and path', () => {
390
+ const missing = githubContentSchema.safeParse({ owner: 'fb', repo: 'react' });
391
+ expect(missing.success).toBe(false);
392
+
393
+ const valid = githubContentSchema.safeParse({
394
+ owner: 'fb',
395
+ repo: 'react',
396
+ path: 'src/index.ts',
397
+ });
398
+ expect(valid.success).toBe(true);
399
+ });
400
+ });
401
+
402
+ describe('githubReposSchema', () => {
403
+ it('requires at least keywordsToSearch or topicsToSearch', () => {
404
+ const empty = githubReposSchema.safeParse({});
405
+ expect(empty.success).toBe(false);
406
+
407
+ const withKeywords = githubReposSchema.safeParse({
408
+ keywordsToSearch: 'react',
409
+ });
410
+ expect(withKeywords.success).toBe(true);
411
+
412
+ const withTopics = githubReposSchema.safeParse({
413
+ topicsToSearch: 'typescript',
414
+ });
415
+ expect(withTopics.success).toBe(true);
416
+ });
417
+ });
418
+
419
+ describe('githubStructureSchema', () => {
420
+ it('requires owner, repo, and branch', () => {
421
+ const result = githubStructureSchema.safeParse({
422
+ owner: 'fb',
423
+ repo: 'react',
424
+ branch: 'main',
425
+ });
426
+ expect(result.success).toBe(true);
427
+
428
+ const missing = githubStructureSchema.safeParse({
429
+ owner: 'fb',
430
+ repo: 'react',
431
+ });
432
+ expect(missing.success).toBe(false);
433
+ });
434
+
435
+ it('converts depth from string', () => {
436
+ const result = githubStructureSchema.safeParse({
437
+ owner: 'fb',
438
+ repo: 'react',
439
+ branch: 'main',
440
+ depth: '2',
441
+ });
442
+ expect(result.success).toBe(true);
443
+ if (result.success) {
444
+ expect(result.data.depth).toBe(2);
445
+ }
446
+ });
447
+ });
448
+
449
+ describe('githubPRsSchema', () => {
450
+ it('parses with state enum', () => {
451
+ const result = githubPRsSchema.safeParse({ state: 'open' });
452
+ expect(result.success).toBe(true);
453
+ });
454
+
455
+ it('converts merged boolean from string', () => {
456
+ const result = githubPRsSchema.safeParse({ merged: 'true' });
457
+ expect(result.success).toBe(true);
458
+ if (result.success) {
459
+ expect(result.data.merged).toBe(true);
460
+ }
461
+ });
462
+
463
+ it('converts prNumber from string', () => {
464
+ const result = githubPRsSchema.safeParse({ prNumber: '123' });
465
+ expect(result.success).toBe(true);
466
+ if (result.success) {
467
+ expect(result.data.prNumber).toBe(123);
468
+ }
469
+ });
470
+ });
471
+
472
+ // =============================================================================
473
+ // Package Schema
474
+ // =============================================================================
475
+
476
+ describe('packageSearchSchema', () => {
477
+ it('parses minimal input with defaults', () => {
478
+ const result = packageSearchSchema.safeParse({ name: 'express' });
479
+ expect(result.success).toBe(true);
480
+ if (result.success) {
481
+ expect(result.data.name).toBe('express');
482
+ expect(result.data.ecosystem).toBe('npm');
483
+ }
484
+ });
485
+
486
+ it('accepts python ecosystem', () => {
487
+ const result = packageSearchSchema.safeParse({
488
+ name: 'requests',
489
+ ecosystem: 'python',
490
+ });
491
+ expect(result.success).toBe(true);
492
+ if (result.success) {
493
+ expect(result.data.ecosystem).toBe('python');
494
+ }
495
+ });
496
+
497
+ it('rejects empty name', () => {
498
+ const result = packageSearchSchema.safeParse({ name: '' });
499
+ expect(result.success).toBe(false);
500
+ });
501
+
502
+ it('rejects invalid ecosystem', () => {
503
+ const result = packageSearchSchema.safeParse({
504
+ name: 'test',
505
+ ecosystem: 'rubygems',
506
+ });
507
+ expect(result.success).toBe(false);
508
+ });
509
+ });
@@ -1,25 +1,10 @@
1
1
  /**
2
2
  * Octocode Research Skill
3
3
  *
4
- * Re-exports all octocode tools with skill-friendly names.
5
- * Each tool can be called as a function with query arrays.
4
+ * Re-exports octocode tools with skill-friendly names.
5
+ * Only exports symbols that are actually consumed within this package.
6
6
  *
7
- * @example
8
- * ```typescript
9
- * import { githubSearchCode, localSearchCode, lspGotoDefinition } from 'octocode-research';
10
- *
11
- * // Search GitHub code
12
- * const result = await githubSearchCode({
13
- * queries: [{
14
- * mainResearchGoal: "Find React hooks",
15
- * researchGoal: "Locate useState implementation",
16
- * reasoning: "Understanding state management",
17
- * keywordsToSearch: ["useState"],
18
- * owner: "facebook",
19
- * repo: "react"
20
- * }]
21
- * });
22
- * ```
7
+ * For types or additional utilities, import directly from 'octocode-mcp/public'.
23
8
  */
24
9
 
25
10
  // ============================================================================
@@ -34,20 +19,6 @@ export {
34
19
  exploreMultipleRepositoryStructures as githubViewRepoStructure,
35
20
  } from 'octocode-mcp/public';
36
21
 
37
- // GitHub Types
38
- export type {
39
- FileContentQuery,
40
- ContentResult,
41
- GitHubCodeSearchQuery,
42
- SearchResult,
43
- GitHubPullRequestSearchQuery,
44
- PullRequestSearchResult,
45
- GitHubReposSearchQuery,
46
- RepoSearchResult,
47
- GitHubViewRepoStructureQuery,
48
- RepoStructureResult,
49
- } from 'octocode-mcp/public';
50
-
51
22
  // ============================================================================
52
23
  // Local Tools (Local Codebase Research)
53
24
  // ============================================================================
@@ -59,18 +30,6 @@ export {
59
30
  executeViewStructure as localViewStructure,
60
31
  } from 'octocode-mcp/public';
61
32
 
62
- // Local Types
63
- export type {
64
- FetchContentQuery,
65
- FetchContentResult,
66
- FindFilesQuery,
67
- FindFilesResult,
68
- RipgrepSearchQuery,
69
- SearchContentResult,
70
- ViewStructureQuery,
71
- ViewStructureResult,
72
- } from 'octocode-mcp/public';
73
-
74
33
  // ============================================================================
75
34
  // LSP Tools (Semantic Code Analysis)
76
35
  // ============================================================================
@@ -81,86 +40,17 @@ export {
81
40
  executeCallHierarchy as lspCallHierarchy,
82
41
  } from 'octocode-mcp/public';
83
42
 
84
- // LSP Types
85
- export type {
86
- LSPGotoDefinitionQuery,
87
- GotoDefinitionResult,
88
- LSPFindReferencesQuery,
89
- FindReferencesResult,
90
- LSPCallHierarchyQuery,
91
- CallHierarchyResult,
92
- } from 'octocode-mcp/public';
93
-
94
43
  // ============================================================================
95
44
  // Package Search Tools
96
45
  // ============================================================================
97
46
 
98
47
  export { searchPackages as packageSearch } from 'octocode-mcp/public';
99
48
 
100
- // Package Types
101
- export type {
102
- PackageSearchQuery,
103
- PackageSearchResult,
104
- NpmPackageSearchQuery,
105
- PythonPackageSearchQuery,
106
- } from 'octocode-mcp/public';
107
-
108
- // ============================================================================
109
- // Response Utilities (for custom result formatting)
110
- // ============================================================================
111
-
112
- // Legacy API (backwards compatible)
113
- export { createResult, createResponseFormat } from 'octocode-mcp/public';
114
-
115
- // New Role-Based Response API
116
- export {
117
- createRoleBasedResult,
118
- ContentBuilder,
119
- QuickResult,
120
- StatusEmoji,
121
- StatusEmojis,
122
- } from 'octocode-mcp/public';
123
-
124
- export type {
125
- ContentRole,
126
- RoleContentBlock,
127
- RoleBasedResultOptions,
128
- RoleAnnotations,
129
- } from 'octocode-mcp/public';
130
-
131
- // Research-specific response builders
132
- export { ResearchResponse } from './utils/responseBuilder.js';
133
-
134
- // ============================================================================
135
- // Tool Metadata & Configuration
136
- // ============================================================================
137
-
138
- export {
139
- TOOL_NAMES,
140
- DESCRIPTIONS,
141
- getToolHintsSync,
142
- getGenericErrorHintsSync,
143
- } from 'octocode-mcp/public';
144
-
145
- // ============================================================================
146
- // Security Validation (for wrapping tool calls)
147
- // ============================================================================
148
-
149
- export { withBasicSecurityValidation } from 'octocode-mcp/public';
150
-
151
49
  // ============================================================================
152
50
  // Token Management (for GitHub API authentication)
153
51
  // ============================================================================
154
52
 
155
- export {
156
- initialize,
157
- initializeProviders,
158
- getGitHubToken,
159
- getToken,
160
- getTokenSource,
161
- } from 'octocode-mcp/public';
162
-
163
- export type { TokenSourceType } from 'octocode-mcp/public';
53
+ export { initializeProviders } from 'octocode-mcp/public';
164
54
 
165
55
  // ============================================================================
166
56
  // Session Management (for tracking usage and telemetry)
@@ -168,19 +58,9 @@ export type { TokenSourceType } from 'octocode-mcp/public';
168
58
 
169
59
  export {
170
60
  initializeSession,
171
- getSessionManager,
172
61
  logSessionInit,
173
62
  logToolCall,
174
63
  logPromptCall,
175
64
  logSessionError,
176
65
  logRateLimit,
177
- resetSessionManager,
178
- } from 'octocode-mcp/public';
179
-
180
- export type {
181
- SessionData,
182
- ToolCallData,
183
- PromptCallData,
184
- ErrorData,
185
- RateLimitData,
186
66
  } from 'octocode-mcp/public';
@@ -1,4 +1,3 @@
1
- import type { Response } from 'express';
2
1
  import { z } from 'zod/v4';
3
2
 
4
3
  /**
@@ -88,28 +87,3 @@ function formatZodError(error: z.ZodError): string {
88
87
  .join('; ');
89
88
  }
90
89
 
91
- /**
92
- * Send standardized tool result response.
93
- */
94
- export function sendToolResult(
95
- res: Response,
96
- result: {
97
- content?: Array<{ type: string; text?: string }>;
98
- isError?: boolean;
99
- }
100
- ): void {
101
- const textContent = result.content?.find(
102
- (c) => c.type === 'text' && 'text' in c
103
- );
104
-
105
- const isError = result.isError ?? false;
106
-
107
- res.status(isError ? 500 : 200).json({
108
- success: !isError,
109
- data: textContent?.text ?? null,
110
- raw: result,
111
- });
112
- }
113
-
114
- // Legacy function for backwards compatibility (deprecated)
115
- // Internal alias: parseQueryToArray = parseAndValidate