@dolusoft/hirebase-mcp 1.3.5 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (232) hide show
  1. package/dist/__tests__/integration/hybrid-search.test.d.ts +1 -0
  2. package/dist/__tests__/integration/hybrid-search.test.js +70 -0
  3. package/dist/__tests__/integration/hybrid-search.test.js.map +1 -0
  4. package/dist/__tests__/unit/chunking.test.d.ts +1 -0
  5. package/dist/__tests__/unit/chunking.test.js +70 -0
  6. package/dist/__tests__/unit/chunking.test.js.map +1 -0
  7. package/dist/__tests__/unit/composite-score.test.d.ts +1 -0
  8. package/dist/__tests__/unit/composite-score.test.js +28 -0
  9. package/dist/__tests__/unit/composite-score.test.js.map +1 -0
  10. package/dist/__tests__/unit/find-similar-candidates.test.d.ts +1 -0
  11. package/dist/__tests__/unit/find-similar-candidates.test.js +33 -0
  12. package/dist/__tests__/unit/find-similar-candidates.test.js.map +1 -0
  13. package/dist/__tests__/unit/query-enhancer.test.d.ts +1 -0
  14. package/dist/__tests__/unit/query-enhancer.test.js +20 -0
  15. package/dist/__tests__/unit/query-enhancer.test.js.map +1 -0
  16. package/dist/__tests__/unit/skill-graph.test.d.ts +1 -0
  17. package/dist/__tests__/unit/skill-graph.test.js +38 -0
  18. package/dist/__tests__/unit/skill-graph.test.js.map +1 -0
  19. package/dist/__tests__/unit/skill-normalizer.test.d.ts +1 -0
  20. package/dist/__tests__/unit/skill-normalizer.test.js +41 -0
  21. package/dist/__tests__/unit/skill-normalizer.test.js.map +1 -0
  22. package/dist/__tests__/unit/smoke.test.d.ts +1 -0
  23. package/dist/__tests__/unit/smoke.test.js +7 -0
  24. package/dist/__tests__/unit/smoke.test.js.map +1 -0
  25. package/dist/application/dto/candidate-summary.d.ts +2 -0
  26. package/dist/application/dto/filter-input.d.ts +2 -0
  27. package/dist/application/dto/search-results.d.ts +3 -0
  28. package/dist/application/dto/stats.d.ts +6 -0
  29. package/dist/application/services/query-enhancer.d.ts +10 -0
  30. package/dist/application/services/query-enhancer.js +34 -0
  31. package/dist/application/services/query-enhancer.js.map +1 -0
  32. package/dist/application/use-cases/add-cv.d.ts +5 -1
  33. package/dist/application/use-cases/add-cv.js +25 -4
  34. package/dist/application/use-cases/add-cv.js.map +1 -1
  35. package/dist/application/use-cases/delete-cv.d.ts +5 -1
  36. package/dist/application/use-cases/delete-cv.js +13 -1
  37. package/dist/application/use-cases/delete-cv.js.map +1 -1
  38. package/dist/application/use-cases/delete-job-posting.d.ts +10 -0
  39. package/dist/application/use-cases/delete-job-posting.js +23 -0
  40. package/dist/application/use-cases/delete-job-posting.js.map +1 -0
  41. package/dist/application/use-cases/filter-candidates.js +12 -1
  42. package/dist/application/use-cases/filter-candidates.js.map +1 -1
  43. package/dist/application/use-cases/find-similar-candidates.d.ts +21 -0
  44. package/dist/application/use-cases/find-similar-candidates.js +85 -0
  45. package/dist/application/use-cases/find-similar-candidates.js.map +1 -0
  46. package/dist/application/use-cases/get-stats.js +2 -0
  47. package/dist/application/use-cases/get-stats.js.map +1 -1
  48. package/dist/application/use-cases/list-cvs.d.ts +2 -1
  49. package/dist/application/use-cases/list-cvs.js +18 -2
  50. package/dist/application/use-cases/list-cvs.js.map +1 -1
  51. package/dist/application/use-cases/match-candidates.d.ts +5 -1
  52. package/dist/application/use-cases/match-candidates.js +61 -19
  53. package/dist/application/use-cases/match-candidates.js.map +1 -1
  54. package/dist/application/use-cases/reindex-all.d.ts +22 -0
  55. package/dist/application/use-cases/reindex-all.js +124 -0
  56. package/dist/application/use-cases/reindex-all.js.map +1 -0
  57. package/dist/application/use-cases/semantic-search.d.ts +3 -1
  58. package/dist/application/use-cases/semantic-search.js +13 -3
  59. package/dist/application/use-cases/semantic-search.js.map +1 -1
  60. package/dist/application/use-cases/update-cv.d.ts +2 -1
  61. package/dist/application/use-cases/update-cv.js +18 -3
  62. package/dist/application/use-cases/update-cv.js.map +1 -1
  63. package/dist/domain/entities/candidate.d.ts +3 -0
  64. package/dist/domain/repositories/candidate-repository.d.ts +1 -0
  65. package/dist/domain/repositories/chunk-repository.d.ts +8 -0
  66. package/dist/infrastructure/config/app-config.d.ts +5 -0
  67. package/dist/infrastructure/config/app-config.js +4 -0
  68. package/dist/infrastructure/config/app-config.js.map +1 -1
  69. package/dist/infrastructure/persistence/database.d.ts +1 -0
  70. package/dist/infrastructure/persistence/database.js +20 -0
  71. package/dist/infrastructure/persistence/database.js.map +1 -1
  72. package/dist/infrastructure/persistence/lancedb-candidate-repository.d.ts +1 -0
  73. package/dist/infrastructure/persistence/lancedb-candidate-repository.js +20 -0
  74. package/dist/infrastructure/persistence/lancedb-candidate-repository.js.map +1 -1
  75. package/dist/infrastructure/persistence/lancedb-chunk-repository.d.ts +4 -1
  76. package/dist/infrastructure/persistence/lancedb-chunk-repository.js +64 -2
  77. package/dist/infrastructure/persistence/lancedb-chunk-repository.js.map +1 -1
  78. package/dist/interface/dashboard/public/200.html +1 -1
  79. package/dist/interface/dashboard/public/404.html +1 -1
  80. package/dist/interface/dashboard/public/_nuxt/builds/latest.json +1 -1
  81. package/dist/interface/dashboard/public/_nuxt/builds/meta/05a92851-5bed-4eaf-bd75-e0aff9ec5876.json +1 -0
  82. package/dist/interface/dashboard/public/_nuxt/builds/meta/1d36013b-8fb8-4cea-a448-d5f224b731ee.json +1 -0
  83. package/dist/interface/dashboard/public/_nuxt/builds/meta/2bb695c5-c739-46a0-a3e6-4b76aa321c29.json +1 -0
  84. package/dist/interface/dashboard/public/_nuxt/builds/meta/3ee0a1ee-8e79-4443-a6e7-b0b6412b0a38.json +1 -0
  85. package/dist/interface/dashboard/public/_nuxt/builds/meta/ba31dbc0-8fe2-44bc-8214-6b3d717566a0.json +1 -0
  86. package/dist/interface/dashboard/public/_nuxt/builds/meta/fc914bdb-64a6-4798-a08f-64eb8ea9a307.json +1 -0
  87. package/dist/interface/dashboard/public/index.html +1 -1
  88. package/dist/interface/mcp/server.js +105 -42
  89. package/dist/interface/mcp/server.js.map +1 -1
  90. package/dist/interface/mcp/tools/add-cv.d.ts +2 -2
  91. package/dist/interface/mcp/tools/add-cv.js +31 -3
  92. package/dist/interface/mcp/tools/add-cv.js.map +1 -1
  93. package/dist/interface/mcp/tools/add-job-posting.d.ts +2 -2
  94. package/dist/interface/mcp/tools/add-job-posting.js +20 -12
  95. package/dist/interface/mcp/tools/add-job-posting.js.map +1 -1
  96. package/dist/interface/mcp/tools/add-pipeline-note.d.ts +2 -2
  97. package/dist/interface/mcp/tools/add-pipeline-note.js +10 -6
  98. package/dist/interface/mcp/tools/add-pipeline-note.js.map +1 -1
  99. package/dist/interface/mcp/tools/add-reference-cv.d.ts +2 -2
  100. package/dist/interface/mcp/tools/add-reference-cv.js +9 -5
  101. package/dist/interface/mcp/tools/add-reference-cv.js.map +1 -1
  102. package/dist/interface/mcp/tools/add-to-pipeline.d.ts +2 -2
  103. package/dist/interface/mcp/tools/add-to-pipeline.js +9 -5
  104. package/dist/interface/mcp/tools/add-to-pipeline.js.map +1 -1
  105. package/dist/interface/mcp/tools/check-duplicate-candidate.d.ts +2 -2
  106. package/dist/interface/mcp/tools/check-duplicate-candidate.js +8 -4
  107. package/dist/interface/mcp/tools/check-duplicate-candidate.js.map +1 -1
  108. package/dist/interface/mcp/tools/compare-candidates.d.ts +2 -2
  109. package/dist/interface/mcp/tools/compare-candidates.js +8 -4
  110. package/dist/interface/mcp/tools/compare-candidates.js.map +1 -1
  111. package/dist/interface/mcp/tools/create-call-batch.d.ts +2 -2
  112. package/dist/interface/mcp/tools/create-call-batch.js +10 -6
  113. package/dist/interface/mcp/tools/create-call-batch.js.map +1 -1
  114. package/dist/interface/mcp/tools/delete-cv.d.ts +2 -2
  115. package/dist/interface/mcp/tools/delete-cv.js +29 -2
  116. package/dist/interface/mcp/tools/delete-cv.js.map +1 -1
  117. package/dist/interface/mcp/tools/delete-job-posting.d.ts +2 -2
  118. package/dist/interface/mcp/tools/delete-job-posting.js +32 -3
  119. package/dist/interface/mcp/tools/delete-job-posting.js.map +1 -1
  120. package/dist/interface/mcp/tools/export-results.d.ts +2 -2
  121. package/dist/interface/mcp/tools/export-results.js +7 -3
  122. package/dist/interface/mcp/tools/export-results.js.map +1 -1
  123. package/dist/interface/mcp/tools/filter-candidates.d.ts +2 -2
  124. package/dist/interface/mcp/tools/filter-candidates.js +17 -9
  125. package/dist/interface/mcp/tools/filter-candidates.js.map +1 -1
  126. package/dist/interface/mcp/tools/find-similar-candidates.d.ts +3 -0
  127. package/dist/interface/mcp/tools/find-similar-candidates.js +39 -0
  128. package/dist/interface/mcp/tools/find-similar-candidates.js.map +1 -0
  129. package/dist/interface/mcp/tools/generate-screening-report.d.ts +2 -2
  130. package/dist/interface/mcp/tools/generate-screening-report.js +8 -4
  131. package/dist/interface/mcp/tools/generate-screening-report.js.map +1 -1
  132. package/dist/interface/mcp/tools/get-call-batch-status.d.ts +2 -2
  133. package/dist/interface/mcp/tools/get-call-batch-status.js +7 -3
  134. package/dist/interface/mcp/tools/get-call-batch-status.js.map +1 -1
  135. package/dist/interface/mcp/tools/get-candidate-history.d.ts +2 -2
  136. package/dist/interface/mcp/tools/get-candidate-history.js +7 -3
  137. package/dist/interface/mcp/tools/get-candidate-history.js.map +1 -1
  138. package/dist/interface/mcp/tools/get-cv-chunks.d.ts +2 -2
  139. package/dist/interface/mcp/tools/get-cv-chunks.js +13 -9
  140. package/dist/interface/mcp/tools/get-cv-chunks.js.map +1 -1
  141. package/dist/interface/mcp/tools/get-cv-detail.d.ts +2 -2
  142. package/dist/interface/mcp/tools/get-cv-detail.js +6 -2
  143. package/dist/interface/mcp/tools/get-cv-detail.js.map +1 -1
  144. package/dist/interface/mcp/tools/get-cv-versions.d.ts +2 -2
  145. package/dist/interface/mcp/tools/get-cv-versions.js +6 -2
  146. package/dist/interface/mcp/tools/get-cv-versions.js.map +1 -1
  147. package/dist/interface/mcp/tools/get-job-posting.d.ts +2 -2
  148. package/dist/interface/mcp/tools/get-job-posting.js +7 -3
  149. package/dist/interface/mcp/tools/get-job-posting.js.map +1 -1
  150. package/dist/interface/mcp/tools/get-pending-actions.d.ts +2 -2
  151. package/dist/interface/mcp/tools/get-pending-actions.js +6 -2
  152. package/dist/interface/mcp/tools/get-pending-actions.js.map +1 -1
  153. package/dist/interface/mcp/tools/get-pipeline-candidates.d.ts +2 -2
  154. package/dist/interface/mcp/tools/get-pipeline-candidates.js +7 -3
  155. package/dist/interface/mcp/tools/get-pipeline-candidates.js.map +1 -1
  156. package/dist/interface/mcp/tools/get-pipeline.d.ts +2 -2
  157. package/dist/interface/mcp/tools/get-pipeline.js +7 -3
  158. package/dist/interface/mcp/tools/get-pipeline.js.map +1 -1
  159. package/dist/interface/mcp/tools/get-screening-history.d.ts +2 -2
  160. package/dist/interface/mcp/tools/get-screening-history.js +7 -3
  161. package/dist/interface/mcp/tools/get-screening-history.js.map +1 -1
  162. package/dist/interface/mcp/tools/get-server-status.d.ts +2 -2
  163. package/dist/interface/mcp/tools/get-server-status.js +6 -2
  164. package/dist/interface/mcp/tools/get-server-status.js.map +1 -1
  165. package/dist/interface/mcp/tools/get-stats.d.ts +2 -2
  166. package/dist/interface/mcp/tools/get-stats.js +6 -2
  167. package/dist/interface/mcp/tools/get-stats.js.map +1 -1
  168. package/dist/interface/mcp/tools/list-cvs.d.ts +2 -2
  169. package/dist/interface/mcp/tools/list-cvs.js +32 -11
  170. package/dist/interface/mcp/tools/list-cvs.js.map +1 -1
  171. package/dist/interface/mcp/tools/list-job-postings.d.ts +2 -2
  172. package/dist/interface/mcp/tools/list-job-postings.js +6 -2
  173. package/dist/interface/mcp/tools/list-job-postings.js.map +1 -1
  174. package/dist/interface/mcp/tools/list-reference-cvs.d.ts +2 -2
  175. package/dist/interface/mcp/tools/list-reference-cvs.js +7 -3
  176. package/dist/interface/mcp/tools/list-reference-cvs.js.map +1 -1
  177. package/dist/interface/mcp/tools/manage-tags.d.ts +2 -2
  178. package/dist/interface/mcp/tools/manage-tags.js +8 -4
  179. package/dist/interface/mcp/tools/manage-tags.js.map +1 -1
  180. package/dist/interface/mcp/tools/match-candidates.d.ts +2 -2
  181. package/dist/interface/mcp/tools/match-candidates.js +26 -12
  182. package/dist/interface/mcp/tools/match-candidates.js.map +1 -1
  183. package/dist/interface/mcp/tools/reindex-all.d.ts +3 -0
  184. package/dist/interface/mcp/tools/reindex-all.js +31 -0
  185. package/dist/interface/mcp/tools/reindex-all.js.map +1 -0
  186. package/dist/interface/mcp/tools/remove-reference-cv.d.ts +2 -2
  187. package/dist/interface/mcp/tools/remove-reference-cv.js +29 -2
  188. package/dist/interface/mcp/tools/remove-reference-cv.js.map +1 -1
  189. package/dist/interface/mcp/tools/reset-database.d.ts +2 -2
  190. package/dist/interface/mcp/tools/reset-database.js +29 -2
  191. package/dist/interface/mcp/tools/reset-database.js.map +1 -1
  192. package/dist/interface/mcp/tools/semantic-search.d.ts +2 -2
  193. package/dist/interface/mcp/tools/semantic-search.js +24 -11
  194. package/dist/interface/mcp/tools/semantic-search.js.map +1 -1
  195. package/dist/interface/mcp/tools/set-pending-action.d.ts +2 -2
  196. package/dist/interface/mcp/tools/set-pending-action.js +16 -12
  197. package/dist/interface/mcp/tools/set-pending-action.js.map +1 -1
  198. package/dist/interface/mcp/tools/update-call-outcome.d.ts +2 -2
  199. package/dist/interface/mcp/tools/update-call-outcome.js +10 -6
  200. package/dist/interface/mcp/tools/update-call-outcome.js.map +1 -1
  201. package/dist/interface/mcp/tools/update-cv.d.ts +2 -2
  202. package/dist/interface/mcp/tools/update-cv.js +16 -6
  203. package/dist/interface/mcp/tools/update-cv.js.map +1 -1
  204. package/dist/interface/mcp/tools/update-job-posting.d.ts +2 -2
  205. package/dist/interface/mcp/tools/update-job-posting.js +16 -12
  206. package/dist/interface/mcp/tools/update-job-posting.js.map +1 -1
  207. package/dist/interface/mcp/tools/update-pipeline-status.d.ts +2 -2
  208. package/dist/interface/mcp/tools/update-pipeline-status.js +9 -5
  209. package/dist/interface/mcp/tools/update-pipeline-status.js.map +1 -1
  210. package/dist/interface/mcp/types.d.ts +2 -0
  211. package/dist/shared/data/skill-graph.json +115 -0
  212. package/dist/shared/data/skill-map.json +104 -0
  213. package/dist/shared/mcp/logger.d.ts +7 -0
  214. package/dist/shared/mcp/logger.js +20 -0
  215. package/dist/shared/mcp/logger.js.map +1 -0
  216. package/dist/shared/mcp/progress.d.ts +6 -0
  217. package/dist/shared/mcp/progress.js +33 -0
  218. package/dist/shared/mcp/progress.js.map +1 -0
  219. package/dist/shared/services/skill-graph.d.ts +11 -0
  220. package/dist/shared/services/skill-graph.js +84 -0
  221. package/dist/shared/services/skill-graph.js.map +1 -0
  222. package/dist/shared/services/skill-normalizer.d.ts +6 -0
  223. package/dist/shared/services/skill-normalizer.js +32 -0
  224. package/dist/shared/services/skill-normalizer.js.map +1 -0
  225. package/dist/shared/types/index.d.ts +3 -1
  226. package/dist/shared/utils/chunking.d.ts +9 -1
  227. package/dist/shared/utils/chunking.js +46 -36
  228. package/dist/shared/utils/chunking.js.map +1 -1
  229. package/dist/shared/utils/skill-migration.d.ts +6 -0
  230. package/dist/shared/utils/skill-migration.js +35 -0
  231. package/dist/shared/utils/skill-migration.js.map +1 -0
  232. package/package.json +12 -6
