@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.
- package/dist/__tests__/integration/hybrid-search.test.d.ts +1 -0
- package/dist/__tests__/integration/hybrid-search.test.js +70 -0
- package/dist/__tests__/integration/hybrid-search.test.js.map +1 -0
- package/dist/__tests__/unit/chunking.test.d.ts +1 -0
- package/dist/__tests__/unit/chunking.test.js +70 -0
- package/dist/__tests__/unit/chunking.test.js.map +1 -0
- package/dist/__tests__/unit/composite-score.test.d.ts +1 -0
- package/dist/__tests__/unit/composite-score.test.js +28 -0
- package/dist/__tests__/unit/composite-score.test.js.map +1 -0
- package/dist/__tests__/unit/find-similar-candidates.test.d.ts +1 -0
- package/dist/__tests__/unit/find-similar-candidates.test.js +33 -0
- package/dist/__tests__/unit/find-similar-candidates.test.js.map +1 -0
- package/dist/__tests__/unit/query-enhancer.test.d.ts +1 -0
- package/dist/__tests__/unit/query-enhancer.test.js +20 -0
- package/dist/__tests__/unit/query-enhancer.test.js.map +1 -0
- package/dist/__tests__/unit/skill-graph.test.d.ts +1 -0
- package/dist/__tests__/unit/skill-graph.test.js +38 -0
- package/dist/__tests__/unit/skill-graph.test.js.map +1 -0
- package/dist/__tests__/unit/skill-normalizer.test.d.ts +1 -0
- package/dist/__tests__/unit/skill-normalizer.test.js +41 -0
- package/dist/__tests__/unit/skill-normalizer.test.js.map +1 -0
- package/dist/__tests__/unit/smoke.test.d.ts +1 -0
- package/dist/__tests__/unit/smoke.test.js +7 -0
- package/dist/__tests__/unit/smoke.test.js.map +1 -0
- package/dist/application/dto/candidate-summary.d.ts +2 -0
- package/dist/application/dto/filter-input.d.ts +2 -0
- package/dist/application/dto/search-results.d.ts +3 -0
- package/dist/application/dto/stats.d.ts +6 -0
- package/dist/application/services/query-enhancer.d.ts +10 -0
- package/dist/application/services/query-enhancer.js +34 -0
- package/dist/application/services/query-enhancer.js.map +1 -0
- package/dist/application/use-cases/add-cv.d.ts +5 -1
- package/dist/application/use-cases/add-cv.js +25 -4
- package/dist/application/use-cases/add-cv.js.map +1 -1
- package/dist/application/use-cases/delete-cv.d.ts +5 -1
- package/dist/application/use-cases/delete-cv.js +13 -1
- package/dist/application/use-cases/delete-cv.js.map +1 -1
- package/dist/application/use-cases/delete-job-posting.d.ts +10 -0
- package/dist/application/use-cases/delete-job-posting.js +23 -0
- package/dist/application/use-cases/delete-job-posting.js.map +1 -0
- package/dist/application/use-cases/filter-candidates.js +12 -1
- package/dist/application/use-cases/filter-candidates.js.map +1 -1
- package/dist/application/use-cases/find-similar-candidates.d.ts +21 -0
- package/dist/application/use-cases/find-similar-candidates.js +85 -0
- package/dist/application/use-cases/find-similar-candidates.js.map +1 -0
- package/dist/application/use-cases/get-stats.js +2 -0
- package/dist/application/use-cases/get-stats.js.map +1 -1
- package/dist/application/use-cases/list-cvs.d.ts +2 -1
- package/dist/application/use-cases/list-cvs.js +18 -2
- package/dist/application/use-cases/list-cvs.js.map +1 -1
- package/dist/application/use-cases/match-candidates.d.ts +5 -1
- package/dist/application/use-cases/match-candidates.js +61 -19
- package/dist/application/use-cases/match-candidates.js.map +1 -1
- package/dist/application/use-cases/reindex-all.d.ts +22 -0
- package/dist/application/use-cases/reindex-all.js +124 -0
- package/dist/application/use-cases/reindex-all.js.map +1 -0
- package/dist/application/use-cases/semantic-search.d.ts +3 -1
- package/dist/application/use-cases/semantic-search.js +13 -3
- package/dist/application/use-cases/semantic-search.js.map +1 -1
- package/dist/application/use-cases/update-cv.d.ts +2 -1
- package/dist/application/use-cases/update-cv.js +18 -3
- package/dist/application/use-cases/update-cv.js.map +1 -1
- package/dist/domain/entities/candidate.d.ts +3 -0
- package/dist/domain/repositories/candidate-repository.d.ts +1 -0
- package/dist/domain/repositories/chunk-repository.d.ts +8 -0
- package/dist/infrastructure/config/app-config.d.ts +5 -0
- package/dist/infrastructure/config/app-config.js +4 -0
- package/dist/infrastructure/config/app-config.js.map +1 -1
- package/dist/infrastructure/persistence/database.d.ts +1 -0
- package/dist/infrastructure/persistence/database.js +20 -0
- package/dist/infrastructure/persistence/database.js.map +1 -1
- package/dist/infrastructure/persistence/lancedb-candidate-repository.d.ts +1 -0
- package/dist/infrastructure/persistence/lancedb-candidate-repository.js +20 -0
- package/dist/infrastructure/persistence/lancedb-candidate-repository.js.map +1 -1
- package/dist/infrastructure/persistence/lancedb-chunk-repository.d.ts +4 -1
- package/dist/infrastructure/persistence/lancedb-chunk-repository.js +64 -2
- package/dist/infrastructure/persistence/lancedb-chunk-repository.js.map +1 -1
- package/dist/interface/dashboard/public/200.html +1 -1
- package/dist/interface/dashboard/public/404.html +1 -1
- package/dist/interface/dashboard/public/_nuxt/builds/latest.json +1 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/05a92851-5bed-4eaf-bd75-e0aff9ec5876.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/1d36013b-8fb8-4cea-a448-d5f224b731ee.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/2bb695c5-c739-46a0-a3e6-4b76aa321c29.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/3ee0a1ee-8e79-4443-a6e7-b0b6412b0a38.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/ba31dbc0-8fe2-44bc-8214-6b3d717566a0.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/fc914bdb-64a6-4798-a08f-64eb8ea9a307.json +1 -0
- package/dist/interface/dashboard/public/index.html +1 -1
- package/dist/interface/mcp/server.js +105 -42
- package/dist/interface/mcp/server.js.map +1 -1
- package/dist/interface/mcp/tools/add-cv.d.ts +2 -2
- package/dist/interface/mcp/tools/add-cv.js +31 -3
- package/dist/interface/mcp/tools/add-cv.js.map +1 -1
- package/dist/interface/mcp/tools/add-job-posting.d.ts +2 -2
- package/dist/interface/mcp/tools/add-job-posting.js +20 -12
- package/dist/interface/mcp/tools/add-job-posting.js.map +1 -1
- package/dist/interface/mcp/tools/add-pipeline-note.d.ts +2 -2
- package/dist/interface/mcp/tools/add-pipeline-note.js +10 -6
- package/dist/interface/mcp/tools/add-pipeline-note.js.map +1 -1
- package/dist/interface/mcp/tools/add-reference-cv.d.ts +2 -2
- package/dist/interface/mcp/tools/add-reference-cv.js +9 -5
- package/dist/interface/mcp/tools/add-reference-cv.js.map +1 -1
- package/dist/interface/mcp/tools/add-to-pipeline.d.ts +2 -2
- package/dist/interface/mcp/tools/add-to-pipeline.js +9 -5
- package/dist/interface/mcp/tools/add-to-pipeline.js.map +1 -1
- package/dist/interface/mcp/tools/check-duplicate-candidate.d.ts +2 -2
- package/dist/interface/mcp/tools/check-duplicate-candidate.js +8 -4
- package/dist/interface/mcp/tools/check-duplicate-candidate.js.map +1 -1
- package/dist/interface/mcp/tools/compare-candidates.d.ts +2 -2
- package/dist/interface/mcp/tools/compare-candidates.js +8 -4
- package/dist/interface/mcp/tools/compare-candidates.js.map +1 -1
- package/dist/interface/mcp/tools/create-call-batch.d.ts +2 -2
- package/dist/interface/mcp/tools/create-call-batch.js +10 -6
- package/dist/interface/mcp/tools/create-call-batch.js.map +1 -1
- package/dist/interface/mcp/tools/delete-cv.d.ts +2 -2
- package/dist/interface/mcp/tools/delete-cv.js +29 -2
- package/dist/interface/mcp/tools/delete-cv.js.map +1 -1
- package/dist/interface/mcp/tools/delete-job-posting.d.ts +2 -2
- package/dist/interface/mcp/tools/delete-job-posting.js +32 -3
- package/dist/interface/mcp/tools/delete-job-posting.js.map +1 -1
- package/dist/interface/mcp/tools/export-results.d.ts +2 -2
- package/dist/interface/mcp/tools/export-results.js +7 -3
- package/dist/interface/mcp/tools/export-results.js.map +1 -1
- package/dist/interface/mcp/tools/filter-candidates.d.ts +2 -2
- package/dist/interface/mcp/tools/filter-candidates.js +17 -9
- package/dist/interface/mcp/tools/filter-candidates.js.map +1 -1
- package/dist/interface/mcp/tools/find-similar-candidates.d.ts +3 -0
- package/dist/interface/mcp/tools/find-similar-candidates.js +39 -0
- package/dist/interface/mcp/tools/find-similar-candidates.js.map +1 -0
- package/dist/interface/mcp/tools/generate-screening-report.d.ts +2 -2
- package/dist/interface/mcp/tools/generate-screening-report.js +8 -4
- package/dist/interface/mcp/tools/generate-screening-report.js.map +1 -1
- package/dist/interface/mcp/tools/get-call-batch-status.d.ts +2 -2
- package/dist/interface/mcp/tools/get-call-batch-status.js +7 -3
- package/dist/interface/mcp/tools/get-call-batch-status.js.map +1 -1
- package/dist/interface/mcp/tools/get-candidate-history.d.ts +2 -2
- package/dist/interface/mcp/tools/get-candidate-history.js +7 -3
- package/dist/interface/mcp/tools/get-candidate-history.js.map +1 -1
- package/dist/interface/mcp/tools/get-cv-chunks.d.ts +2 -2
- package/dist/interface/mcp/tools/get-cv-chunks.js +13 -9
- package/dist/interface/mcp/tools/get-cv-chunks.js.map +1 -1
- package/dist/interface/mcp/tools/get-cv-detail.d.ts +2 -2
- package/dist/interface/mcp/tools/get-cv-detail.js +6 -2
- package/dist/interface/mcp/tools/get-cv-detail.js.map +1 -1
- package/dist/interface/mcp/tools/get-cv-versions.d.ts +2 -2
- package/dist/interface/mcp/tools/get-cv-versions.js +6 -2
- package/dist/interface/mcp/tools/get-cv-versions.js.map +1 -1
- package/dist/interface/mcp/tools/get-job-posting.d.ts +2 -2
- package/dist/interface/mcp/tools/get-job-posting.js +7 -3
- package/dist/interface/mcp/tools/get-job-posting.js.map +1 -1
- package/dist/interface/mcp/tools/get-pending-actions.d.ts +2 -2
- package/dist/interface/mcp/tools/get-pending-actions.js +6 -2
- package/dist/interface/mcp/tools/get-pending-actions.js.map +1 -1
- package/dist/interface/mcp/tools/get-pipeline-candidates.d.ts +2 -2
- package/dist/interface/mcp/tools/get-pipeline-candidates.js +7 -3
- package/dist/interface/mcp/tools/get-pipeline-candidates.js.map +1 -1
- package/dist/interface/mcp/tools/get-pipeline.d.ts +2 -2
- package/dist/interface/mcp/tools/get-pipeline.js +7 -3
- package/dist/interface/mcp/tools/get-pipeline.js.map +1 -1
- package/dist/interface/mcp/tools/get-screening-history.d.ts +2 -2
- package/dist/interface/mcp/tools/get-screening-history.js +7 -3
- package/dist/interface/mcp/tools/get-screening-history.js.map +1 -1
- package/dist/interface/mcp/tools/get-server-status.d.ts +2 -2
- package/dist/interface/mcp/tools/get-server-status.js +6 -2
- package/dist/interface/mcp/tools/get-server-status.js.map +1 -1
- package/dist/interface/mcp/tools/get-stats.d.ts +2 -2
- package/dist/interface/mcp/tools/get-stats.js +6 -2
- package/dist/interface/mcp/tools/get-stats.js.map +1 -1
- package/dist/interface/mcp/tools/list-cvs.d.ts +2 -2
- package/dist/interface/mcp/tools/list-cvs.js +32 -11
- package/dist/interface/mcp/tools/list-cvs.js.map +1 -1
- package/dist/interface/mcp/tools/list-job-postings.d.ts +2 -2
- package/dist/interface/mcp/tools/list-job-postings.js +6 -2
- package/dist/interface/mcp/tools/list-job-postings.js.map +1 -1
- package/dist/interface/mcp/tools/list-reference-cvs.d.ts +2 -2
- package/dist/interface/mcp/tools/list-reference-cvs.js +7 -3
- package/dist/interface/mcp/tools/list-reference-cvs.js.map +1 -1
- package/dist/interface/mcp/tools/manage-tags.d.ts +2 -2
- package/dist/interface/mcp/tools/manage-tags.js +8 -4
- package/dist/interface/mcp/tools/manage-tags.js.map +1 -1
- package/dist/interface/mcp/tools/match-candidates.d.ts +2 -2
- package/dist/interface/mcp/tools/match-candidates.js +26 -12
- package/dist/interface/mcp/tools/match-candidates.js.map +1 -1
- package/dist/interface/mcp/tools/reindex-all.d.ts +3 -0
- package/dist/interface/mcp/tools/reindex-all.js +31 -0
- package/dist/interface/mcp/tools/reindex-all.js.map +1 -0
- package/dist/interface/mcp/tools/remove-reference-cv.d.ts +2 -2
- package/dist/interface/mcp/tools/remove-reference-cv.js +29 -2
- package/dist/interface/mcp/tools/remove-reference-cv.js.map +1 -1
- package/dist/interface/mcp/tools/reset-database.d.ts +2 -2
- package/dist/interface/mcp/tools/reset-database.js +29 -2
- package/dist/interface/mcp/tools/reset-database.js.map +1 -1
- package/dist/interface/mcp/tools/semantic-search.d.ts +2 -2
- package/dist/interface/mcp/tools/semantic-search.js +24 -11
- package/dist/interface/mcp/tools/semantic-search.js.map +1 -1
- package/dist/interface/mcp/tools/set-pending-action.d.ts +2 -2
- package/dist/interface/mcp/tools/set-pending-action.js +16 -12
- package/dist/interface/mcp/tools/set-pending-action.js.map +1 -1
- package/dist/interface/mcp/tools/update-call-outcome.d.ts +2 -2
- package/dist/interface/mcp/tools/update-call-outcome.js +10 -6
- package/dist/interface/mcp/tools/update-call-outcome.js.map +1 -1
- package/dist/interface/mcp/tools/update-cv.d.ts +2 -2
- package/dist/interface/mcp/tools/update-cv.js +16 -6
- package/dist/interface/mcp/tools/update-cv.js.map +1 -1
- package/dist/interface/mcp/tools/update-job-posting.d.ts +2 -2
- package/dist/interface/mcp/tools/update-job-posting.js +16 -12
- package/dist/interface/mcp/tools/update-job-posting.js.map +1 -1
- package/dist/interface/mcp/tools/update-pipeline-status.d.ts +2 -2
- package/dist/interface/mcp/tools/update-pipeline-status.js +9 -5
- package/dist/interface/mcp/tools/update-pipeline-status.js.map +1 -1
- package/dist/interface/mcp/types.d.ts +2 -0
- package/dist/shared/data/skill-graph.json +115 -0
- package/dist/shared/data/skill-map.json +104 -0
- package/dist/shared/mcp/logger.d.ts +7 -0
- package/dist/shared/mcp/logger.js +20 -0
- package/dist/shared/mcp/logger.js.map +1 -0
- package/dist/shared/mcp/progress.d.ts +6 -0
- package/dist/shared/mcp/progress.js +33 -0
- package/dist/shared/mcp/progress.js.map +1 -0
- package/dist/shared/services/skill-graph.d.ts +11 -0
- package/dist/shared/services/skill-graph.js +84 -0
- package/dist/shared/services/skill-graph.js.map +1 -0
- package/dist/shared/services/skill-normalizer.d.ts +6 -0
- package/dist/shared/services/skill-normalizer.js +32 -0
- package/dist/shared/services/skill-normalizer.js.map +1 -0
- package/dist/shared/types/index.d.ts +3 -1
- package/dist/shared/utils/chunking.d.ts +9 -1
- package/dist/shared/utils/chunking.js +46 -36
- package/dist/shared/utils/chunking.js.map +1 -1
- package/dist/shared/utils/skill-migration.d.ts +6 -0
- package/dist/shared/utils/skill-migration.js +35 -0
- package/dist/shared/utils/skill-migration.js.map +1 -0
- 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,
|
|
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):
|
|
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.
|
|
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 }
|
|
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,
|
|
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):
|
|
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.
|
|
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
|
|
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,
|
|
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):
|
|
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.
|
|
4
|
-
|
|
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
|
|
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,
|
|
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):
|
|
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.
|
|
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
|
|
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,
|
|
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):
|
|
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.
|
|
6
|
-
|
|
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
|
|
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,
|
|
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):
|
|
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.
|
|
6
|
-
|
|
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
|
|
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,
|
|
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):
|
|
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.
|
|
6
|
-
|
|
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
|
|
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,
|
|
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):
|
|
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.
|
|
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
|
|
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,
|
|
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):
|
|
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.
|
|
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
|
|
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,
|
|
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):
|
|
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.
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
.
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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(
|
|
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,
|
|
1
|
+
{"version":3,"file":"list-cvs.js","sourceRoot":"","sources":["../../../../src/interface/mcp/tools/list-cvs.ts"],"names":[],"mappings":"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"}
|
|
@@ -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):
|
|
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.
|
|
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,
|
|
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,
|
|
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):
|
|
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.
|
|
6
|
-
|
|
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,
|
|
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,
|
|
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):
|
|
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.
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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,
|
|
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):
|
|
3
|
+
export declare function registerMatchCandidatesTool(server: McpServer, deps: Dependencies): RegisteredTool;
|