boondmanager-mcp-server 2.17.0 → 2.18.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/README.md +22 -1
- package/dist/config/transport-kind.d.ts +8 -0
- package/dist/config/transport-kind.d.ts.map +1 -0
- package/dist/config/transport-kind.js +13 -0
- package/dist/config/transport-kind.js.map +1 -0
- package/dist/constants.d.ts +7 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +7 -0
- package/dist/constants.js.map +1 -1
- package/dist/index.js +1 -7
- package/dist/index.js.map +1 -1
- package/dist/schemas/index.d.ts +57 -1
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +126 -7
- package/dist/schemas/index.js.map +1 -1
- package/dist/services/format/summary.d.ts +7 -0
- package/dist/services/format/summary.d.ts.map +1 -1
- package/dist/services/format/summary.js +24 -2
- package/dist/services/format/summary.js.map +1 -1
- package/dist/services/http/transport.d.ts +16 -4
- package/dist/services/http/transport.d.ts.map +1 -1
- package/dist/services/http/transport.js +15 -4
- package/dist/services/http/transport.js.map +1 -1
- package/dist/services/upload-source.d.ts +31 -0
- package/dist/services/upload-source.d.ts.map +1 -0
- package/dist/services/upload-source.js +180 -0
- package/dist/services/upload-source.js.map +1 -0
- package/dist/tools/candidates.d.ts +7 -0
- package/dist/tools/candidates.d.ts.map +1 -1
- package/dist/tools/candidates.js +96 -1
- package/dist/tools/candidates.js.map +1 -1
- package/dist/tools/crud-factory.d.ts.map +1 -1
- package/dist/tools/crud-factory.js +4 -3
- package/dist/tools/crud-factory.js.map +1 -1
- package/dist/tools/description-builders.d.ts.map +1 -1
- package/dist/tools/description-builders.js +1 -1
- package/dist/tools/description-builders.js.map +1 -1
- package/dist/tools/documents.d.ts.map +1 -1
- package/dist/tools/documents.js +41 -7
- package/dist/tools/documents.js.map +1 -1
- package/dist/tools/usage-guidance.d.ts.map +1 -1
- package/dist/tools/usage-guidance.js +12 -3
- package/dist/tools/usage-guidance.js.map +1 -1
- package/manifest.json +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File sources for `boond_documents_create` beyond `fileUrl`.
|
|
3
|
+
*
|
|
4
|
+
* Until this module, the only way to attach a document was a public https URL
|
|
5
|
+
* that BoondManager downloads itself, and the server never read a byte of file
|
|
6
|
+
* content. That posture stays the default: both sources below are bounded, and
|
|
7
|
+
* the one that touches the disk is **off unless the operator opts in**.
|
|
8
|
+
*
|
|
9
|
+
* - `filePath` (stdio only, opt-in): the server reads a local file, but only
|
|
10
|
+
* under a directory listed in `BOOND_MCP_UPLOAD_DIRS`. The check runs on the
|
|
11
|
+
* `realpath` of both sides, so `..` segments and symlinks pointing outside an
|
|
12
|
+
* allowed directory are refused. Over HTTP the server does not run on the
|
|
13
|
+
* user's machine, so a path would name a file on the *server* host — refused.
|
|
14
|
+
* - `fileContent` (base64, every transport, always on): no disk access at all,
|
|
15
|
+
* capped at {@link INLINE_UPLOAD_MAX_BYTES} because every byte is paid ~1.33×
|
|
16
|
+
* in the model's output tokens.
|
|
17
|
+
*
|
|
18
|
+
* Both sources are sniffed by magic bytes, not by extension, and must match a
|
|
19
|
+
* short allow-list of document formats: the declared name decides nothing.
|
|
20
|
+
*/
|
|
21
|
+
import { readFile, realpath, stat } from "node:fs/promises";
|
|
22
|
+
import { basename, extname, isAbsolute, sep } from "node:path";
|
|
23
|
+
import { readCsv, readPositiveInt } from "../config/env.js";
|
|
24
|
+
import { resolveTransport } from "../config/transport-kind.js";
|
|
25
|
+
import { DEFAULT_UPLOAD_MAX_BYTES, INLINE_UPLOAD_MAX_BYTES } from "../constants.js";
|
|
26
|
+
/** A refusal whose message is meant for the caller, not a crash. */
|
|
27
|
+
export class UploadRejectedError extends Error {
|
|
28
|
+
constructor(message) {
|
|
29
|
+
super(message);
|
|
30
|
+
this.name = "UploadRejectedError";
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
const OOXML = {
|
|
34
|
+
".docx": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
|
|
35
|
+
".xlsx": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
|
36
|
+
".pptx": "application/vnd.openxmlformats-officedocument.presentationml.presentation",
|
|
37
|
+
".odt": "application/vnd.oasis.opendocument.text",
|
|
38
|
+
".ods": "application/vnd.oasis.opendocument.spreadsheet",
|
|
39
|
+
};
|
|
40
|
+
const LEGACY_OFFICE = {
|
|
41
|
+
".doc": "application/msword",
|
|
42
|
+
".xls": "application/vnd.ms-excel",
|
|
43
|
+
".ppt": "application/vnd.ms-powerpoint",
|
|
44
|
+
};
|
|
45
|
+
function startsWith(data, bytes, offset = 0) {
|
|
46
|
+
if (data.length < offset + bytes.length)
|
|
47
|
+
return false;
|
|
48
|
+
return bytes.every((b, i) => data[offset + i] === b);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* The document type of `data`, from its leading bytes. ZIP and OLE containers
|
|
52
|
+
* are ambiguous by content alone (a .docx and a .xlsx share a signature), so
|
|
53
|
+
* for those two families the extension picks the member — but only among
|
|
54
|
+
* formats of that container: a ZIP named `.pdf` is still refused.
|
|
55
|
+
*/
|
|
56
|
+
export function sniffDocumentType(data, filename) {
|
|
57
|
+
const ext = extname(filename).toLowerCase();
|
|
58
|
+
if (startsWith(data, [0x25, 0x50, 0x44, 0x46, 0x2d]))
|
|
59
|
+
return { contentType: "application/pdf", extensions: [".pdf"] };
|
|
60
|
+
if (startsWith(data, [0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]))
|
|
61
|
+
return { contentType: "image/png", extensions: [".png"] };
|
|
62
|
+
if (startsWith(data, [0xff, 0xd8, 0xff]))
|
|
63
|
+
return { contentType: "image/jpeg", extensions: [".jpg", ".jpeg"] };
|
|
64
|
+
if (startsWith(data, [0x47, 0x49, 0x46, 0x38]))
|
|
65
|
+
return { contentType: "image/gif", extensions: [".gif"] };
|
|
66
|
+
if (startsWith(data, [0x52, 0x49, 0x46, 0x46]) && startsWith(data, [0x57, 0x45, 0x42, 0x50], 8))
|
|
67
|
+
return { contentType: "image/webp", extensions: [".webp"] };
|
|
68
|
+
if (startsWith(data, [0x7b, 0x5c, 0x72, 0x74, 0x66]))
|
|
69
|
+
return { contentType: "application/rtf", extensions: [".rtf"] };
|
|
70
|
+
if (startsWith(data, [0x50, 0x4b, 0x03, 0x04])) {
|
|
71
|
+
const contentType = OOXML[ext];
|
|
72
|
+
return contentType ? { contentType, extensions: [ext] } : undefined;
|
|
73
|
+
}
|
|
74
|
+
if (startsWith(data, [0xd0, 0xcf, 0x11, 0xe0, 0xa1, 0xb1, 0x1a, 0xe1])) {
|
|
75
|
+
const contentType = LEGACY_OFFICE[ext];
|
|
76
|
+
return contentType ? { contentType, extensions: [ext] } : undefined;
|
|
77
|
+
}
|
|
78
|
+
return undefined;
|
|
79
|
+
}
|
|
80
|
+
const ACCEPTED_FORMATS = "PDF, DOCX/XLSX/PPTX, ODT/ODS, DOC/XLS/PPT, RTF, PNG, JPEG, GIF, WebP";
|
|
81
|
+
function typeOrReject(data, filename) {
|
|
82
|
+
const sniffed = sniffDocumentType(data, filename);
|
|
83
|
+
if (!sniffed) {
|
|
84
|
+
throw new UploadRejectedError(`Format non accepté pour « ${filename} » : le contenu ne correspond à aucun format autorisé (${ACCEPTED_FORMATS}). ` +
|
|
85
|
+
"Le type est déterminé par les premiers octets du fichier, pas par son extension.");
|
|
86
|
+
}
|
|
87
|
+
if (!sniffed.extensions.includes(extname(filename).toLowerCase())) {
|
|
88
|
+
throw new UploadRejectedError(`Extension incohérente pour « ${filename} » : le contenu est de type ${sniffed.contentType} ` +
|
|
89
|
+
`(extension attendue : ${sniffed.extensions.join(" ou ")}).`);
|
|
90
|
+
}
|
|
91
|
+
return sniffed.contentType;
|
|
92
|
+
}
|
|
93
|
+
function mb(bytes) {
|
|
94
|
+
return (bytes / 1024 / 1024).toFixed(1);
|
|
95
|
+
}
|
|
96
|
+
/** The allowed upload directories, resolved to real paths. Missing ones are skipped. */
|
|
97
|
+
async function allowedDirs(env) {
|
|
98
|
+
const raw = readCsv("BOOND_MCP_UPLOAD_DIRS", env);
|
|
99
|
+
if (!raw)
|
|
100
|
+
return undefined;
|
|
101
|
+
const resolved = [];
|
|
102
|
+
for (const dir of raw) {
|
|
103
|
+
if (!isAbsolute(dir))
|
|
104
|
+
continue;
|
|
105
|
+
try {
|
|
106
|
+
resolved.push(await realpath(dir));
|
|
107
|
+
}
|
|
108
|
+
catch {
|
|
109
|
+
// A listed directory that does not exist allows nothing; not fatal.
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return resolved;
|
|
113
|
+
}
|
|
114
|
+
function isInside(file, dir) {
|
|
115
|
+
const prefix = dir.endsWith(sep) ? dir : dir + sep;
|
|
116
|
+
return file.startsWith(prefix);
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Read a local file for upload, enforcing the operator's policy: stdio
|
|
120
|
+
* transport, an allowed directory (after symlink resolution), a regular file,
|
|
121
|
+
* the size ceiling, and an accepted document format.
|
|
122
|
+
*/
|
|
123
|
+
export async function readLocalUpload(filePath, env = process.env) {
|
|
124
|
+
if (resolveTransport(env) === "http") {
|
|
125
|
+
throw new UploadRejectedError("`filePath` est indisponible en transport HTTP : le serveur ne tourne pas sur le poste de l'utilisateur. " +
|
|
126
|
+
"Utiliser `fileUrl`, ou `fileContent` (base64) pour un petit fichier.");
|
|
127
|
+
}
|
|
128
|
+
const dirs = await allowedDirs(env);
|
|
129
|
+
if (dirs === undefined) {
|
|
130
|
+
throw new UploadRejectedError("Téléversement de fichiers locaux désactivé. L'opérateur du serveur doit définir `BOOND_MCP_UPLOAD_DIRS` " +
|
|
131
|
+
"(répertoires autorisés, chemins absolus). En attendant : `fileUrl`, ou `fileContent` (base64) pour un petit fichier.");
|
|
132
|
+
}
|
|
133
|
+
if (!isAbsolute(filePath)) {
|
|
134
|
+
throw new UploadRejectedError(`\`filePath\` doit être un chemin absolu (reçu : « ${filePath} »).`);
|
|
135
|
+
}
|
|
136
|
+
let real;
|
|
137
|
+
try {
|
|
138
|
+
real = await realpath(filePath);
|
|
139
|
+
}
|
|
140
|
+
catch {
|
|
141
|
+
throw new UploadRejectedError(`Fichier introuvable : « ${filePath} ».`);
|
|
142
|
+
}
|
|
143
|
+
if (!dirs.some((dir) => isInside(real, dir))) {
|
|
144
|
+
throw new UploadRejectedError(`« ${filePath} » est hors des répertoires autorisés par \`BOOND_MCP_UPLOAD_DIRS\` (liens symboliques résolus).`);
|
|
145
|
+
}
|
|
146
|
+
const info = await stat(real);
|
|
147
|
+
if (!info.isFile())
|
|
148
|
+
throw new UploadRejectedError(`« ${filePath} » n'est pas un fichier.`);
|
|
149
|
+
const maxBytes = readPositiveInt("BOOND_MCP_UPLOAD_MAX_BYTES", DEFAULT_UPLOAD_MAX_BYTES, env);
|
|
150
|
+
if (info.size > maxBytes) {
|
|
151
|
+
throw new UploadRejectedError(`Fichier trop volumineux : ${mb(info.size)} Mo (max ${mb(maxBytes)} Mo, \`BOOND_MCP_UPLOAD_MAX_BYTES\`).`);
|
|
152
|
+
}
|
|
153
|
+
const data = await readFile(real);
|
|
154
|
+
// The file may have grown between stat() and readFile().
|
|
155
|
+
if (data.length > maxBytes) {
|
|
156
|
+
throw new UploadRejectedError(`Fichier trop volumineux : ${mb(data.length)} Mo (max ${mb(maxBytes)} Mo).`);
|
|
157
|
+
}
|
|
158
|
+
const filename = basename(real);
|
|
159
|
+
return { data, filename, contentType: typeOrReject(data, filename) };
|
|
160
|
+
}
|
|
161
|
+
const BASE64 = /^[A-Za-z0-9+/]*={0,2}$/;
|
|
162
|
+
/** Decode base64 content passed inline, with an optional `data:` URI prefix. */
|
|
163
|
+
export function decodeInlineUpload(fileContent, fileName) {
|
|
164
|
+
const filename = basename(fileName.replace(/\\/g, "/")).trim();
|
|
165
|
+
if (filename.length === 0 || filename === "." || filename === "..") {
|
|
166
|
+
throw new UploadRejectedError("`fileName` doit être un nom de fichier avec son extension (ex. « cv.pdf »).");
|
|
167
|
+
}
|
|
168
|
+
const payload = fileContent.replace(/^data:[^;,]*;base64,/, "").replace(/\s+/g, "");
|
|
169
|
+
if (payload.length === 0 || payload.length % 4 !== 0 || !BASE64.test(payload)) {
|
|
170
|
+
throw new UploadRejectedError("`fileContent` n'est pas du base64 valide.");
|
|
171
|
+
}
|
|
172
|
+
const decodedLength = (payload.length / 4) * 3 - (payload.endsWith("==") ? 2 : payload.endsWith("=") ? 1 : 0);
|
|
173
|
+
if (decodedLength > INLINE_UPLOAD_MAX_BYTES) {
|
|
174
|
+
throw new UploadRejectedError(`Contenu inline trop volumineux : ${mb(decodedLength)} Mo (max ${mb(INLINE_UPLOAD_MAX_BYTES)} Mo). ` +
|
|
175
|
+
"Pour un fichier plus gros : `filePath` (serveur local) ou `fileUrl`.");
|
|
176
|
+
}
|
|
177
|
+
const data = Buffer.from(payload, "base64");
|
|
178
|
+
return { data, filename, contentType: typeOrReject(data, filename) };
|
|
179
|
+
}
|
|
180
|
+
//# sourceMappingURL=upload-source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upload-source.js","sourceRoot":"","sources":["../../src/services/upload-source.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,10 @@
|
|
|
1
1
|
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
import type { JsonApiResponse } from "../types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Boond silently drops attributes it does not accept on a PUT (e.g. `mainSkills`
|
|
5
|
+
* on /information). Compare what was sent with what the API echoes back so the
|
|
6
|
+
* caller learns about ignored writes instead of assuming success.
|
|
7
|
+
*/
|
|
8
|
+
export declare function unpersistedKeys(sent: Record<string, unknown>, response: JsonApiResponse): string[];
|
|
2
9
|
export declare function registerCandidateTools(server: McpServer): void;
|
|
3
10
|
//# sourceMappingURL=candidates.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"candidates.d.ts","sourceRoot":"","sources":["../../src/tools/candidates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"candidates.d.ts","sourceRoot":"","sources":["../../src/tools/candidates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAqBzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAwFnD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,eAAe,GAAG,MAAM,EAAE,CAMlG;AAaD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiG9D"}
|
package/dist/tools/candidates.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { CandidateCreateSchema, CandidateUpdateSchema, CandidateSearchSchema } from "../schemas/index.js";
|
|
1
|
+
import { CandidateCreateSchema, CandidateUpdateSchema, CandidateSearchSchema, CandidateTechnicalDataUpdateSchema, CandidateAdministrativeUpdateSchema, } from "../schemas/index.js";
|
|
2
2
|
import { registerSearchTool, registerGetTool, registerCreateTool, registerUpdateTool, registerDeleteTool, buildJsonApiBody, } from "./crud-factory.js";
|
|
3
3
|
import { registerTabTools } from "./tab-tools.js";
|
|
4
|
+
import { apiRequest, formatDetailResponse } from "../services/boond-client.js";
|
|
5
|
+
import { mergeTechnicalData } from "./resources.js";
|
|
4
6
|
const OPTS = {
|
|
5
7
|
entityName: "candidat",
|
|
6
8
|
entityNamePlural: "candidats",
|
|
@@ -63,6 +65,43 @@ Cas d'usage courants :
|
|
|
63
65
|
Tri : \`sort\` + \`order\`.
|
|
64
66
|
|
|
65
67
|
Returns : liste paginée des candidats. Utiliser \`boond_candidates_get\` ou les outils d'onglets pour le détail.`;
|
|
68
|
+
const CANDIDATE_TECHNICAL_DATA_UPDATE_DESCRIPTION = `Met à jour le dossier technique (DT) d'un candidat : compétences, outils, langues, profils (activityAreas), secteurs (expertiseAreas), formation, diplômes, expérience, résumé.
|
|
69
|
+
|
|
70
|
+
Mode 'merge' (défaut, recommandé pour automation) — enrichit sans rien écraser :
|
|
71
|
+
• skills (CSV) : concatène les compétences absentes
|
|
72
|
+
• tools / languages : ajoute les entrées dont la clé (slug outil / langue) est nouvelle, conserve le niveau existant pour les autres
|
|
73
|
+
• expertiseAreas, activityAreas, diplomas : ajoute les items absents
|
|
74
|
+
• title, summary, training, experience : remplis UNIQUEMENT si actuellement vides
|
|
75
|
+
|
|
76
|
+
Mode 'replace' — remplace intégralement chaque champ fourni. Les champs non passés ne sont pas touchés.
|
|
77
|
+
|
|
78
|
+
⚠️ experience, training, expertiseAreas, activityAreas et tools prennent des IDs de dictionnaire (\`setting.experience\`, \`setting.training\`, \`setting.expertiseArea\`, \`setting.activityArea\`, \`setting.tool\`), jamais des libellés.
|
|
79
|
+
|
|
80
|
+
Returns : confirmation, liste des champs envoyés mais non retrouvés dans la réponse de l'API (écriture ignorée par Boond), puis le DT mis à jour.`;
|
|
81
|
+
const CANDIDATE_ADMINISTRATIVE_UPDATE_DESCRIPTION = `Met à jour l'onglet Administratif d'un candidat : nationalité, salaire souhaité (fourchette), salaire actuel, contrat souhaité, commentaires.
|
|
82
|
+
|
|
83
|
+
Seuls les champs fournis sont envoyés. Données personnelles : n'écrire que ce que le candidat a communiqué (CV, entretien).
|
|
84
|
+
|
|
85
|
+
Returns : confirmation, liste des champs non retrouvés dans la réponse de l'API, puis le bloc administratif mis à jour.`;
|
|
86
|
+
/**
|
|
87
|
+
* Boond silently drops attributes it does not accept on a PUT (e.g. `mainSkills`
|
|
88
|
+
* on /information). Compare what was sent with what the API echoes back so the
|
|
89
|
+
* caller learns about ignored writes instead of assuming success.
|
|
90
|
+
*/
|
|
91
|
+
export function unpersistedKeys(sent, response) {
|
|
92
|
+
const entity = Array.isArray(response.data) ? response.data[0] : response.data;
|
|
93
|
+
const attrs = entity?.attributes ?? {};
|
|
94
|
+
const norm = (v) => JSON.stringify(v, (_k, val) => (typeof val === "string" ? val.trim() : val)) ?? "";
|
|
95
|
+
return Object.keys(sent).filter((k) => !(k in attrs) || norm(attrs[k]) !== norm(sent[k]));
|
|
96
|
+
}
|
|
97
|
+
function writeReport(label, id, sent, response) {
|
|
98
|
+
const missing = unpersistedKeys(sent, response);
|
|
99
|
+
const warn = missing.length > 0 ? `⚠️ Champs non confirmés par l'API (à vérifier dans Boond) : ${missing.join(", ")}\n\n` : "";
|
|
100
|
+
return `✅ ${label} du candidat #${id} mis à jour.\n\n${warn}${formatDetailResponse(response)}`;
|
|
101
|
+
}
|
|
102
|
+
function definedOnly(obj) {
|
|
103
|
+
return Object.fromEntries(Object.entries(obj).filter(([, v]) => v !== undefined));
|
|
104
|
+
}
|
|
66
105
|
export function registerCandidateTools(server) {
|
|
67
106
|
registerSearchTool(server, OPTS, {
|
|
68
107
|
schema: CandidateSearchSchema,
|
|
@@ -81,6 +120,62 @@ export function registerCandidateTools(server) {
|
|
|
81
120
|
return buildJsonApiBody("candidate", attrs, id);
|
|
82
121
|
}, { method: "PUT", pathSuffix: "information" });
|
|
83
122
|
registerDeleteTool(server, OPTS);
|
|
123
|
+
server.registerTool("boond_candidates_technical_data_update", {
|
|
124
|
+
title: "Mettre à jour le dossier technique d'un candidat",
|
|
125
|
+
description: CANDIDATE_TECHNICAL_DATA_UPDATE_DESCRIPTION,
|
|
126
|
+
inputSchema: CandidateTechnicalDataUpdateSchema,
|
|
127
|
+
annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
128
|
+
}, async (params) => {
|
|
129
|
+
const { id, mode, ...rest } = params;
|
|
130
|
+
const provided = definedOnly(rest);
|
|
131
|
+
let attributes;
|
|
132
|
+
if (mode === "replace") {
|
|
133
|
+
attributes = provided;
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
const currentResponse = await apiRequest(`/candidates/${id}/technical-data`);
|
|
137
|
+
const currentEntity = Array.isArray(currentResponse.data) ? currentResponse.data[0] : currentResponse.data;
|
|
138
|
+
attributes = mergeTechnicalData(currentEntity?.attributes ?? {}, provided);
|
|
139
|
+
}
|
|
140
|
+
if (Object.keys(attributes).length === 0) {
|
|
141
|
+
return {
|
|
142
|
+
content: [
|
|
143
|
+
{
|
|
144
|
+
type: "text",
|
|
145
|
+
text: `ℹ️ Dossier technique du candidat #${id} inchangé (aucun champ à mettre à jour en mode ${mode}).`,
|
|
146
|
+
},
|
|
147
|
+
],
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
const body = buildJsonApiBody("candidate", attributes, id);
|
|
151
|
+
const response = await apiRequest(`/candidates/${id}/technical-data`, "PUT", body);
|
|
152
|
+
return {
|
|
153
|
+
content: [
|
|
154
|
+
{ type: "text", text: writeReport(`Dossier technique (mode: ${mode})`, id, attributes, response) },
|
|
155
|
+
],
|
|
156
|
+
};
|
|
157
|
+
});
|
|
158
|
+
server.registerTool("boond_candidates_administrative_update", {
|
|
159
|
+
title: "Mettre à jour les données administratives d'un candidat",
|
|
160
|
+
description: CANDIDATE_ADMINISTRATIVE_UPDATE_DESCRIPTION,
|
|
161
|
+
inputSchema: CandidateAdministrativeUpdateSchema,
|
|
162
|
+
annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
163
|
+
}, async (params) => {
|
|
164
|
+
const { id, ...rest } = params;
|
|
165
|
+
const attributes = definedOnly(rest);
|
|
166
|
+
if (Object.keys(attributes).length === 0) {
|
|
167
|
+
return {
|
|
168
|
+
content: [
|
|
169
|
+
{ type: "text", text: `ℹ️ Données administratives du candidat #${id} inchangées (aucun champ).` },
|
|
170
|
+
],
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
const body = buildJsonApiBody("candidate", attributes, id);
|
|
174
|
+
const response = await apiRequest(`/candidates/${id}/administrative`, "PUT", body);
|
|
175
|
+
return {
|
|
176
|
+
content: [{ type: "text", text: writeReport("Données administratives", id, attributes, response) }],
|
|
177
|
+
};
|
|
178
|
+
});
|
|
84
179
|
registerTabTools(server, { ...OPTS, prefix: OPTS.prefix }, CANDIDATE_TABS);
|
|
85
180
|
}
|
|
86
181
|
//# sourceMappingURL=candidates.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"candidates.js","sourceRoot":"","sources":["../../src/tools/candidates.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"candidates.js","sourceRoot":"","sources":["../../src/tools/candidates.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crud-factory.d.ts","sourceRoot":"","sources":["../../src/tools/crud-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"crud-factory.d.ts","sourceRoot":"","sources":["../../src/tools/crud-factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { McpError, ErrorCode } from "@modelcontextprotocol/sdk/types.js";
|
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
import { apiRequest, apiSearch, buildSearchQuery, formatListResponse, formatDetailResponse, formatEntitySummary, } from "../services/boond-client.js";
|
|
4
4
|
import { progressReporterFrom } from "../services/progress.js";
|
|
5
|
+
import { projectedFieldValue } from "../services/format/summary.js";
|
|
5
6
|
import { SearchSchema, IdSchema, IdTabSchema } from "../schemas/index.js";
|
|
6
7
|
import { defaultSearchDescription, defaultGetDescription, defaultCreateDescription, defaultUpdateDescription, defaultDeleteDescription, } from "./description-builders.js";
|
|
7
8
|
import { isFeatureDisabled } from "../config/env-flags.js";
|
|
@@ -50,11 +51,11 @@ export function buildListStructured(response, fields, summaryFn) {
|
|
|
50
51
|
// flat items with no `attributes` wrapper — same fallback as
|
|
51
52
|
// `formatProjectedSummary`, otherwise structuredContent held bare ids while
|
|
52
53
|
// the text output showed the projected values.
|
|
53
|
-
const attrs = entity.attributes ?? entity;
|
|
54
54
|
const selected = {};
|
|
55
55
|
for (const field of fields) {
|
|
56
|
-
|
|
57
|
-
|
|
56
|
+
const value = projectedFieldValue(entity, field);
|
|
57
|
+
if (value !== undefined)
|
|
58
|
+
selected[field] = value;
|
|
58
59
|
}
|
|
59
60
|
item.attributes = selected;
|
|
60
61
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crud-factory.js","sourceRoot":"","sources":["../../src/tools/crud-factory.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"crud-factory.js","sourceRoot":"","sources":["../../src/tools/crud-factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"description-builders.d.ts","sourceRoot":"","sources":["../../src/tools/description-builders.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4EAA4E;IAC5E,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,CAgBpE;AAID;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,QAEuC,CAAC;AAE1E;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B,QAE+C,CAAC;AAExF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"description-builders.d.ts","sourceRoot":"","sources":["../../src/tools/description-builders.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4EAA4E;IAC5E,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,CAgBpE;AAID;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,QAEuC,CAAC;AAE1E;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B,QAE+C,CAAC;AAExF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,iBAAiB,QAE2D,CAAC;AAI1F,MAAM,WAAW,aAAa;IAC5B,8DAA8D;IAC9D,UAAU,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,gBAAgB,EAAE,MAAM,CAAC;IACzB,6CAA6C;IAC7C,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAOpE;AA8CD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,aAAa,GAAG;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAiBxF;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAWpE;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAYpE;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAYpE;AAID,MAAM,WAAW,kBAAmB,SAAQ,aAAa;IACvD,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC;IAChB,sGAAsG;IACtG,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uBAAuB;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAS/D"}
|
|
@@ -57,7 +57,7 @@ export const PAGINATION_INERT_DISCLOSURE = "Pagination sans effet : cette route
|
|
|
57
57
|
* *never sent*, and *silently ignored*.
|
|
58
58
|
*/
|
|
59
59
|
export const FIELDS_DISCLOSURE = "`fields` : projection côté MCP, jamais transmise à l'API — remplace le résumé par les seuls " +
|
|
60
|
-
"attributs listés (noms inconnus ignorés). À utiliser sur les grosses pages.";
|
|
60
|
+
"attributs/relations listés (noms inconnus ignorés). À utiliser sur les grosses pages.";
|
|
61
61
|
/**
|
|
62
62
|
* Default search description for a reference/admin domain: no endpoint-specific
|
|
63
63
|
* filter vocabulary, so the value it adds over the schema is the pointer to the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"description-builders.js","sourceRoot":"","sources":["../../src/tools/description-builders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAoDpF;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAyB;IAC1D,MAAM,MAAM,GAAa,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAE/C,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,IAAI,CAAC,IAAI;QAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC5D,IAAI,IAAI,CAAC,OAAO;QAAE,QAAQ,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACvE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAE1D,IAAI,IAAI,CAAC,OAAO;QAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAEnD,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC1F,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAEjF,MAAM,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAEhD,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC;AAED,8EAA8E;AAE9E;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAChC,+BAA+B,aAAa,YAAY,iBAAiB,KAAK;IAC9E,cAAc,eAAe,0CAA0C,CAAC;AAE1E;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,2BAA2B,GACtC,0EAA0E;IAC1E,qFAAqF,CAAC;AAExF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAC5B,8FAA8F;IAC9F,
|
|
1
|
+
{"version":3,"file":"description-builders.js","sourceRoot":"","sources":["../../src/tools/description-builders.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../src/tools/documents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../src/tools/documents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAiBzE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAwN7D"}
|
package/dist/tools/documents.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { apiDownload, apiUploadForm, formatDetailResponse, DownloadTooLargeError } from "../services/boond-client.js";
|
|
2
2
|
import { progressReporterFrom } from "../services/progress.js";
|
|
3
3
|
import { DocumentGetSchema, DocumentCreateSchema } from "../schemas/index.js";
|
|
4
|
-
import { MAX_DOCUMENT_BYTES, MAX_IMAGE_BYTES, CHARACTER_LIMIT } from "../constants.js";
|
|
4
|
+
import { MAX_DOCUMENT_BYTES, MAX_IMAGE_BYTES, CHARACTER_LIMIT, INLINE_UPLOAD_MAX_BYTES } from "../constants.js";
|
|
5
|
+
import { decodeInlineUpload, readLocalUpload, UploadRejectedError } from "../services/upload-source.js";
|
|
5
6
|
import { registerDeleteTool, MutationOutputSchema } from "./crud-factory.js";
|
|
6
7
|
import { extractDocxText, extractPdfText, isDocxMime, isImageMime, isPdfMime } from "../services/document-text.js";
|
|
7
8
|
/** Mime types rendered as plain text instead of a base64 blob. */
|
|
@@ -123,12 +124,15 @@ Un ID inconnu est rejeté explicitement plutôt que de renvoyer la page d'accuei
|
|
|
123
124
|
}
|
|
124
125
|
return raw();
|
|
125
126
|
});
|
|
126
|
-
// Upload a document by URL
|
|
127
|
+
// Upload a document: by URL, by local path (opt-in, stdio) or inline base64
|
|
127
128
|
server.registerTool("boond_documents_create", {
|
|
128
129
|
title: "Téléverser un document",
|
|
129
|
-
description: `Attache un document à une entité BoondManager
|
|
130
|
+
description: `Attache un document à une entité BoondManager. Exactement une source par appel :
|
|
131
|
+
- \`fileUrl\` : URL https que BoondManager télécharge lui-même (aucun octet ne transite par le serveur MCP) ;
|
|
132
|
+
- \`filePath\` : chemin absolu d'un fichier local, lu par le serveur MCP — transport stdio uniquement, et seulement sous un répertoire listé dans \`BOOND_MCP_UPLOAD_DIRS\` (désactivé par défaut) ;
|
|
133
|
+
- \`fileContent\` (base64) + \`fileName\` : petit fichier passé inline, ${Math.round(INLINE_UPLOAD_MAX_BYTES / 1024 / 1024)} Mo max.
|
|
130
134
|
|
|
131
|
-
Cas d'usage typiques :
|
|
135
|
+
Le format est vérifié sur les premiers octets du fichier (PDF, Office, ODF, RTF, images), pas sur l'extension. \`fileContent\` suppose que l'appelant détient déjà les octets exacts : un modèle ne peut pas retranscrire de façon fiable une pièce jointe de conversation en base64 — préférer \`filePath\`. Cas d'usage typiques : CV d'un candidat (parentType=candidateResume, parsing=true pour l'analyse IA Boond), justificatif de note de frais (expensesReport), bon de commande, contrat...
|
|
132
136
|
|
|
133
137
|
Returns: Métadonnées du document créé (ID).`,
|
|
134
138
|
inputSchema: DocumentCreateSchema,
|
|
@@ -140,25 +144,55 @@ Returns: Métadonnées du document créé (ID).`,
|
|
|
140
144
|
openWorldHint: false,
|
|
141
145
|
},
|
|
142
146
|
}, async (params) => {
|
|
147
|
+
const reject = (text) => ({ isError: true, content: [{ type: "text", text: `❌ ${text}` }] });
|
|
148
|
+
const sources = [params.fileUrl, params.filePath, params.fileContent].filter((v) => v !== undefined).length;
|
|
149
|
+
if (sources !== 1) {
|
|
150
|
+
return reject(`Exactement une source de fichier est attendue (reçu : ${sources}). Fournir \`fileUrl\`, ou \`filePath\`, ` +
|
|
151
|
+
"ou `fileContent` + `fileName`.");
|
|
152
|
+
}
|
|
153
|
+
if (params.fileContent !== undefined && params.fileName === undefined) {
|
|
154
|
+
return reject("`fileName` (avec extension, ex. « cv.pdf ») est requis avec `fileContent`.");
|
|
155
|
+
}
|
|
156
|
+
if (params.fileContent === undefined && params.fileName !== undefined) {
|
|
157
|
+
return reject("`fileName` ne s'utilise qu'avec `fileContent`.");
|
|
158
|
+
}
|
|
159
|
+
let file;
|
|
160
|
+
try {
|
|
161
|
+
if (params.filePath !== undefined)
|
|
162
|
+
file = await readLocalUpload(params.filePath);
|
|
163
|
+
else if (params.fileContent !== undefined && params.fileName !== undefined)
|
|
164
|
+
file = decodeInlineUpload(params.fileContent, params.fileName);
|
|
165
|
+
}
|
|
166
|
+
catch (error) {
|
|
167
|
+
if (error instanceof UploadRejectedError)
|
|
168
|
+
return reject(error.message);
|
|
169
|
+
throw error;
|
|
170
|
+
}
|
|
143
171
|
const fields = {
|
|
144
172
|
parentType: params.parentType,
|
|
145
173
|
parentId: String(params.parentId),
|
|
146
|
-
fileUrl: params.fileUrl,
|
|
147
174
|
};
|
|
175
|
+
if (params.fileUrl !== undefined)
|
|
176
|
+
fields.fileUrl = params.fileUrl;
|
|
148
177
|
if (params.parsing !== undefined)
|
|
149
178
|
fields.parsing = String(params.parsing);
|
|
150
|
-
const response =
|
|
179
|
+
const response = file === undefined
|
|
180
|
+
? await apiUploadForm("/documents", fields)
|
|
181
|
+
: await apiUploadForm("/documents", fields, file);
|
|
151
182
|
const entity = Array.isArray(response.data) ? response.data[0] : response.data;
|
|
152
183
|
const structured = {};
|
|
153
184
|
if (entity?.id !== undefined)
|
|
154
185
|
structured.id = String(entity.id);
|
|
155
186
|
if (entity?.type !== undefined)
|
|
156
187
|
structured.type = String(entity.type);
|
|
188
|
+
const sent = file === undefined
|
|
189
|
+
? ""
|
|
190
|
+
: `\nFichier: ${file.filename} (${file.contentType}, ${(file.data.length / 1024).toFixed(0)} Ko)`;
|
|
157
191
|
return {
|
|
158
192
|
content: [
|
|
159
193
|
{
|
|
160
194
|
type: "text",
|
|
161
|
-
text: `✅ Document créé avec succès.\nID: ${entity?.id}\n\n${formatDetailResponse(response)}`,
|
|
195
|
+
text: `✅ Document créé avec succès.\nID: ${entity?.id}${sent}\n\n${formatDetailResponse(response)}`,
|
|
162
196
|
},
|
|
163
197
|
],
|
|
164
198
|
structuredContent: structured,
|