@@ -1 +1 @@
1
- {"version":3,"file":"get-cv-chunks.js","sourceRoot":"","sources":["../../../../src/interface/mcp/tools/get-cv-chunks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AAIrF,MAAM,UAAU,uBAAuB,CAAC,MAAiB,EAAE,IAAkB;IAC3E,MAAM,OAAO,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAE3E,MAAM,CAAC,IAAI,CACT,eAAe,EACf,0HAA0H,EAC1H;QACE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;QACxE,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;QACzG,YAAY,EAAE,CAAC;aACZ,IAAI,CAAC,CAAC,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAC;aAC5F,QAAQ,EAAE;aACV,QAAQ,CAAC,mCAAmC,CAAC;KACjD,EACD,KAAK,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,EAAE,EAAE;QACtD,IAAI,CAAC;YACH,IAAI,YAAY,IAAI,aAAa,EAAE,CAAC;gBAClC,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,wDAAwD,EAAE,CAAC,EAAE,CAAC;oBAC/H,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;gBACpC,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,8CAA8C,EAAE,CAAC,EAAE,CAAC;oBACrH,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,aAAa,EAAE,YAAuC,CAAC,CAAC;gBAClG,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;iBAC5E,CAAC;YACJ,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,YAAa,EAAE,YAAuC,CAAC,CAAC;YAC7F,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aAC5E,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;gBAC/F,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"get-cv-chunks.js","sourceRoot":"","sources":["../../../../src/interface/mcp/tools/get-cv-chunks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AAIrF,MAAM,UAAU,uBAAuB,CAAC,MAAiB,EAAE,IAAkB;IAC3E,MAAM,OAAO,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAE3E,OAAO,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE;QAC1C,WAAW,EAAE,kDAAkD;QAC/D,WAAW,EAAE;YACX,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YACnE,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;YACtF,YAAY,EAAE,CAAC;iBACZ,IAAI,CAAC,CAAC,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAC;iBAC5F,QAAQ,EAAE;iBACV,QAAQ,CAAC,qBAAqB,CAAC;SACnC;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;KAC1D,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,EAAE,EAAE;QACvD,IAAI,CAAC;YACH,IAAI,YAAY,IAAI,aAAa,EAAE,CAAC;gBAClC,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,wDAAwD,EAAE,CAAC,EAAE,CAAC;oBAC/H,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;gBACpC,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,8CAA8C,EAAE,CAAC,EAAE,CAAC;oBACrH,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,aAAa,EAAE,YAAuC,CAAC,CAAC;gBAClG,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;iBACnE,CAAC;YACJ,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,YAAa,EAAE,YAAuC,CAAC,CAAC;YAC7F,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;aACnE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;gBAC/F,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1,3 +1,3 @@
1
- import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
1
+ import type { McpServer, RegisteredTool } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  import type { Dependencies } from '../types.js';
3
- export declare function registerGetCvDetailTool(server: McpServer, deps: Dependencies): void;
3
+ export declare function registerGetCvDetailTool(server: McpServer, deps: Dependencies): RegisteredTool;
@@ -3,13 +3,17 @@ import { GetCvDetailUseCase } from '../../../application/use-cases/get-cv-detail
3
3
  import { getDashboardInfo } from '../../dashboard/server.js';
4
4
  export function registerGetCvDetailTool(server, deps) {
5
5
  const useCase = new GetCvDetailUseCase(deps.candidateRepo);
6
- server.tool('get_cv_detail', 'Get the full structured data of a specific candidate by their ID.', { candidate_id: z.string().describe('ID of the candidate') }, async ({ candidate_id }) => {
6
+ return server.registerTool('get_cv_detail', {
7
+ description: 'Full structured candidate data by ID',
8
+ inputSchema: { candidate_id: z.string().describe('Candidate ID') },
9
+ annotations: { readOnlyHint: true, openWorldHint: false },
10
+ }, async ({ candidate_id }) => {
7
11
  try {
8
12
  const candidate = await useCase.execute(candidate_id);
9
13
  const { url } = getDashboardInfo();
10
14
  const downloadUrl = url ? `${url}/files/${candidate.id}.${candidate.fileType}` : null;
11
15
  return {
12
- content: [{ type: 'text', text: JSON.stringify({ ...candidate, downloadUrl }, null, 2) }],
16
+ content: [{ type: 'text', text: JSON.stringify({ ...candidate, downloadUrl }) }],
13
17
  };
14
18
  }
15
19
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"get-cv-detail.js","sourceRoot":"","sources":["../../../../src/interface/mcp/tools/get-cv-detail.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAG7D,MAAM,UAAU,uBAAuB,CAAC,MAAiB,EAAE,IAAkB;IAC3E,MAAM,OAAO,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAE3D,MAAM,CAAC,IAAI,CACT,eAAe,EACf,mEAAmE,EACnE,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,EAC5D,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE;QACzB,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YACtD,MAAM,EAAE,GAAG,EAAE,GAAG,gBAAgB,EAAE,CAAC;YACnC,MAAM,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,UAAU,SAAS,CAAC,EAAE,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACtF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,SAAS,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aACnG,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;gBAC/F,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"get-cv-detail.js","sourceRoot":"","sources":["../../../../src/interface/mcp/tools/get-cv-detail.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAG7D,MAAM,UAAU,uBAAuB,CAAC,MAAiB,EAAE,IAAkB;IAC3E,MAAM,OAAO,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAE3D,OAAO,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE;QAC1C,WAAW,EAAE,sCAAsC;QACnD,WAAW,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;QAClE,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;KAC1D,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE;QAC1B,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YACtD,MAAM,EAAE,GAAG,EAAE,GAAG,gBAAgB,EAAE,CAAC;YACnC,MAAM,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,UAAU,SAAS,CAAC,EAAE,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACtF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,SAAS,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;aAC1F,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;gBAC/F,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1,3 +1,3 @@
1
- import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
1
+ import type { McpServer, RegisteredTool } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  import type { Dependencies } from '../types.js';
3
- export declare function registerGetCvVersionsTool(server: McpServer, deps: Dependencies): void;
3
+ export declare function registerGetCvVersionsTool(server: McpServer, deps: Dependencies): RegisteredTool;
@@ -2,11 +2,15 @@ import { z } from 'zod/v4';
2
2
  import { GetCvVersionsUseCase } from '../../../application/use-cases/get-cv-versions.js';
3
3
  export function registerGetCvVersionsTool(server, deps) {
4
4
  const useCase = new GetCvVersionsUseCase(deps.candidateRepo, deps.versionRepo);
5
- server.tool('get_cv_versions', 'Get the version history of a candidate. Shows previous versions of their CV data.', { candidate_id: z.string().describe('ID of the candidate') }, async ({ candidate_id }) => {
5
+ return server.registerTool('get_cv_versions', {
6
+ description: 'CV version history for a candidate',
7
+ inputSchema: { candidate_id: z.string().describe('Candidate ID') },
8
+ annotations: { readOnlyHint: true, openWorldHint: false },
9
+ }, async ({ candidate_id }) => {
6
10
  try {
7
11
  const versions = await useCase.execute(candidate_id);
8
12
  return {
9
- content: [{ type: 'text', text: JSON.stringify(versions, null, 2) }],
13
+ content: [{ type: 'text', text: JSON.stringify(versions) }],
10
14
  };
11
15
  }
12
16
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"get-cv-versions.js","sourceRoot":"","sources":["../../../../src/interface/mcp/tools/get-cv-versions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AAGzF,MAAM,UAAU,yBAAyB,CAAC,MAAiB,EAAE,IAAkB;IAC7E,MAAM,OAAO,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAE/E,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,mFAAmF,EACnF,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,EAC5D,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE;QACzB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YACrD,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aAC9E,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;gBAC/F,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"get-cv-versions.js","sourceRoot":"","sources":["../../../../src/interface/mcp/tools/get-cv-versions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AAGzF,MAAM,UAAU,yBAAyB,CAAC,MAAiB,EAAE,IAAkB;IAC7E,MAAM,OAAO,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAE/E,OAAO,MAAM,CAAC,YAAY,CAAC,iBAAiB,EAAE;QAC5C,WAAW,EAAE,oCAAoC;QACjD,WAAW,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;QAClE,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;KAC1D,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE;QAC1B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YACrD,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;aACrE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;gBAC/F,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1,3 +1,3 @@
1
- import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
1
+ import type { McpServer, RegisteredTool } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  import type { Dependencies } from '../types.js';
3
- export declare function registerGetJobPostingTool(server: McpServer, deps: Dependencies): void;
3
+ export declare function registerGetJobPostingTool(server: McpServer, deps: Dependencies): RegisteredTool;
@@ -1,7 +1,11 @@
1
1
  import { z } from 'zod/v4';
2
2
  export function registerGetJobPostingTool(server, deps) {
3
- server.tool('get_job_posting', 'Get a specific job posting by ID.', {
4
- id: z.string().describe('Job posting ID'),
3
+ return server.registerTool('get_job_posting', {
4
+ description: 'Job posting details by ID',
5
+ inputSchema: {
6
+ id: z.string().describe('Job posting ID'),
7
+ },
8
+ annotations: { readOnlyHint: true, openWorldHint: false },
5
9
  }, async ({ id }) => {
6
10
  try {
7
11
  const posting = await deps.jobPostingRepo.findById(id);
@@ -12,7 +16,7 @@ export function registerGetJobPostingTool(server, deps) {
12
16
  };
13
17
  }
14
18
  return {
15
- content: [{ type: 'text', text: JSON.stringify(posting, null, 2) }],
19
+ content: [{ type: 'text', text: JSON.stringify(posting) }],
16
20
  };
17
21
  }
18
22
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"get-job-posting.js","sourceRoot":"","sources":["../../../../src/interface/mcp/tools/get-job-posting.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAG3B,MAAM,UAAU,yBAAyB,CAAC,MAAiB,EAAE,IAAkB;IAC7E,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,mCAAmC,EACnC;QACE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;KAC1C,EACD,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACvD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,0BAA0B,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;oBACrG,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aAC7E,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;gBAC/F,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"get-job-posting.js","sourceRoot":"","sources":["../../../../src/interface/mcp/tools/get-job-posting.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAG3B,MAAM,UAAU,yBAAyB,CAAC,MAAiB,EAAE,IAAkB;IAC7E,OAAO,MAAM,CAAC,YAAY,CAAC,iBAAiB,EAAE;QAC5C,WAAW,EAAE,2BAA2B;QACxC,WAAW,EAAE;YACX,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;SAC1C;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;KAC1D,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QAChB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACvD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,0BAA0B,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;oBACrG,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;aACpE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;gBAC/F,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1,3 +1,3 @@
1
- import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
1
+ import type { McpServer, RegisteredTool } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  import type { Dependencies } from '../types.js';
3
- export declare function registerGetPendingActionsTool(server: McpServer, deps: Dependencies): void;
3
+ export declare function registerGetPendingActionsTool(server: McpServer, deps: Dependencies): RegisteredTool;
@@ -1,11 +1,15 @@
1
1
  import { GetPendingActionsUseCase } from '../../../application/use-cases/get-pending-actions.js';
2
2
  export function registerGetPendingActionsTool(server, deps) {
3
3
  const useCase = new GetPendingActionsUseCase(deps.applicationRepo, deps.candidateRepo, deps.jobPostingRepo);
4
- server.tool('get_pending_actions', 'Get all pending actions across the recruitment pipeline. Shows overdue and upcoming items with responsible party (us/candidate).', {}, async () => {
4
+ return server.registerTool('get_pending_actions', {
5
+ description: 'All pending actions: overdue, upcoming, responsible party',
6
+ inputSchema: {},
7
+ annotations: { readOnlyHint: true, openWorldHint: false },
8
+ }, async () => {
5
9
  try {
6
10
  const result = await useCase.execute();
7
11
  return {
8
- content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
12
+ content: [{ type: 'text', text: JSON.stringify(result) }],
9
13
  };
10
14
  }
11
15
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"get-pending-actions.js","sourceRoot":"","sources":["../../../../src/interface/mcp/tools/get-pending-actions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,uDAAuD,CAAC;AAGjG,MAAM,UAAU,6BAA6B,CAAC,MAAiB,EAAE,IAAkB;IACjF,MAAM,OAAO,GAAG,IAAI,wBAAwB,CAC1C,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,cAAc,CACpB,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,qBAAqB,EACrB,kIAAkI,EAClI,EAAE,EACF,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;YACvC,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aAC5E,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;gBAC/F,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"get-pending-actions.js","sourceRoot":"","sources":["../../../../src/interface/mcp/tools/get-pending-actions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,uDAAuD,CAAC;AAGjG,MAAM,UAAU,6BAA6B,CAAC,MAAiB,EAAE,IAAkB;IACjF,MAAM,OAAO,GAAG,IAAI,wBAAwB,CAC1C,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,cAAc,CACpB,CAAC;IAEF,OAAO,MAAM,CAAC,YAAY,CAAC,qBAAqB,EAAE;QAChD,WAAW,EAAE,2DAA2D;QACxE,WAAW,EAAE,EAAE;QACf,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;KAC1D,EAAE,KAAK,IAAI,EAAE;QACV,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;YACvC,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;aACnE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;gBAC/F,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1,3 +1,3 @@
1
- import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
1
+ import type { McpServer, RegisteredTool } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  import type { Dependencies } from '../types.js';
3
- export declare function registerGetPipelineCandidatesTool(server: McpServer, deps: Dependencies): void;
3
+ export declare function registerGetPipelineCandidatesTool(server: McpServer, deps: Dependencies): RegisteredTool;
@@ -2,13 +2,17 @@ import { z } from 'zod/v4';
2
2
  import { GetPipelineCandidatesUseCase } from '../../../application/use-cases/get-pipeline-candidates.js';
3
3
  export function registerGetPipelineCandidatesTool(server, deps) {
4
4
  const useCase = new GetPipelineCandidatesUseCase(deps.applicationRepo, deps.candidateRepo);
5
- server.tool('get_pipeline_candidates', 'Get a lightweight list of candidates in a job posting pipeline. Returns only candidate ID, name, and status — minimal data for quick lookups.', {
6
- job_posting_id: z.string().describe('ID of the job posting'),
5
+ return server.registerTool('get_pipeline_candidates', {
6
+ description: 'Lightweight pipeline list: ID, name, status only',
7
+ inputSchema: {
8
+ job_posting_id: z.string().describe('Job posting ID'),
9
+ },
10
+ annotations: { readOnlyHint: true, openWorldHint: false },
7
11
  }, async ({ job_posting_id }) => {
8
12
  try {
9
13
  const result = await useCase.execute(job_posting_id);
10
14
  return {
11
- content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
15
+ content: [{ type: 'text', text: JSON.stringify(result) }],
12
16
  };
13
17
  }
14
18
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"get-pipeline-candidates.js","sourceRoot":"","sources":["../../../../src/interface/mcp/tools/get-pipeline-candidates.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAAE,4BAA4B,EAAE,MAAM,2DAA2D,CAAC;AAGzG,MAAM,UAAU,iCAAiC,CAAC,MAAiB,EAAE,IAAkB;IACrF,MAAM,OAAO,GAAG,IAAI,4BAA4B,CAC9C,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,aAAa,CACnB,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,yBAAyB,EACzB,+IAA+I,EAC/I;QACE,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;KAC7D,EACD,KAAK,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE;QAC3B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YACrD,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aAC5E,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;gBAC/F,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"get-pipeline-candidates.js","sourceRoot":"","sources":["../../../../src/interface/mcp/tools/get-pipeline-candidates.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAAE,4BAA4B,EAAE,MAAM,2DAA2D,CAAC;AAGzG,MAAM,UAAU,iCAAiC,CAAC,MAAiB,EAAE,IAAkB;IACrF,MAAM,OAAO,GAAG,IAAI,4BAA4B,CAC9C,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,aAAa,CACnB,CAAC;IAEF,OAAO,MAAM,CAAC,YAAY,CAAC,yBAAyB,EAAE;QACpD,WAAW,EAAE,kDAAkD;QAC/D,WAAW,EAAE;YACX,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;SACtD;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;KAC1D,EAAE,KAAK,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE;QAC5B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YACrD,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;aACnE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;gBAC/F,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1,3 +1,3 @@
1
- import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
1
+ import type { McpServer, RegisteredTool } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  import type { Dependencies } from '../types.js';
3
- export declare function registerGetPipelineTool(server: McpServer, deps: Dependencies): void;
3
+ export declare function registerGetPipelineTool(server: McpServer, deps: Dependencies): RegisteredTool;
@@ -2,13 +2,17 @@ import { z } from 'zod/v4';
2
2
  import { GetPipelineUseCase } from '../../../application/use-cases/get-pipeline.js';
3
3
  export function registerGetPipelineTool(server, deps) {
4
4
  const useCase = new GetPipelineUseCase(deps.applicationRepo, deps.applicationEventRepo, deps.candidateRepo, deps.jobPostingRepo);
5
- server.tool('get_pipeline', 'Get the recruitment pipeline for a job posting. Shows all candidates, their statuses, and summary statistics.', {
6
- job_posting_id: z.string().describe('ID of the job posting'),
5
+ return server.registerTool('get_pipeline', {
6
+ description: 'Full pipeline: candidates, statuses, statistics',
7
+ inputSchema: {
8
+ job_posting_id: z.string().describe('Job posting ID'),
9
+ },
10
+ annotations: { readOnlyHint: true, openWorldHint: false },
7
11
  }, async ({ job_posting_id }) => {
8
12
  try {
9
13
  const result = await useCase.execute(job_posting_id);
10
14
  return {
11
- content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
15
+ content: [{ type: 'text', text: JSON.stringify(result) }],
12
16
  };
13
17
  }
14
18
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"get-pipeline.js","sourceRoot":"","sources":["../../../../src/interface/mcp/tools/get-pipeline.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AAGpF,MAAM,UAAU,uBAAuB,CAAC,MAAiB,EAAE,IAAkB;IAC3E,MAAM,OAAO,GAAG,IAAI,kBAAkB,CACpC,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,cAAc,CACpB,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,cAAc,EACd,+GAA+G,EAC/G;QACE,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;KAC7D,EACD,KAAK,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE;QAC3B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YACrD,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aAC5E,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;gBAC/F,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"get-pipeline.js","sourceRoot":"","sources":["../../../../src/interface/mcp/tools/get-pipeline.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AAGpF,MAAM,UAAU,uBAAuB,CAAC,MAAiB,EAAE,IAAkB;IAC3E,MAAM,OAAO,GAAG,IAAI,kBAAkB,CACpC,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,cAAc,CACpB,CAAC;IAEF,OAAO,MAAM,CAAC,YAAY,CAAC,cAAc,EAAE;QACzC,WAAW,EAAE,iDAAiD;QAC9D,WAAW,EAAE;YACX,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;SACtD;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;KAC1D,EAAE,KAAK,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE;QAC5B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YACrD,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;aACnE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;gBAC/F,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1,3 +1,3 @@
1
- import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
1
+ import type { McpServer, RegisteredTool } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  import type { Dependencies } from '../types.js';
3
- export declare function registerGetScreeningHistoryTool(server: McpServer, deps: Dependencies): void;
3
+ export declare function registerGetScreeningHistoryTool(server: McpServer, deps: Dependencies): RegisteredTool;
@@ -2,13 +2,17 @@ import { z } from 'zod/v4';
2
2
  import { GetScreeningHistoryUseCase } from '../../../application/use-cases/get-screening-history.js';
3
3
  export function registerGetScreeningHistoryTool(server, deps) {
4
4
  const useCase = new GetScreeningHistoryUseCase(deps.applicationRepo, deps.applicationEventRepo, deps.candidateRepo);
5
- server.tool('get_screening_history', 'Get the screening history for a job posting — lists shortlisted, screened out, and in-pipeline candidates.', {
6
- job_posting_id: z.string().describe('ID of the job posting'),
5
+ return server.registerTool('get_screening_history', {
6
+ description: 'Screening history: shortlisted, screened out, in-pipeline',
7
+ inputSchema: {
8
+ job_posting_id: z.string().describe('Job posting ID'),
9
+ },
10
+ annotations: { readOnlyHint: true, openWorldHint: false },
7
11
  }, async ({ job_posting_id }) => {
8
12
  try {
9
13
  const result = await useCase.execute(job_posting_id);
10
14
  return {
11
- content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
15
+ content: [{ type: 'text', text: JSON.stringify(result) }],
12
16
  };
13
17
  }
14
18
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"get-screening-history.js","sourceRoot":"","sources":["../../../../src/interface/mcp/tools/get-screening-history.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAAE,0BAA0B,EAAE,MAAM,yDAAyD,CAAC;AAGrG,MAAM,UAAU,+BAA+B,CAAC,MAAiB,EAAE,IAAkB;IACnF,MAAM,OAAO,GAAG,IAAI,0BAA0B,CAC5C,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,aAAa,CACnB,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,uBAAuB,EACvB,4GAA4G,EAC5G;QACE,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;KAC7D,EACD,KAAK,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE;QAC3B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YACrD,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aAC5E,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;gBAC/F,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"get-screening-history.js","sourceRoot":"","sources":["../../../../src/interface/mcp/tools/get-screening-history.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAAE,0BAA0B,EAAE,MAAM,yDAAyD,CAAC;AAGrG,MAAM,UAAU,+BAA+B,CAAC,MAAiB,EAAE,IAAkB;IACnF,MAAM,OAAO,GAAG,IAAI,0BAA0B,CAC5C,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,aAAa,CACnB,CAAC;IAEF,OAAO,MAAM,CAAC,YAAY,CAAC,uBAAuB,EAAE;QAClD,WAAW,EAAE,2DAA2D;QACxE,WAAW,EAAE;YACX,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;SACtD;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;KAC1D,EAAE,KAAK,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE;QAC5B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YACrD,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;aACnE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;gBAC/F,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1,3 +1,3 @@
1
- import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
1
+ import type { McpServer, RegisteredTool } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  import type { Dependencies } from '../types.js';
3
- export declare function registerGetServerStatusTool(server: McpServer, deps: Dependencies): void;
3
+ export declare function registerGetServerStatusTool(server: McpServer, deps: Dependencies): RegisteredTool;
@@ -17,7 +17,11 @@ function getVersion() {
17
17
  }
18
18
  export function registerGetServerStatusTool(server, deps) {
19
19
  const statsUseCase = new GetStatsUseCase(deps.candidateRepo, deps.chunkRepo);
20
- server.tool('get_server_status', 'Get HireBase server status: dashboard URL, connected clients, config, and database stats', {}, async () => {
20
+ return server.registerTool('get_server_status', {
21
+ description: 'Server status: dashboard, config, DB stats',
22
+ inputSchema: {},
23
+ annotations: { readOnlyHint: true, openWorldHint: false },
24
+ }, async () => {
21
25
  try {
22
26
  const dashboard = getDashboardInfo();
23
27
  const config = loadConfig();
@@ -39,7 +43,7 @@ export function registerGetServerStatusTool(server, deps) {
39
43
  },
40
44
  };
41
45
  return {
42
- content: [{ type: 'text', text: JSON.stringify(status, null, 2) }],
46
+ content: [{ type: 'text', text: JSON.stringify(status) }],
43
47
  };
44
48
  }
45
49
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"get-server-status.js","sourceRoot":"","sources":["../../../../src/interface/mcp/tools/get-server-status.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,8CAA8C,CAAC;AAE1E,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,SAAS,UAAU;IACjB,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QAC3E,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QACvD,OAAO,GAAG,CAAC,OAAO,IAAI,SAAS,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,MAAiB,EAAE,IAAkB;IAC/E,MAAM,YAAY,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAE7E,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,0FAA0F,EAC1F,EAAE,EACF,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,gBAAgB,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,CAAC;YAE7C,MAAM,MAAM,GAAG;gBACb,OAAO,EAAE,UAAU,EAAE;gBACrB,SAAS,EAAE;oBACT,GAAG,EAAE,SAAS,CAAC,GAAG;oBAClB,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI;oBAC1D,gBAAgB,EAAE,SAAS,CAAC,gBAAgB;iBAC7C;gBACD,MAAM,EAAE;oBACN,cAAc,EAAE,MAAM,CAAC,cAAc;oBACrC,eAAe,EAAE,MAAM,CAAC,eAAe;iBACxC;gBACD,QAAQ,EAAE;oBACR,eAAe,EAAE,OAAO,CAAC,eAAe;oBACxC,WAAW,EAAE,OAAO,CAAC,WAAW;iBACjC;aACF,CAAC;YAEF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aAC5E,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;gBAC/F,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"get-server-status.js","sourceRoot":"","sources":["../../../../src/interface/mcp/tools/get-server-status.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,8CAA8C,CAAC;AAE1E,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,SAAS,UAAU;IACjB,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QAC3E,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QACvD,OAAO,GAAG,CAAC,OAAO,IAAI,SAAS,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,MAAiB,EAAE,IAAkB;IAC/E,MAAM,YAAY,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAE7E,OAAO,MAAM,CAAC,YAAY,CAAC,mBAAmB,EAAE;QAC9C,WAAW,EAAE,4CAA4C;QACzD,WAAW,EAAE,EAAE;QACf,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;KAC1D,EAAE,KAAK,IAAI,EAAE;QACV,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,gBAAgB,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,CAAC;YAE7C,MAAM,MAAM,GAAG;gBACb,OAAO,EAAE,UAAU,EAAE;gBACrB,SAAS,EAAE;oBACT,GAAG,EAAE,SAAS,CAAC,GAAG;oBAClB,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI;oBAC1D,gBAAgB,EAAE,SAAS,CAAC,gBAAgB;iBAC7C;gBACD,MAAM,EAAE;oBACN,cAAc,EAAE,MAAM,CAAC,cAAc;oBACrC,eAAe,EAAE,MAAM,CAAC,eAAe;iBACxC;gBACD,QAAQ,EAAE;oBACR,eAAe,EAAE,OAAO,CAAC,eAAe;oBACxC,WAAW,EAAE,OAAO,CAAC,WAAW;iBACjC;aACF,CAAC;YAEF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;aACnE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;gBAC/F,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1,3 +1,3 @@
1
- import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
1
+ import type { McpServer, RegisteredTool } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  import type { Dependencies } from '../types.js';
3
- export declare function registerGetStatsTool(server: McpServer, deps: Dependencies): void;
3
+ export declare function registerGetStatsTool(server: McpServer, deps: Dependencies): RegisteredTool;
@@ -1,11 +1,15 @@
1
1
  import { GetStatsUseCase } from '../../../application/use-cases/get-stats.js';
2
2
  export function registerGetStatsTool(server, deps) {
3
3
  const useCase = new GetStatsUseCase(deps.candidateRepo, deps.chunkRepo, deps.applicationRepo, deps.applicationEventRepo);
4
- server.tool('get_stats', 'Get database statistics: total candidates, chunks, skill distribution, location counts, etc.', {}, async () => {
4
+ return server.registerTool('get_stats', {
5
+ description: 'DB stats: candidates, chunks, skills, locations, FTS index status',
6
+ inputSchema: {},
7
+ annotations: { readOnlyHint: true, openWorldHint: false },
8
+ }, async () => {
5
9
  try {
6
10
  const stats = await useCase.execute();
7
11
  return {
8
- content: [{ type: 'text', text: JSON.stringify(stats, null, 2) }],
12
+ content: [{ type: 'text', text: JSON.stringify(stats) }],
9
13
  };
10
14
  }
11
15
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"get-stats.js","sourceRoot":"","sources":["../../../../src/interface/mcp/tools/get-stats.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAG9E,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,IAAkB;IACxE,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAEzH,MAAM,CAAC,IAAI,CACT,WAAW,EACX,8FAA8F,EAC9F,EAAE,EACF,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;YACtC,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aAC3E,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;gBAC/F,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"get-stats.js","sourceRoot":"","sources":["../../../../src/interface/mcp/tools/get-stats.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAG9E,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,IAAkB;IACxE,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAEzH,OAAO,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE;QACtC,WAAW,EAAE,mEAAmE;QAChF,WAAW,EAAE,EAAE;QACf,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;KAC1D,EAAE,KAAK,IAAI,EAAE;QACV,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;YACtC,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;aAClE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;gBAC/F,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1,3 +1,3 @@
1
- import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
1
+ import type { McpServer, RegisteredTool } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  import type { Dependencies } from '../types.js';
3
- export declare function registerListCvsTool(server: McpServer, deps: Dependencies): void;
3
+ export declare function registerListCvsTool(server: McpServer, deps: Dependencies): RegisteredTool;
@@ -2,23 +2,44 @@ import { z } from 'zod/v4';
2
2
  import { ListCvsUseCase } from '../../../application/use-cases/list-cvs.js';
3
3
  export function registerListCvsTool(server, deps) {
4
4
  const useCase = new ListCvsUseCase(deps.candidateRepo);
5
- server.tool('list_cvs', 'List all candidates in the database with optional pagination and sorting.', {
6
- offset: z.number().optional().describe('Number of records to skip (default: 0)'),
7
- limit: z.number().optional().describe('Maximum number of records to return (default: 50)'),
8
- sort_by: z
9
- .enum(['name', 'created_at', 'updated_at', 'experience_years'])
10
- .optional()
11
- .describe('Field to sort by'),
12
- sort_order: z.enum(['asc', 'desc']).optional().describe('Sort direction'),
13
- }, async ({ offset, limit, sort_by, sort_order }) => {
5
+ return server.registerTool('list_cvs', {
6
+ description: 'List candidates with pagination and sorting',
7
+ inputSchema: {
8
+ offset: z.number().optional().describe('Skip count (default: 0)'),
9
+ limit: z.number().optional().describe('Max results (default: 50)'),
10
+ sort_by: z
11
+ .enum(['name', 'created_at', 'updated_at', 'experience_years'])
12
+ .optional()
13
+ .describe('Sort field'),
14
+ sort_order: z.enum(['asc', 'desc']).optional().describe('Sort direction'),
15
+ format: z.enum(['summary', 'detailed']).default('summary').describe('summary or full'),
16
+ pool: z.string().optional().describe('Filter by pool name (e.g., "genel", "frontend")'),
17
+ source: z.string().optional().describe('Filter by source channel (e.g., "email", "linkedin")'),
18
+ },
19
+ annotations: { readOnlyHint: true, openWorldHint: false },
20
+ }, async ({ offset, limit, sort_by, sort_order, format, pool, source }) => {
14
21
  try {
15
22
  const pagination = { offset: offset ?? 0, limit: limit ?? 50 };
16
23
  const sort = sort_by
17
24
  ? { field: sort_by, order: (sort_order ?? 'asc') }
18
25
  : undefined;
19
- const results = await useCase.execute(pagination, sort);
26
+ const results = await useCase.execute(pagination, sort, { pool, source });
27
+ const total = await deps.candidateRepo.count();
28
+ const currentOffset = pagination.offset;
29
+ const hasMore = currentOffset + results.length < total;
30
+ const nextOffset = hasMore ? currentOffset + results.length : null;
31
+ const items = format === 'summary'
32
+ ? results.map(c => ({
33
+ id: c.id,
34
+ name: c.name,
35
+ location: c.location,
36
+ experienceYears: c.experienceYears,
37
+ skillCount: Array.isArray(c.skills) ? c.skills.length : 0,
38
+ createdAt: c.createdAt,
39
+ }))
40
+ : results;
20
41
  return {
21
- content: [{ type: 'text', text: JSON.stringify(results, null, 2) }],
42
+ content: [{ type: 'text', text: JSON.stringify({ items, total, hasMore, nextOffset }) }],
22
43
  };
23
44
  }
24
45
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"list-cvs.js","sourceRoot":"","sources":["../../../../src/interface/mcp/tools/list-cvs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAI5E,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,IAAkB;IACvE,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAEvD,MAAM,CAAC,IAAI,CACT,UAAU,EACV,2EAA2E,EAC3E;QACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;QAChF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;QAC1F,OAAO,EAAE,CAAC;aACP,IAAI,CAAC,CAAC,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,kBAAkB,CAAC,CAAC;aAC9D,QAAQ,EAAE;aACV,QAAQ,CAAC,kBAAkB,CAAC;QAC/B,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;KAC1E,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE;QAC/C,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC;YAC/D,MAAM,IAAI,GAAG,OAAO;gBAClB,CAAC,CAAC,EAAE,KAAK,EAAE,OAAoB,EAAE,KAAK,EAAE,CAAC,UAAU,IAAI,KAAK,CAAc,EAAE;gBAC5E,CAAC,CAAC,SAAS,CAAC;YAEd,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YACxD,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aAC7E,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;gBAC/F,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"list-cvs.js","sourceRoot":"","sources":["../../../../src/interface/mcp/tools/list-cvs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAI5E,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,IAAkB;IACvE,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAEvD,OAAO,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE;QACrC,WAAW,EAAE,6CAA6C;QAC1D,WAAW,EAAE;YACX,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;YACjE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;YAClE,OAAO,EAAE,CAAC;iBACP,IAAI,CAAC,CAAC,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,kBAAkB,CAAC,CAAC;iBAC9D,QAAQ,EAAE;iBACV,QAAQ,CAAC,YAAY,CAAC;YACzB,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YACzE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YACtF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;YACvF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;SAC/F;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;KAC1D,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;QACtE,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC;YAC/D,MAAM,IAAI,GAAG,OAAO;gBAClB,CAAC,CAAC,EAAE,KAAK,EAAE,OAAoB,EAAE,KAAK,EAAE,CAAC,UAAU,IAAI,KAAK,CAAc,EAAE;gBAC5E,CAAC,CAAC,SAAS,CAAC;YAEd,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1E,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;YAC/C,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC;YACxC,MAAM,OAAO,GAAG,aAAa,GAAG,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;YACvD,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;YAEnE,MAAM,KAAK,GAAG,MAAM,KAAK,SAAS;gBAChC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBAChB,EAAE,EAAE,CAAC,CAAC,EAAE;oBACR,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,eAAe,EAAE,CAAC,CAAC,eAAe;oBAClC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBACzD,SAAS,EAAE,CAAC,CAAC,SAAS;iBACvB,CAAC,CAAC;gBACL,CAAC,CAAC,OAAO,CAAC;YAEZ,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;aAClG,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;gBAC/F,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1,3 +1,3 @@
1
- import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
1
+ import type { McpServer, RegisteredTool } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  import type { Dependencies } from '../types.js';
3
- export declare function registerListJobPostingsTool(server: McpServer, deps: Dependencies): void;
3
+ export declare function registerListJobPostingsTool(server: McpServer, deps: Dependencies): RegisteredTool;
@@ -1,11 +1,15 @@
1
1
  import { ListJobPostingsUseCase } from '../../../application/use-cases/list-job-postings.js';
2
2
  export function registerListJobPostingsTool(server, deps) {
3
3
  const useCase = new ListJobPostingsUseCase(deps.jobPostingRepo);
4
- server.tool('list_job_postings', 'List all job postings.', {}, async () => {
4
+ return server.registerTool('list_job_postings', {
5
+ description: 'List all job postings.',
6
+ inputSchema: {},
7
+ annotations: { readOnlyHint: true, openWorldHint: false },
8
+ }, async () => {
5
9
  try {
6
10
  const postings = await useCase.execute();
7
11
  return {
8
- content: [{ type: 'text', text: JSON.stringify(postings, null, 2) }],
12
+ content: [{ type: 'text', text: JSON.stringify({ items: postings, total: postings.length }) }],
9
13
  };
10
14
  }
11
15
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"list-job-postings.js","sourceRoot":"","sources":["../../../../src/interface/mcp/tools/list-job-postings.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,qDAAqD,CAAC;AAG7F,MAAM,UAAU,2BAA2B,CAAC,MAAiB,EAAE,IAAkB;IAC/E,MAAM,OAAO,GAAG,IAAI,sBAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAEhE,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,wBAAwB,EACxB,EAAE,EACF,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;YACzC,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aAC9E,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;gBAC/F,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"list-job-postings.js","sourceRoot":"","sources":["../../../../src/interface/mcp/tools/list-job-postings.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,qDAAqD,CAAC;AAG7F,MAAM,UAAU,2BAA2B,CAAC,MAAiB,EAAE,IAAkB;IAC/E,MAAM,OAAO,GAAG,IAAI,sBAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAEhE,OAAO,MAAM,CAAC,YAAY,CAAC,mBAAmB,EAAE;QAC9C,WAAW,EAAE,wBAAwB;QACrC,WAAW,EAAE,EAAE;QACf,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;KAC1D,EAAE,KAAK,IAAI,EAAE;QACV,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;YACzC,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;aACxG,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;gBAC/F,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1,3 +1,3 @@
1
- import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
1
+ import type { McpServer, RegisteredTool } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  import type { Dependencies } from '../types.js';
3
- export declare function registerListReferenceCvsTool(server: McpServer, deps: Dependencies): void;
3
+ export declare function registerListReferenceCvsTool(server: McpServer, deps: Dependencies): RegisteredTool;
@@ -2,13 +2,17 @@ import { z } from 'zod/v4';
2
2
  import { ListReferenceCvsUseCase } from '../../../application/use-cases/list-reference-cvs.js';
3
3
  export function registerListReferenceCvsTool(server, deps) {
4
4
  const useCase = new ListReferenceCvsUseCase(deps.referenceCvRepo, deps.jobPostingRepo);
5
- server.tool('list_reference_cvs', 'List all reference/benchmark CVs for a job posting. These are the ideal candidate profiles that successful hires match.', {
6
- job_posting_id: z.string().describe('ID of the job posting'),
5
+ return server.registerTool('list_reference_cvs', {
6
+ description: 'Reference/benchmark CVs for a job posting',
7
+ inputSchema: {
8
+ job_posting_id: z.string().describe('Job posting ID'),
9
+ },
10
+ annotations: { readOnlyHint: true, openWorldHint: false },
7
11
  }, async ({ job_posting_id }) => {
8
12
  try {
9
13
  const result = await useCase.execute({ jobPostingId: job_posting_id });
10
14
  return {
11
- content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
15
+ content: [{ type: 'text', text: JSON.stringify({ items: result.references, total: result.total, jobPostingTitle: result.jobPostingTitle }) }],
12
16
  };
13
17
  }
14
18
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"list-reference-cvs.js","sourceRoot":"","sources":["../../../../src/interface/mcp/tools/list-reference-cvs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,sDAAsD,CAAC;AAG/F,MAAM,UAAU,4BAA4B,CAAC,MAAiB,EAAE,IAAkB;IAChF,MAAM,OAAO,GAAG,IAAI,uBAAuB,CACzC,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,cAAc,CACpB,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,yHAAyH,EACzH;QACE,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;KAC7D,EACD,KAAK,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE;QAC3B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC,CAAC;YACvE,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aAC5E,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;gBAC/F,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"list-reference-cvs.js","sourceRoot":"","sources":["../../../../src/interface/mcp/tools/list-reference-cvs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,sDAAsD,CAAC;AAG/F,MAAM,UAAU,4BAA4B,CAAC,MAAiB,EAAE,IAAkB;IAChF,MAAM,OAAO,GAAG,IAAI,uBAAuB,CACzC,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,cAAc,CACpB,CAAC;IAEF,OAAO,MAAM,CAAC,YAAY,CAAC,oBAAoB,EAAE;QAC/C,WAAW,EAAE,2CAA2C;QACxD,WAAW,EAAE;YACX,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;SACtD;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;KAC1D,EAAE,KAAK,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE;QAC5B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC,CAAC;YACvE,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC,EAAE,CAAC;aACvJ,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;gBAC/F,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1,3 +1,3 @@
1
- import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
1
+ import type { McpServer, RegisteredTool } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  import type { Dependencies } from '../types.js';
3
- export declare function registerManageTagsTool(server: McpServer, deps: Dependencies): void;
3
+ export declare function registerManageTagsTool(server: McpServer, deps: Dependencies): RegisteredTool;
@@ -2,10 +2,14 @@ import { z } from 'zod/v4';
2
2
  import { ManageTagsUseCase } from '../../../application/use-cases/manage-tags.js';
3
3
  export function registerManageTagsTool(server, deps) {
4
4
  const useCase = new ManageTagsUseCase(deps.candidateRepo);
5
- server.tool('manage_tags', 'Add, remove, or list tags for a candidate. Tags can be used for filtering.', {
6
- candidate_id: z.string().describe('ID of the candidate'),
7
- action: z.enum(['add', 'remove', 'list']).describe('Tag action to perform'),
8
- tags: z.array(z.string()).optional().describe('Tags to add or remove (not needed for list action)'),
5
+ return server.registerTool('manage_tags', {
6
+ description: 'Add, remove, or list candidate tags',
7
+ inputSchema: {
8
+ candidate_id: z.string().describe('Candidate ID'),
9
+ action: z.enum(['add', 'remove', 'list']).describe('Tag action'),
10
+ tags: z.array(z.string()).optional().describe('Tags (not needed for list)'),
11
+ },
12
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false },
9
13
  }, async ({ candidate_id, action, tags }) => {
10
14
  try {
11
15
  const result = await useCase.execute(candidate_id, action, tags);
@@ -1 +1 @@
1
- {"version":3,"file":"manage-tags.js","sourceRoot":"","sources":["../../../../src/interface/mcp/tools/manage-tags.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAIlF,MAAM,UAAU,sBAAsB,CAAC,MAAiB,EAAE,IAAkB;IAC1E,MAAM,OAAO,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAE1D,MAAM,CAAC,IAAI,CACT,aAAa,EACb,4EAA4E,EAC5E;QACE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QACxD,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QAC3E,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;KACpG,EACD,KAAK,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;QACvC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,MAAmB,EAAE,IAAI,CAAC,CAAC;YAC9E,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;aAC7E,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;gBAC/F,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"manage-tags.js","sourceRoot":"","sources":["../../../../src/interface/mcp/tools/manage-tags.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAIlF,MAAM,UAAU,sBAAsB,CAAC,MAAiB,EAAE,IAAkB;IAC1E,MAAM,OAAO,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAE1D,OAAO,MAAM,CAAC,YAAY,CAAC,aAAa,EAAE;QACxC,WAAW,EAAE,qCAAqC;QAClD,WAAW,EAAE;YACX,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;YACjD,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;YAChE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;SAC5E;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;KACzG,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;QACxC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,MAAmB,EAAE,IAAI,CAAC,CAAC;YAC9E,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;aAC7E,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;gBAC/F,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1,3 +1,3 @@
1
- import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
1
+ import type { McpServer, RegisteredTool } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  import type { Dependencies } from '../types.js';
3
- export declare function registerMatchCandidatesTool(server: McpServer, deps: Dependencies): void;
3
+ export declare function registerMatchCandidatesTool(server: McpServer, deps: Dependencies): RegisteredTool;