boondmanager-mcp-server 2.15.2 → 2.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (272) hide show
  1. package/LICENSE +1 -1
  2. package/NOTICE +16 -2
  3. package/README.md +60 -15
  4. package/dist/config/access-policy.d.ts.map +1 -1
  5. package/dist/config/access-policy.js +6 -18
  6. package/dist/config/access-policy.js.map +1 -1
  7. package/dist/config/dictionary-overrides.d.ts.map +1 -1
  8. package/dist/config/dictionary-overrides.js +2 -12
  9. package/dist/config/dictionary-overrides.js.map +1 -1
  10. package/dist/config/env.d.ts +63 -0
  11. package/dist/config/env.d.ts.map +1 -0
  12. package/dist/config/env.js +116 -0
  13. package/dist/config/env.js.map +1 -0
  14. package/dist/config/profiles.d.ts +22 -8
  15. package/dist/config/profiles.d.ts.map +1 -1
  16. package/dist/config/profiles.js +48 -4
  17. package/dist/config/profiles.js.map +1 -1
  18. package/dist/constants.d.ts +13 -2
  19. package/dist/constants.d.ts.map +1 -1
  20. package/dist/constants.js +25 -1
  21. package/dist/constants.js.map +1 -1
  22. package/dist/icons.d.ts.map +1 -1
  23. package/dist/icons.js +6 -1
  24. package/dist/icons.js.map +1 -1
  25. package/dist/index.js +33 -15
  26. package/dist/index.js.map +1 -1
  27. package/dist/instructions.d.ts +1 -1
  28. package/dist/instructions.d.ts.map +1 -1
  29. package/dist/instructions.js +6 -6
  30. package/dist/instructions.js.map +1 -1
  31. package/dist/prompts/index.d.ts +19 -1
  32. package/dist/prompts/index.d.ts.map +1 -1
  33. package/dist/prompts/index.js +495 -25
  34. package/dist/prompts/index.js.map +1 -1
  35. package/dist/prompts/periods.d.ts +45 -0
  36. package/dist/prompts/periods.d.ts.map +1 -0
  37. package/dist/prompts/periods.js +154 -0
  38. package/dist/prompts/periods.js.map +1 -0
  39. package/dist/resources/index.d.ts +14 -0
  40. package/dist/resources/index.d.ts.map +1 -1
  41. package/dist/resources/index.js +285 -0
  42. package/dist/resources/index.js.map +1 -1
  43. package/dist/resources/templates.d.ts +1 -1
  44. package/dist/resources/templates.d.ts.map +1 -1
  45. package/dist/resources/templates.js +2 -0
  46. package/dist/resources/templates.js.map +1 -1
  47. package/dist/schema-dialect.js.map +1 -1
  48. package/dist/schemas/filter-aliases.d.ts +1 -1
  49. package/dist/schemas/filter-aliases.d.ts.map +1 -1
  50. package/dist/schemas/filter-aliases.js +101 -2
  51. package/dist/schemas/filter-aliases.js.map +1 -1
  52. package/dist/schemas/index.d.ts +987 -161
  53. package/dist/schemas/index.d.ts.map +1 -1
  54. package/dist/schemas/index.js +853 -323
  55. package/dist/schemas/index.js.map +1 -1
  56. package/dist/server.d.ts.map +1 -1
  57. package/dist/server.js +10 -3
  58. package/dist/server.js.map +1 -1
  59. package/dist/services/boond-client.d.ts +29 -213
  60. package/dist/services/boond-client.d.ts.map +1 -1
  61. package/dist/services/boond-client.js +29 -1168
  62. package/dist/services/boond-client.js.map +1 -1
  63. package/dist/services/dictionary.d.ts +27 -3
  64. package/dist/services/dictionary.d.ts.map +1 -1
  65. package/dist/services/dictionary.js +60 -23
  66. package/dist/services/dictionary.js.map +1 -1
  67. package/dist/services/document-text.d.ts +32 -0
  68. package/dist/services/document-text.d.ts.map +1 -0
  69. package/dist/services/document-text.js +120 -0
  70. package/dist/services/document-text.js.map +1 -0
  71. package/dist/services/format/detail.d.ts +16 -0
  72. package/dist/services/format/detail.d.ts.map +1 -0
  73. package/dist/services/format/detail.js +36 -0
  74. package/dist/services/format/detail.js.map +1 -0
  75. package/dist/services/format/html.d.ts +19 -0
  76. package/dist/services/format/html.d.ts.map +1 -0
  77. package/dist/services/format/html.js +87 -0
  78. package/dist/services/format/html.js.map +1 -0
  79. package/dist/services/format/list.d.ts +3 -0
  80. package/dist/services/format/list.d.ts.map +1 -0
  81. package/dist/services/format/list.js +44 -0
  82. package/dist/services/format/list.js.map +1 -0
  83. package/dist/services/format/summary.d.ts +16 -0
  84. package/dist/services/format/summary.d.ts.map +1 -0
  85. package/dist/services/format/summary.js +172 -0
  86. package/dist/services/format/summary.js.map +1 -0
  87. package/dist/services/format/tab.d.ts +9 -0
  88. package/dist/services/format/tab.d.ts.map +1 -0
  89. package/dist/services/format/tab.js +32 -0
  90. package/dist/services/format/tab.js.map +1 -0
  91. package/dist/services/http/auth.d.ts +44 -0
  92. package/dist/services/http/auth.d.ts.map +1 -0
  93. package/dist/services/http/auth.js +146 -0
  94. package/dist/services/http/auth.js.map +1 -0
  95. package/dist/services/http/download.d.ts +60 -0
  96. package/dist/services/http/download.d.ts.map +1 -0
  97. package/dist/services/http/download.js +160 -0
  98. package/dist/services/http/download.js.map +1 -0
  99. package/dist/services/http/errors.d.ts +45 -0
  100. package/dist/services/http/errors.d.ts.map +1 -0
  101. package/dist/services/http/errors.js +188 -0
  102. package/dist/services/http/errors.js.map +1 -0
  103. package/dist/services/http/rate-limit.d.ts +40 -0
  104. package/dist/services/http/rate-limit.d.ts.map +1 -0
  105. package/dist/services/http/rate-limit.js +92 -0
  106. package/dist/services/http/rate-limit.js.map +1 -0
  107. package/dist/services/http/retry.d.ts +46 -0
  108. package/dist/services/http/retry.d.ts.map +1 -0
  109. package/dist/services/http/retry.js +101 -0
  110. package/dist/services/http/retry.js.map +1 -0
  111. package/dist/services/http/transport.d.ts +73 -0
  112. package/dist/services/http/transport.d.ts.map +1 -0
  113. package/dist/services/http/transport.js +272 -0
  114. package/dist/services/http/transport.js.map +1 -0
  115. package/dist/services/logger.d.ts +53 -2
  116. package/dist/services/logger.d.ts.map +1 -1
  117. package/dist/services/logger.js +82 -21
  118. package/dist/services/logger.js.map +1 -1
  119. package/dist/services/oauth.d.ts +12 -0
  120. package/dist/services/oauth.d.ts.map +1 -1
  121. package/dist/services/oauth.js +21 -8
  122. package/dist/services/oauth.js.map +1 -1
  123. package/dist/services/rate-limiter.d.ts +9 -2
  124. package/dist/services/rate-limiter.d.ts.map +1 -1
  125. package/dist/services/rate-limiter.js +18 -6
  126. package/dist/services/rate-limiter.js.map +1 -1
  127. package/dist/services/request-context.d.ts +47 -0
  128. package/dist/services/request-context.d.ts.map +1 -0
  129. package/dist/services/request-context.js +112 -0
  130. package/dist/services/request-context.js.map +1 -0
  131. package/dist/services/search.d.ts +26 -0
  132. package/dist/services/search.d.ts.map +1 -0
  133. package/dist/services/search.js +98 -0
  134. package/dist/services/search.js.map +1 -0
  135. package/dist/services/update-checker.d.ts.map +1 -1
  136. package/dist/services/update-checker.js +15 -8
  137. package/dist/services/update-checker.js.map +1 -1
  138. package/dist/tools/absences.d.ts +9 -0
  139. package/dist/tools/absences.d.ts.map +1 -1
  140. package/dist/tools/absences.js +65 -20
  141. package/dist/tools/absences.js.map +1 -1
  142. package/dist/tools/actions.d.ts.map +1 -1
  143. package/dist/tools/actions.js +11 -27
  144. package/dist/tools/actions.js.map +1 -1
  145. package/dist/tools/advantages.d.ts +2 -0
  146. package/dist/tools/advantages.d.ts.map +1 -1
  147. package/dist/tools/advantages.js +66 -13
  148. package/dist/tools/advantages.js.map +1 -1
  149. package/dist/tools/alerts.d.ts +18 -0
  150. package/dist/tools/alerts.d.ts.map +1 -0
  151. package/dist/tools/alerts.js +82 -0
  152. package/dist/tools/alerts.js.map +1 -0
  153. package/dist/tools/application.d.ts +2 -1
  154. package/dist/tools/application.d.ts.map +1 -1
  155. package/dist/tools/application.js +9 -3
  156. package/dist/tools/application.js.map +1 -1
  157. package/dist/tools/contacts.d.ts.map +1 -1
  158. package/dist/tools/contacts.js +3 -7
  159. package/dist/tools/contacts.js.map +1 -1
  160. package/dist/tools/contracts.d.ts +22 -0
  161. package/dist/tools/contracts.d.ts.map +1 -1
  162. package/dist/tools/contracts.js +185 -52
  163. package/dist/tools/contracts.js.map +1 -1
  164. package/dist/tools/crud-factory.d.ts +33 -2
  165. package/dist/tools/crud-factory.d.ts.map +1 -1
  166. package/dist/tools/crud-factory.js +42 -15
  167. package/dist/tools/crud-factory.js.map +1 -1
  168. package/dist/tools/deliveries.d.ts +3 -0
  169. package/dist/tools/deliveries.d.ts.map +1 -1
  170. package/dist/tools/deliveries.js +50 -94
  171. package/dist/tools/deliveries.js.map +1 -1
  172. package/dist/tools/description-builders.d.ts +0 -1
  173. package/dist/tools/description-builders.d.ts.map +1 -1
  174. package/dist/tools/description-builders.js +46 -3
  175. package/dist/tools/description-builders.js.map +1 -1
  176. package/dist/tools/documents.d.ts.map +1 -1
  177. package/dist/tools/documents.js +73 -21
  178. package/dist/tools/documents.js.map +1 -1
  179. package/dist/tools/expenses.d.ts.map +1 -1
  180. package/dist/tools/expenses.js +2 -11
  181. package/dist/tools/expenses.js.map +1 -1
  182. package/dist/tools/find.d.ts +61 -0
  183. package/dist/tools/find.d.ts.map +1 -0
  184. package/dist/tools/find.js +221 -0
  185. package/dist/tools/find.js.map +1 -0
  186. package/dist/tools/flags.d.ts +5 -0
  187. package/dist/tools/flags.d.ts.map +1 -1
  188. package/dist/tools/flags.js +116 -1
  189. package/dist/tools/flags.js.map +1 -1
  190. package/dist/tools/forms.d.ts +5 -0
  191. package/dist/tools/forms.d.ts.map +1 -0
  192. package/dist/tools/forms.js +64 -0
  193. package/dist/tools/forms.js.map +1 -0
  194. package/dist/tools/groupments.d.ts +5 -0
  195. package/dist/tools/groupments.d.ts.map +1 -0
  196. package/dist/tools/groupments.js +68 -0
  197. package/dist/tools/groupments.js.map +1 -0
  198. package/dist/tools/inactivities.d.ts +5 -0
  199. package/dist/tools/inactivities.d.ts.map +1 -0
  200. package/dist/tools/inactivities.js +59 -0
  201. package/dist/tools/inactivities.js.map +1 -0
  202. package/dist/tools/index.d.ts +4 -0
  203. package/dist/tools/index.d.ts.map +1 -1
  204. package/dist/tools/index.js +4 -0
  205. package/dist/tools/index.js.map +1 -1
  206. package/dist/tools/invoices.d.ts.map +1 -1
  207. package/dist/tools/invoices.js +27 -2
  208. package/dist/tools/invoices.js.map +1 -1
  209. package/dist/tools/linked-entity-filters.d.ts +48 -0
  210. package/dist/tools/linked-entity-filters.d.ts.map +1 -0
  211. package/dist/tools/linked-entity-filters.js +64 -0
  212. package/dist/tools/linked-entity-filters.js.map +1 -0
  213. package/dist/tools/notifications.d.ts.map +1 -1
  214. package/dist/tools/notifications.js +0 -5
  215. package/dist/tools/notifications.js.map +1 -1
  216. package/dist/tools/orders.d.ts.map +1 -1
  217. package/dist/tools/orders.js +33 -4
  218. package/dist/tools/orders.js.map +1 -1
  219. package/dist/tools/parameter-disclosure.js.map +1 -1
  220. package/dist/tools/payments.d.ts +3 -0
  221. package/dist/tools/payments.d.ts.map +1 -1
  222. package/dist/tools/payments.js +43 -109
  223. package/dist/tools/payments.js.map +1 -1
  224. package/dist/tools/positionings.d.ts.map +1 -1
  225. package/dist/tools/positionings.js +9 -39
  226. package/dist/tools/positionings.js.map +1 -1
  227. package/dist/tools/projects.d.ts.map +1 -1
  228. package/dist/tools/projects.js +5 -12
  229. package/dist/tools/projects.js.map +1 -1
  230. package/dist/tools/provider-invoices.d.ts +2 -0
  231. package/dist/tools/provider-invoices.d.ts.map +1 -1
  232. package/dist/tools/provider-invoices.js +30 -111
  233. package/dist/tools/provider-invoices.js.map +1 -1
  234. package/dist/tools/purchases.d.ts +2 -0
  235. package/dist/tools/purchases.d.ts.map +1 -1
  236. package/dist/tools/purchases.js +50 -104
  237. package/dist/tools/purchases.js.map +1 -1
  238. package/dist/tools/registration-decorators.d.ts +28 -0
  239. package/dist/tools/registration-decorators.d.ts.map +1 -1
  240. package/dist/tools/registration-decorators.js +107 -0
  241. package/dist/tools/registration-decorators.js.map +1 -1
  242. package/dist/tools/resources.d.ts.map +1 -1
  243. package/dist/tools/resources.js +27 -5
  244. package/dist/tools/resources.js.map +1 -1
  245. package/dist/tools/rights.d.ts +101 -0
  246. package/dist/tools/rights.d.ts.map +1 -0
  247. package/dist/tools/rights.js +75 -0
  248. package/dist/tools/rights.js.map +1 -0
  249. package/dist/tools/tab-tools.js +3 -3
  250. package/dist/tools/tab-tools.js.map +1 -1
  251. package/dist/tools/timesheets.d.ts +29 -0
  252. package/dist/tools/timesheets.d.ts.map +1 -1
  253. package/dist/tools/timesheets.js +196 -126
  254. package/dist/tools/timesheets.js.map +1 -1
  255. package/dist/tools/todolists.d.ts +2 -0
  256. package/dist/tools/todolists.d.ts.map +1 -1
  257. package/dist/tools/todolists.js +64 -1
  258. package/dist/tools/todolists.js.map +1 -1
  259. package/dist/tools/validations.d.ts +9 -0
  260. package/dist/tools/validations.d.ts.map +1 -1
  261. package/dist/tools/validations.js +86 -9
  262. package/dist/tools/validations.js.map +1 -1
  263. package/dist/tools/workflows.js +1 -1
  264. package/dist/tools/workflows.js.map +1 -1
  265. package/dist/transports/http.d.ts +116 -0
  266. package/dist/transports/http.d.ts.map +1 -1
  267. package/dist/transports/http.js +422 -92
  268. package/dist/transports/http.js.map +1 -1
  269. package/dist/types.d.ts +3 -3
  270. package/dist/types.d.ts.map +1 -1
  271. package/manifest.json +7 -7
  272. package/package.json +14 -10
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Linked-entity filters → `keywords` references (issue #247).
3
+ *
4
+ * BoondManager's list endpoints have **no** `companyId` / `projectId` /
5
+ * `resourceId` query parameters. A related entity is selected through a
6
+ * prefixed reference inside `keywords` — `CSOC<id>` (company), `PRJ<id>`
7
+ * (project), `COMP<id>` (resource), `CAND<id>` (candidate), `CCON<id>`
8
+ * (contact), `AO<id>` (opportunity), `ACH<id>` (purchase), `BDC<id>` (order),
9
+ * `FACT<id>` (invoice), `MIS<id>` (delivery), `PROD<id>` (product),
10
+ * `CTR<id>` (contract) — documented per endpoint in the RAML and verified
11
+ * against the live API on 2026-09-25: `GET /invoices?companyId=6221` returned
12
+ * the whole table (29 893 rows, same as with no filter at all), while
13
+ * `keywords=CSOC6221` returned 2. An unknown query parameter is ignored
14
+ * silently, so a tool that forwarded `companyId` verbatim answered "the
15
+ * invoices of X" with *every* invoice, presented as filtered.
16
+ *
17
+ * The search schemas keep the `*Id` fields — they are what a model reaches
18
+ * for — and every search handler runs its params through `toKeywordReferences`
19
+ * before building the query, so the conversion cannot be forgotten per domain.
20
+ * Not every endpoint honours every prefix (the RAML lists them); a prefix an
21
+ * endpoint does not know simply matches nothing, which is still a visible
22
+ * "0 results", never a silently unfiltered page.
23
+ */
24
+ export const KEYWORD_PREFIX_BY_FILTER = {
25
+ candidateId: "CAND",
26
+ resourceId: "COMP",
27
+ contactId: "CCON",
28
+ companyId: "CSOC",
29
+ projectId: "PRJ",
30
+ opportunityId: "AO",
31
+ purchaseId: "ACH",
32
+ orderId: "BDC",
33
+ invoiceId: "FACT",
34
+ deliveryId: "MIS",
35
+ productId: "PROD",
36
+ contractId: "CTR",
37
+ };
38
+ const FILTER_NAMES = Object.keys(KEYWORD_PREFIX_BY_FILTER);
39
+ /**
40
+ * Move every linked-entity `*Id` filter present in `params` into `keywords`
41
+ * as `<PREFIX><id>` (appended after the caller's own keywords, space
42
+ * separated) and drop the `*Id` keys. Keys that are absent or `undefined` are
43
+ * left alone; other keys pass through untouched.
44
+ */
45
+ export function toKeywordReferences(params) {
46
+ const rest = { ...params };
47
+ const tokens = [];
48
+ const own = rest.keywords;
49
+ if (typeof own === "string" && own.trim().length > 0)
50
+ tokens.push(own.trim());
51
+ for (const name of FILTER_NAMES) {
52
+ const value = rest[name];
53
+ delete rest[name];
54
+ if (value === undefined || value === null || value === "")
55
+ continue;
56
+ tokens.push(`${KEYWORD_PREFIX_BY_FILTER[name]}${String(value)}`);
57
+ }
58
+ if (tokens.length > 0)
59
+ rest.keywords = tokens.join(" ");
60
+ else
61
+ delete rest.keywords;
62
+ return rest;
63
+ }
64
+ //# sourceMappingURL=linked-entity-filters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linked-entity-filters.js","sourceRoot":"","sources":["../../src/tools/linked-entity-filters.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,WAAW,EAAE,MAAM;IACnB,UAAU,EAAE,MAAM;IAClB,SAAS,EAAE,MAAM;IACjB,SAAS,EAAE,MAAM;IACjB,SAAS,EAAE,KAAK;IAChB,aAAa,EAAE,IAAI;IACnB,UAAU,EAAE,KAAK;IACjB,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,MAAM;IACjB,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE,MAAM;IACjB,UAAU,EAAE,KAAK;CACT,CAAC;AAIX,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAyB,CAAC;AAEnF;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAAS;IAET,MAAM,IAAI,GAA4B,EAAE,GAAG,MAAM,EAAE,CAAC;IACpD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC1B,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9E,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;QAClB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE;YAAE,SAAS;QACpE,MAAM,CAAC,IAAI,CAAC,GAAG,wBAAwB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;QACnD,OAAO,IAAI,CAAC,QAAQ,CAAC;IAC1B,OAAO,IAA2D,CAAC;AACrE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../src/tools/notifications.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAYzE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAuDjE"}
1
+ {"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../src/tools/notifications.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAYzE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAkDjE"}
@@ -9,11 +9,6 @@ export function registerNotificationTools(server) {
9
9
 
10
10
  ⚠️ Le paramètre \`category\` est REQUIS par l'API (singulier, pas de tableau).
11
11
 
12
- Args:
13
- - category (string, requis): 'activity' | 'thread' | 'corporate'
14
- - state (string, optional): 'new' | 'read'
15
- - parentType (string[], optional): types de modules parents (ex: 'contract', 'global')
16
-
17
12
  Returns: Liste des notifications correspondantes.`,
18
13
  inputSchema: NotificationSearchSchema,
19
14
  annotations: {
@@ -1 +1 @@
1
- {"version":3,"file":"notifications.js","sourceRoot":"","sources":["../../src/tools/notifications.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EACL,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAElE,MAAM,UAAU,yBAAyB,CAAC,MAAiB;IACzD,MAAM,CAAC,YAAY,CACjB,4BAA4B,EAC5B;QACE,KAAK,EAAE,8BAA8B;QACrC,WAAW,EAAE;;;;;;;;;kDAS+B;QAC5C,WAAW,EAAE,wBAAwB;QACrC,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;SACpB;KACF,EACD,KAAK,EAAE,MAAM,EAAE,KAAc,EAAE,EAAE;QAC/B,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,gBAAgB,EAAE,KAAK,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC;QACvF,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,kBAAkB,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;SACxG,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,yBAAyB,EACzB;QACE,KAAK,EAAE,4BAA4B;QACnC,WAAW,EAAE,qBAAqB,CAAC;YACjC,GAAG,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,EAAE,qBAAqB,EAAE;YACnG,OAAO,EAAE,KAAK;SACf,CAAC;QACF,WAAW,EAAE,QAAQ;QACrB,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,kBAAkB,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QACjE,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAAC;SAC3E,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"notifications.js","sourceRoot":"","sources":["../../src/tools/notifications.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EACL,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAElE,MAAM,UAAU,yBAAyB,CAAC,MAAiB;IACzD,MAAM,CAAC,YAAY,CACjB,4BAA4B,EAC5B;QACE,KAAK,EAAE,8BAA8B;QACrC,WAAW,EAAE;;;;kDAI+B;QAC5C,WAAW,EAAE,wBAAwB;QACrC,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;SACpB;KACF,EACD,KAAK,EAAE,MAAM,EAAE,KAAc,EAAE,EAAE;QAC/B,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,gBAAgB,EAAE,KAAK,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC;QACvF,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,kBAAkB,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;SACxG,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,yBAAyB,EACzB;QACE,KAAK,EAAE,4BAA4B;QACnC,WAAW,EAAE,qBAAqB,CAAC;YACjC,GAAG,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,EAAE,qBAAqB,EAAE;YACnG,OAAO,EAAE,KAAK;SACf,CAAC;QACF,WAAW,EAAE,QAAQ;QACrB,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,kBAAkB,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QACjE,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAAC;SAC3E,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"orders.d.ts","sourceRoot":"","sources":["../../src/tools/orders.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA2DzE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA4B1D"}
1
+ {"version":3,"file":"orders.d.ts","sourceRoot":"","sources":["../../src/tools/orders.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA6FzE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA2B1D"}
@@ -1,12 +1,43 @@
1
1
  import { OrderSearchSchema, OrderCreateSchema, OrderUpdateSchema } from "../schemas/index.js";
2
2
  import { buildJsonApiBody, registerSearchTool, registerGetTool, registerCreateTool, registerUpdateTool, registerDeleteTool, } from "./crud-factory.js";
3
3
  import { defaultDeleteDescription } from "./description-builders.js";
4
+ import { registerTabTools } from "./tab-tools.js";
4
5
  const OPTS = {
5
6
  entityName: "bon de commande",
6
7
  entityNamePlural: "bons de commande",
7
8
  apiPath: "/orders",
8
9
  prefix: "boond_orders",
9
10
  };
11
+ // `ENTITY_TABS.orders` — verified live on 2026-09-26 (issue #258).
12
+ const ORDER_TABS = [
13
+ {
14
+ name: "information",
15
+ tab: "information",
16
+ title: "Informations complètes d'un bon de commande",
17
+ subject: "les informations complètes",
18
+ content: "période, conditions de paiement, références acheteur, prestations et projet liés",
19
+ returns: "Fiche complète du bon de commande (relations société, contact, projet, prestations incluses).",
20
+ },
21
+ {
22
+ name: "actions",
23
+ tab: "actions",
24
+ title: "Actions liées à un bon de commande",
25
+ subject: "les actions",
26
+ content: "envois, relances, notes",
27
+ returns: "Liste des actions rattachées au bon de commande.",
28
+ },
29
+ {
30
+ name: "invoices",
31
+ tab: "invoices",
32
+ title: "Factures d'un bon de commande",
33
+ subject: "les factures émises",
34
+ content: "référence, période, état, montants HT/TTC",
35
+ returns: "Liste des factures rattachées au bon de commande, précédée des totaux calculés par BoondManager : commandé HT, facturé HT/TTC, reste à facturer (`deltaInvoicedExcludingTax`) et répartition par état.",
36
+ behaviour: [
37
+ "C'est l'entrée de la préparation de facturation : `deltaInvoicedExcludingTax` > 0 signifie qu'il reste à facturer sur la commande.",
38
+ ],
39
+ },
40
+ ];
10
41
  /** Maps convenience inputs and schedule shortcuts to the Boond JSON:API body. */
11
42
  function buildOrderBody(params) {
12
43
  const { id, companyId, projectId, ...rest } = params;
@@ -48,10 +79,7 @@ export function registerOrderTools(server) {
48
79
  schema: OrderSearchSchema,
49
80
  description: `Recherche des bons de commande dans BoondManager avec filtres par société et projet.
50
81
 
51
- Args:
52
- - keywords (string, optional): Termes de recherche
53
- - companyId, projectId (string, optional): Filtrer par entité liée
54
- - page, pageSize: Pagination
82
+ \`companyId\` / \`projectId\` sont convertis en références \`keywords\` (CSOC<id> / PRJ<id>) : l'API n'a pas de paramètre dédié.
55
83
 
56
84
  Returns: Liste des bons de commande correspondants.`,
57
85
  });
@@ -71,5 +99,6 @@ Returns: Liste des bons de commande correspondants.`,
71
99
  prefix: "boond_orders",
72
100
  }),
73
101
  });
102
+ registerTabTools(server, OPTS, ORDER_TABS);
74
103
  }
75
104
  //# sourceMappingURL=orders.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"orders.js","sourceRoot":"","sources":["../../src/tools/orders.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orders.js","sourceRoot":"","sources":["../../src/tools/orders.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"parameter-disclosure.js","sourceRoot":"","sources":["../../src/tools/parameter-disclosure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAClH,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,2FAA2F;AAC3F,SAAS,YAAY,CAAC,WAAoB;IACxC,IAAI,WAAW,KAAK,IAAI,IAAI,OAAO,WAAW,KAAK,QAAQ;QAAE,OAAO,IAAI,GAAG,EAAE,CAAC;IAC9E,MAAM,KAAK,GAAI,WAAmC,CAAC,KAAK,IAAI,WAAW,CAAC;IACxE,MAAM,QAAQ,GAAG,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAE,KAAuB,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IAClF,IAAI,QAAQ,KAAK,IAAI,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,IAAI,GAAG,EAAE,CAAC;IACxE,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAmC,CAAC,CAAC,CAAC;AACnE,CAAC;AAED;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,WAAmB,EAAE,IAAY;IACzD,OAAO,IAAI,MAAM,CAAC,SAAS,IAAI,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,MAAS,EACT,IAAa;IAEb,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;IACvC,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAE/E,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,CAAC;QACnE,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACpC,CAAC;IACD,2EAA2E;IAC3E,4EAA4E;IAC5E,uEAAuE;IACvE,6EAA6E;IAC7E,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE,CAAC;QACvE,MAAM,KAAK,GAAG,IAAI,KAAK,SAAS,IAAI,yBAAyB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;IAC9E,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAE1C,OAAO;QACL,GAAG,MAAM;QACT,WAAW,EAAE,GAAG,WAAW,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;KAC9E,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"parameter-disclosure.js","sourceRoot":"","sources":["../../src/tools/parameter-disclosure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAClH,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,2FAA2F;AAC3F,SAAS,YAAY,CAAC,WAAoB;IACxC,IAAI,WAAW,KAAK,IAAI,IAAI,OAAO,WAAW,KAAK,QAAQ;QAAE,OAAO,IAAI,GAAG,EAAE,CAAC;IAC9E,MAAM,KAAK,GAAI,WAAmC,CAAC,KAAK,IAAI,WAAW,CAAC;IACxE,MAAM,QAAQ,GAAG,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAE,KAAuB,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IAClF,IAAI,QAAQ,KAAK,IAAI,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,IAAI,GAAG,EAAE,CAAC;IACxE,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AACxC,CAAC;AAED;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,WAAmB,EAAE,IAAY;IACzD,OAAO,IAAI,MAAM,CAAC,SAAS,IAAI,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,MAAS,EACT,IAAa;IAEb,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;IACvC,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAE/E,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,CAAC;QACnE,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACpC,CAAC;IACD,2EAA2E;IAC3E,4EAA4E;IAC5E,uEAAuE;IACvE,6EAA6E;IAC7E,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE,CAAC;QACvE,MAAM,KAAK,GAAG,IAAI,KAAK,SAAS,IAAI,yBAAyB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;IAC9E,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAE1C,OAAO;QACL,GAAG,MAAM;QACT,WAAW,EAAE,GAAG,WAAW,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;KAC9E,CAAC;AACJ,CAAC"}
@@ -1,3 +1,6 @@
1
1
  import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function buildPaymentBody(params: Record<string, unknown>): unknown;
3
+ /** PUT /payments/{id}: attributes only — the purchase attachment is never moved by an update (issue #252). */
4
+ export declare function buildPaymentUpdateBody(params: Record<string, unknown>): unknown;
2
5
  export declare function registerPaymentTools(server: McpServer): void;
3
6
  //# sourceMappingURL=payments.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"payments.d.ts","sourceRoot":"","sources":["../../src/tools/payments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAyBzE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA8G5D"}
1
+ {"version":3,"file":"payments.d.ts","sourceRoot":"","sources":["../../src/tools/payments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA0BzE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAKzE;AAED,8GAA8G;AAC9G,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAG/E;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAmC5D"}
@@ -1,28 +1,32 @@
1
- import { PaymentSearchSchema, IdSchema } from "../schemas/index.js";
2
- import { apiRequest, buildSearchQuery, formatListResponse, formatDetailResponse } from "../services/boond-client.js";
3
- import { buildJsonApiBody } from "./crud-factory.js";
4
- import { z } from "zod";
5
- import { composeDescription, defaultGetDescription } from "./description-builders.js";
6
- const PaymentCreateSchema = z
7
- .object({
8
- purchaseId: z.string().min(1).describe("ID de l'achat regle"),
9
- paymentDate: z.string().optional().describe("Date du paiement (YYYY-MM-DD), mappee vers date"),
10
- performedDate: z.string().optional().describe("Date de paiement effectif (YYYY-MM-DD)"),
11
- expectedDate: z.string().optional().describe("Date de paiement attendu (YYYY-MM-DD)"),
12
- startDate: z.string().optional().describe("Date de debut couverte (YYYY-MM-DD)"),
13
- endDate: z.string().optional().describe("Date de fin couverte (YYYY-MM-DD)"),
14
- amount: z.number().optional().describe("Montant HT du paiement, mappe vers amountExcludingTax"),
15
- amountExcludingTax: z.number().optional().describe("Montant HT du paiement"),
16
- state: z.number().int().optional().describe("Etat du paiement / achat"),
17
- paymentMethod: z.number().int().optional().describe("Methode de paiement"),
18
- taxRates: z.array(z.number()).optional().describe("Taux de taxes Boond"),
19
- reference: z.string().optional().describe("Reference bancaire ou reglement"),
20
- note: z.string().optional().describe("Note interne, mappee vers informationComments"),
21
- })
22
- .strict();
1
+ import { PaymentCreateSchema, PaymentSearchSchema, PaymentUpdateSchema } from "../schemas/index.js";
2
+ import { buildJsonApiBody, registerCreateTool, registerDeleteTool, registerGetTool, registerSearchTool, registerUpdateTool, } from "./crud-factory.js";
3
+ import { composeDescription } from "./description-builders.js";
4
+ const OPTS = { entityName: "paiement", entityNamePlural: "paiements", apiPath: "/payments", prefix: "boond_payments" };
5
+ /** `/payments` payload: convenience names → API attributes, `purchaseId` → the mandatory `purchase` relationship. */
6
+ function paymentAttributes(params) {
7
+ const { paymentDate, amount, reference, note, ...attrs } = params;
8
+ return {
9
+ ...attrs,
10
+ ...(paymentDate ? { date: paymentDate } : {}),
11
+ ...(amount !== undefined && attrs.amountExcludingTax === undefined ? { amountExcludingTax: amount } : {}),
12
+ ...(reference ? { number: reference } : {}),
13
+ ...(note ? { informationComments: note } : {}),
14
+ };
15
+ }
16
+ export function buildPaymentBody(params) {
17
+ const { purchaseId, ...rest } = params;
18
+ return buildJsonApiBody("payment", paymentAttributes(rest), undefined, {
19
+ purchase: { id: String(purchaseId), type: "purchase" },
20
+ });
21
+ }
22
+ /** PUT /payments/{id}: attributes only — the purchase attachment is never moved by an update (issue #252). */
23
+ export function buildPaymentUpdateBody(params) {
24
+ const { id, ...rest } = params;
25
+ return buildJsonApiBody("payment", paymentAttributes(rest), String(id));
26
+ }
23
27
  export function registerPaymentTools(server) {
24
- server.registerTool("boond_payments_create", {
25
- title: "Creer un paiement",
28
+ registerCreateTool(server, OPTS, PaymentCreateSchema, buildPaymentBody, {
29
+ title: "Créer un paiement",
26
30
  description: composeDescription({
27
31
  purpose: "Enregistre un paiement / règlement fournisseur adossé à un achat.",
28
32
  when: "pour solder tout ou partie d'un achat existant.",
@@ -31,94 +35,24 @@ export function registerPaymentTools(server) {
31
35
  "L'API `/payments` **exige** une relation `purchase` : sans ID d'achat valide, l'appel est refusé.",
32
36
  "Écriture non idempotente : deux appels identiques enregistrent deux règlements.",
33
37
  ],
34
- returns: "confirmation et fiche du paiement créé.",
38
+ returns: "confirmation et fiche du paiement créé, avec son ID dans `structuredContent.id`.",
35
39
  }),
36
- inputSchema: PaymentCreateSchema,
37
- annotations: {
38
- readOnlyHint: false,
39
- destructiveHint: false,
40
- idempotentHint: false,
41
- openWorldHint: false,
42
- },
43
- }, async (params) => {
44
- const { purchaseId, paymentDate, amount, reference, note, ...attrs } = params;
45
- const apiAttrs = {
46
- ...attrs,
47
- ...(paymentDate ? { date: paymentDate } : {}),
48
- ...(amount !== undefined && attrs.amountExcludingTax === undefined ? { amountExcludingTax: amount } : {}),
49
- ...(reference ? { number: reference } : {}),
50
- ...(note ? { informationComments: note } : {}),
51
- };
52
- const body = buildJsonApiBody("payment", apiAttrs);
53
- body.data.relationships = {
54
- purchase: { data: { id: purchaseId, type: "purchase" } },
55
- };
56
- const response = await apiRequest("/payments", "POST", body);
57
- const entity = Array.isArray(response.data) ? response.data[0] : response.data;
58
- return {
59
- content: [
60
- {
61
- type: "text",
62
- text: `Paiement cree avec succes.\nID: ${entity?.id}\n\n${formatDetailResponse(response)}`,
63
- },
64
- ],
65
- };
66
40
  });
67
- server.registerTool("boond_payments_search", {
68
- title: "Rechercher des paiements",
69
- description: `Recherche des paiements / reglements dans BoondManager.
70
-
71
- Args:
72
- - keywords (string, optional): Termes de recherche. Utiliser ACH<id>, CSOC<id>, PRJ<id> selon la doc Boond pour filtrer par achat, societe ou projet.
73
- - invoiceId, companyId (string, optional): Conserves pour compatibilite, transmis comme query params si fournis.
74
- - startDate, endDate (string, optional): Periode (YYYY-MM-DD)
75
- - page, pageSize: Pagination
76
-
77
- Returns: Liste des paiements correspondants.`,
78
- inputSchema: PaymentSearchSchema,
79
- annotations: {
80
- readOnlyHint: true,
81
- destructiveHint: false,
82
- idempotentHint: true,
83
- openWorldHint: true,
84
- },
85
- }, async (params) => {
86
- const { purchaseId, companyId, projectId, resourceId, keywords, ...rest } = params;
87
- const tokens = [];
88
- if (keywords)
89
- tokens.push(keywords);
90
- if (purchaseId)
91
- tokens.push(`ACH${purchaseId}`);
92
- if (companyId)
93
- tokens.push(`CSOC${companyId}`);
94
- if (projectId)
95
- tokens.push(`PRJ${projectId}`);
96
- if (resourceId)
97
- tokens.push(`COMP${resourceId}`);
98
- const query = buildSearchQuery(tokens.length > 0 ? { ...rest, keywords: tokens.join(" ") } : rest);
99
- const response = await apiRequest("/payments", "GET", undefined, query);
100
- return {
101
- content: [{ type: "text", text: formatListResponse(response, "paiement", params.fields) }],
102
- };
103
- });
104
- server.registerTool("boond_payments_get", {
105
- title: "Details d'un paiement",
106
- description: defaultGetDescription({
107
- ...{ entityName: "paiement", entityNamePlural: "paiements", prefix: "boond_payments" },
108
- withTab: false,
41
+ registerSearchTool(server, OPTS, {
42
+ schema: PaymentSearchSchema,
43
+ description: composeDescription({
44
+ purpose: "Recherche des paiements / règlements fournisseur dans BoondManager.",
45
+ when: "pour retrouver les règlements adossés à un achat, une société, un projet ou une ressource, ceux d'un état (`paymentStates`), d'une période (`period: \"expected\"` + dates) ou d'un périmètre (`perimeter*`).",
46
+ instead: "`boond_purchases_search` pour les achats eux-mêmes, `boond_provider_invoices_search` pour les factures fournisseur.",
47
+ behaviour: [
48
+ "`purchaseId`, `companyId`, `projectId` et `resourceId` sont convertis en préfixes `keywords` (`ACH<id>`, `CSOC<id>`, `PRJ<id>`, `COMP<id>`) et concaténés aux `keywords` fournis — l'API n'a pas de paramètre dédié. Pas de filtre par facture : `/payments` ne connaît pas de référence `FACT<id>`.",
49
+ ],
50
+ returns: "page de résumés des paiements (ID + libellé principal). Lecture seule.",
109
51
  }),
110
- inputSchema: IdSchema,
111
- annotations: {
112
- readOnlyHint: true,
113
- destructiveHint: false,
114
- idempotentHint: true,
115
- openWorldHint: false,
116
- },
117
- }, async (params) => {
118
- const response = await apiRequest(`/payments/${params.id}`);
119
- return {
120
- content: [{ type: "text", text: formatDetailResponse(response) }],
121
- };
122
52
  });
53
+ registerGetTool(server, OPTS, { withTab: false });
54
+ // Issue #252: regularise a payment (performed date, amount, state).
55
+ registerUpdateTool(server, OPTS, PaymentUpdateSchema, buildPaymentUpdateBody, { method: "PUT" });
56
+ registerDeleteTool(server, OPTS);
123
57
  }
124
58
  //# sourceMappingURL=payments.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"payments.js","sourceRoot":"","sources":["../../src/tools/payments.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACrH,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAEtF,MAAM,mBAAmB,GAAG,CAAC;KAC1B,MAAM,CAAC;IACN,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IAC7D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;IAC9F,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;IACvF,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;IACrF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;IAChF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IAC5E,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;IAC/F,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IAC5E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IACvE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IAC1E,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IACxE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IAC5E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;CACtF,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,UAAU,oBAAoB,CAAC,MAAiB;IACpD,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;QACE,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EAAE,kBAAkB,CAAC;YAC9B,OAAO,EAAE,mEAAmE;YAC5E,IAAI,EAAE,iDAAiD;YACvD,OAAO,EACL,2GAA2G;YAC7G,SAAS,EAAE;gBACT,mGAAmG;gBACnG,iFAAiF;aAClF;YACD,OAAO,EAAE,yCAAyC;SACnD,CAAC;QACF,WAAW,EAAE,mBAAmB;QAChC,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,KAAK;YACrB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,GAAG,MAAM,CAAC;QAC9E,MAAM,QAAQ,GAAG;YACf,GAAG,KAAK;YACR,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7C,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/C,CAAC;QACF,MAAM,IAAI,GAAG,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAClD,IAAgD,CAAC,IAAI,CAAC,aAAa,GAAG;YACrE,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;SACzD,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC/E,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,mCAAmC,MAAM,EAAE,EAAE,OAAO,oBAAoB,CAAC,QAAQ,CAAC,EAAE;iBAC3F;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;QACE,KAAK,EAAE,0BAA0B;QACjC,WAAW,EAAE;;;;;;;;6CAQ0B;QACvC,WAAW,EAAE,mBAAmB;QAChC,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;SACpB;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;QACnF,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,QAAQ;YAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,UAAU;YAAE,MAAM,CAAC,IAAI,CAAC,MAAM,UAAU,EAAE,CAAC,CAAC;QAChD,IAAI,SAAS;YAAE,MAAM,CAAC,IAAI,CAAC,OAAO,SAAS,EAAE,CAAC,CAAC;QAC/C,IAAI,SAAS;YAAE,MAAM,CAAC,IAAI,CAAC,MAAM,SAAS,EAAE,CAAC,CAAC;QAC9C,IAAI,UAAU;YAAE,MAAM,CAAC,IAAI,CAAC,OAAO,UAAU,EAAE,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACnG,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QACxE,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,kBAAkB,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;SACpG,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EAAE,qBAAqB,CAAC;YACjC,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE;YACtF,OAAO,EAAE,KAAK;SACf,CAAC;QACF,WAAW,EAAE,QAAQ;QACrB,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,aAAa,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5D,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAAC;SAC3E,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"payments.js","sourceRoot":"","sources":["../../src/tools/payments.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"positionings.d.ts","sourceRoot":"","sources":["../../src/tools/positionings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAWzE,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA6LhE"}
1
+ {"version":3,"file":"positionings.d.ts","sourceRoot":"","sources":["../../src/tools/positionings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAYzE,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAqKhE"}
@@ -1,3 +1,4 @@
1
+ import { toKeywordReferences } from "./linked-entity-filters.js";
1
2
  import { PositioningSearchSchema, PositioningCreateSchema, PositioningUpdateSchema, IdSchema, } from "../schemas/index.js";
2
3
  import { apiRequest, buildSearchQuery, formatListResponse, formatDetailResponse } from "../services/boond-client.js";
3
4
  import { buildJsonApiBody, registerDeleteTool, MutationOutputSchema } from "./crud-factory.js";
@@ -8,12 +9,7 @@ export function registerPositioningTools(server) {
8
9
  title: "Rechercher des positionnements",
9
10
  description: `Recherche des positionnements (placement de candidats/ressources sur des projets/opportunités) dans BoondManager.
10
11
 
11
- L'API ne propose pas de paramètres de filtre dédiés : le filtrage par entité liée passe par des références dans \`keywords\` (AO<id>=opportunité, CAND<id>=candidat, COMP<id>=ressource, CSOC<id>=société, CCON<id>=contact, PROD<id>=produit). Les filtres *Id ci-dessous sont convertis automatiquement en ces références.
12
-
13
- Args:
14
- - keywords (string, optional): Termes de recherche (références d'entités acceptées)
15
- - candidateId, resourceId, opportunityId, companyId, contactId, productId (string, optional): Filtrer par entité liée (convertis en références keywords)
16
- - page, pageSize: Pagination
12
+ L'API ne propose pas de paramètres de filtre dédiés : le filtrage par entité liée passe par des références dans \`keywords\` (AO<id>=opportunité, CAND<id>=candidat, COMP<id>=ressource, CSOC<id>=société, CCON<id>=contact, PROD<id>=produit). Les filtres *Id du schéma sont convertis automatiquement en ces références.
17
13
 
18
14
  Returns: Liste des positionnements correspondants.`,
19
15
  inputSchema: PositioningSearchSchema,
@@ -27,23 +23,7 @@ Returns: Liste des positionnements correspondants.`,
27
23
  // L'API GET /positionings n'a pas de paramètres candidateId/resourceId/... :
28
24
  // le filtrage par entité passe par des références dans `keywords`
29
25
  // (cf. RAML officiel). Les paramètres bruts seraient silencieusement ignorés.
30
- const { candidateId, resourceId, opportunityId, companyId, contactId, productId, keywords, ...rest } = params;
31
- const tokens = [];
32
- if (keywords)
33
- tokens.push(keywords);
34
- if (opportunityId)
35
- tokens.push(`AO${opportunityId}`);
36
- if (candidateId)
37
- tokens.push(`CAND${candidateId}`);
38
- if (resourceId)
39
- tokens.push(`COMP${resourceId}`);
40
- if (companyId)
41
- tokens.push(`CSOC${companyId}`);
42
- if (contactId)
43
- tokens.push(`CCON${contactId}`);
44
- if (productId)
45
- tokens.push(`PROD${productId}`);
46
- const query = buildSearchQuery(tokens.length > 0 ? { ...rest, keywords: tokens.join(" ") } : rest);
26
+ const query = buildSearchQuery(toKeywordReferences(params));
47
27
  const response = await apiRequest("/positionings", "GET", undefined, query);
48
28
  return {
49
29
  content: [{ type: "text", text: formatListResponse(response, "positionnement", params.fields) }],
@@ -91,19 +71,16 @@ Returns: Liste des positionnements correspondants.`,
91
71
  },
92
72
  }, async (params) => {
93
73
  const { candidateId, resourceId, projectId, opportunityId, ...attrs } = params;
94
- const body = buildJsonApiBody("positioning", attrs);
95
74
  const relationships = {};
96
75
  if (candidateId)
97
- relationships.dependsOn = { data: { id: candidateId, type: "candidate" } };
76
+ relationships.dependsOn = { id: candidateId, type: "candidate" };
98
77
  if (resourceId)
99
- relationships.dependsOn = { data: { id: resourceId, type: "resource" } };
78
+ relationships.dependsOn = { id: resourceId, type: "resource" };
100
79
  if (projectId)
101
- relationships.project = { data: { id: projectId, type: "project" } };
80
+ relationships.project = { id: projectId, type: "project" };
102
81
  if (opportunityId)
103
- relationships.opportunity = { data: { id: opportunityId, type: "opportunity" } };
104
- if (Object.keys(relationships).length > 0) {
105
- body.data.relationships = relationships;
106
- }
82
+ relationships.opportunity = { id: opportunityId, type: "opportunity" };
83
+ const body = buildJsonApiBody("positioning", attrs, undefined, relationships);
107
84
  const response = await apiRequest("/positionings", "POST", body);
108
85
  const entity = Array.isArray(response.data) ? response.data[0] : response.data;
109
86
  return {
@@ -121,14 +98,7 @@ Returns: Liste des positionnements correspondants.`,
121
98
  // MutationOutputSchema, structuredContent) reproduit celui de la factory.
122
99
  server.registerTool("boond_positionings_update", {
123
100
  title: "Modifier un positionnement",
124
- description: `Met à jour un positionnement existant dans BoondManager (PUT /positionings/{id}). Seuls les champs fournis sont modifiés.
125
-
126
- Args:
127
- - id (string): ID du positionnement
128
- - state (number, optional): État du positionnement (ID du dictionnaire setting.state.positioning)
129
- - stateReasonTypeOf, stateReasonDetail (optional): Motif d'état (repliés en stateReason {typeOf, detail})
130
- - startDate, endDate (string, optional): Dates au format YYYY-MM-DD (chaîne vide pour effacer)
131
- - informationComments (string, optional): Commentaires (max 250 caractères)
101
+ description: `Met à jour un positionnement existant dans BoondManager (PUT /positionings/{id}). Seuls les champs fournis sont modifiés ; \`stateReasonTypeOf\` / \`stateReasonDetail\` sont repliés en \`stateReason: { typeOf, detail }\`.
132
102
 
133
103
  Returns: Données mises à jour du positionnement.`,
134
104
  inputSchema: PositioningUpdateSchema,
@@ -1 +1 @@
1
- {"version":3,"file":"positionings.js","sourceRoot":"","sources":["../../src/tools/positionings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"positionings.js","sourceRoot":"","sources":["../../src/tools/positionings.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/tools/projects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA4FzE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAuC5D"}
1
+ {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/tools/projects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA4FzE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAmC5D"}
@@ -85,18 +85,11 @@ export function registerProjectTools(server) {
85
85
  registerCreateTool(server, OPTS, ProjectCreateSchema, (params) => {
86
86
  const { companyId, contactId, opportunityId, name, ...attrs } = params;
87
87
  const apiAttrs = { ...attrs, ...(name ? { title: name } : {}) };
88
- const body = buildJsonApiBody("project", apiAttrs);
89
- const relationships = {};
90
- if (companyId)
91
- relationships.company = { data: { id: companyId, type: "company" } };
92
- if (contactId)
93
- relationships.contact = { data: { id: contactId, type: "contact" } };
94
- if (opportunityId)
95
- relationships.opportunity = { data: { id: opportunityId, type: "opportunity" } };
96
- if (Object.keys(relationships).length > 0) {
97
- body.data.relationships = relationships;
98
- }
99
- return body;
88
+ return buildJsonApiBody("project", apiAttrs, undefined, {
89
+ company: typeof companyId === "string" ? { id: companyId, type: "company" } : undefined,
90
+ contact: typeof contactId === "string" ? { id: contactId, type: "contact" } : undefined,
91
+ opportunity: typeof opportunityId === "string" ? { id: opportunityId, type: "opportunity" } : undefined,
92
+ });
100
93
  });
101
94
  // Updates go through PUT /projects/{id}/information — the base resource
102
95
  // returns 405 on PATCH (issue #134, same root cause as #124). buildJsonApiBody
@@ -1 +1 @@
1
- {"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/tools/projects.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/tools/projects.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
1
  import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ /** `/provider-invoices` payload: `resource` is mandatory, `providerCompany` / `providerContact` optional. */
3
+ export declare function buildProviderInvoiceBody(params: Record<string, unknown>): unknown;
2
4
  export declare function registerProviderInvoiceTools(server: McpServer): void;
3
5
  //# sourceMappingURL=provider-invoices.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider-invoices.d.ts","sourceRoot":"","sources":["../../src/tools/provider-invoices.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAsCzE,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA0GpE"}
1
+ {"version":3,"file":"provider-invoices.d.ts","sourceRoot":"","sources":["../../src/tools/provider-invoices.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAuBzE,6GAA6G;AAC7G,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAOjF;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAyCpE"}