boondmanager-mcp-server 2.16.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.
Files changed (285) hide show
  1. package/README.md +57 -4
  2. package/dist/config/access-policy.d.ts.map +1 -1
  3. package/dist/config/access-policy.js +6 -18
  4. package/dist/config/access-policy.js.map +1 -1
  5. package/dist/config/dictionary-overrides.d.ts.map +1 -1
  6. package/dist/config/dictionary-overrides.js +2 -12
  7. package/dist/config/dictionary-overrides.js.map +1 -1
  8. package/dist/config/env.d.ts +63 -0
  9. package/dist/config/env.d.ts.map +1 -0
  10. package/dist/config/env.js +116 -0
  11. package/dist/config/env.js.map +1 -0
  12. package/dist/config/profiles.d.ts +22 -8
  13. package/dist/config/profiles.d.ts.map +1 -1
  14. package/dist/config/profiles.js +48 -4
  15. package/dist/config/profiles.js.map +1 -1
  16. package/dist/config/transport-kind.d.ts +8 -0
  17. package/dist/config/transport-kind.d.ts.map +1 -0
  18. package/dist/config/transport-kind.js +13 -0
  19. package/dist/config/transport-kind.js.map +1 -0
  20. package/dist/constants.d.ts +20 -2
  21. package/dist/constants.d.ts.map +1 -1
  22. package/dist/constants.js +32 -1
  23. package/dist/constants.js.map +1 -1
  24. package/dist/icons.d.ts.map +1 -1
  25. package/dist/icons.js +6 -1
  26. package/dist/icons.js.map +1 -1
  27. package/dist/index.js +32 -20
  28. package/dist/index.js.map +1 -1
  29. package/dist/instructions.d.ts +1 -1
  30. package/dist/instructions.d.ts.map +1 -1
  31. package/dist/instructions.js +6 -6
  32. package/dist/instructions.js.map +1 -1
  33. package/dist/prompts/index.d.ts +19 -1
  34. package/dist/prompts/index.d.ts.map +1 -1
  35. package/dist/prompts/index.js +495 -25
  36. package/dist/prompts/index.js.map +1 -1
  37. package/dist/prompts/periods.d.ts +45 -0
  38. package/dist/prompts/periods.d.ts.map +1 -0
  39. package/dist/prompts/periods.js +154 -0
  40. package/dist/prompts/periods.js.map +1 -0
  41. package/dist/resources/index.d.ts +14 -0
  42. package/dist/resources/index.d.ts.map +1 -1
  43. package/dist/resources/index.js +285 -0
  44. package/dist/resources/index.js.map +1 -1
  45. package/dist/resources/templates.d.ts +1 -1
  46. package/dist/resources/templates.d.ts.map +1 -1
  47. package/dist/resources/templates.js +2 -0
  48. package/dist/resources/templates.js.map +1 -1
  49. package/dist/schema-dialect.js.map +1 -1
  50. package/dist/schemas/filter-aliases.d.ts +1 -1
  51. package/dist/schemas/filter-aliases.d.ts.map +1 -1
  52. package/dist/schemas/filter-aliases.js +101 -2
  53. package/dist/schemas/filter-aliases.js.map +1 -1
  54. package/dist/schemas/index.d.ts +1045 -163
  55. package/dist/schemas/index.d.ts.map +1 -1
  56. package/dist/schemas/index.js +979 -330
  57. package/dist/schemas/index.js.map +1 -1
  58. package/dist/server.d.ts.map +1 -1
  59. package/dist/server.js +10 -3
  60. package/dist/server.js.map +1 -1
  61. package/dist/services/boond-client.d.ts +29 -213
  62. package/dist/services/boond-client.d.ts.map +1 -1
  63. package/dist/services/boond-client.js +29 -1168
  64. package/dist/services/boond-client.js.map +1 -1
  65. package/dist/services/dictionary.d.ts +27 -3
  66. package/dist/services/dictionary.d.ts.map +1 -1
  67. package/dist/services/dictionary.js +60 -23
  68. package/dist/services/dictionary.js.map +1 -1
  69. package/dist/services/document-text.d.ts +32 -0
  70. package/dist/services/document-text.d.ts.map +1 -0
  71. package/dist/services/document-text.js +120 -0
  72. package/dist/services/document-text.js.map +1 -0
  73. package/dist/services/format/detail.d.ts +16 -0
  74. package/dist/services/format/detail.d.ts.map +1 -0
  75. package/dist/services/format/detail.js +36 -0
  76. package/dist/services/format/detail.js.map +1 -0
  77. package/dist/services/format/html.d.ts +19 -0
  78. package/dist/services/format/html.d.ts.map +1 -0
  79. package/dist/services/format/html.js +87 -0
  80. package/dist/services/format/html.js.map +1 -0
  81. package/dist/services/format/list.d.ts +3 -0
  82. package/dist/services/format/list.d.ts.map +1 -0
  83. package/dist/services/format/list.js +44 -0
  84. package/dist/services/format/list.js.map +1 -0
  85. package/dist/services/format/summary.d.ts +23 -0
  86. package/dist/services/format/summary.d.ts.map +1 -0
  87. package/dist/services/format/summary.js +194 -0
  88. package/dist/services/format/summary.js.map +1 -0
  89. package/dist/services/format/tab.d.ts +9 -0
  90. package/dist/services/format/tab.d.ts.map +1 -0
  91. package/dist/services/format/tab.js +32 -0
  92. package/dist/services/format/tab.js.map +1 -0
  93. package/dist/services/http/auth.d.ts +44 -0
  94. package/dist/services/http/auth.d.ts.map +1 -0
  95. package/dist/services/http/auth.js +146 -0
  96. package/dist/services/http/auth.js.map +1 -0
  97. package/dist/services/http/download.d.ts +60 -0
  98. package/dist/services/http/download.d.ts.map +1 -0
  99. package/dist/services/http/download.js +160 -0
  100. package/dist/services/http/download.js.map +1 -0
  101. package/dist/services/http/errors.d.ts +45 -0
  102. package/dist/services/http/errors.d.ts.map +1 -0
  103. package/dist/services/http/errors.js +188 -0
  104. package/dist/services/http/errors.js.map +1 -0
  105. package/dist/services/http/rate-limit.d.ts +40 -0
  106. package/dist/services/http/rate-limit.d.ts.map +1 -0
  107. package/dist/services/http/rate-limit.js +92 -0
  108. package/dist/services/http/rate-limit.js.map +1 -0
  109. package/dist/services/http/retry.d.ts +46 -0
  110. package/dist/services/http/retry.d.ts.map +1 -0
  111. package/dist/services/http/retry.js +101 -0
  112. package/dist/services/http/retry.js.map +1 -0
  113. package/dist/services/http/transport.d.ts +85 -0
  114. package/dist/services/http/transport.d.ts.map +1 -0
  115. package/dist/services/http/transport.js +283 -0
  116. package/dist/services/http/transport.js.map +1 -0
  117. package/dist/services/logger.d.ts +53 -2
  118. package/dist/services/logger.d.ts.map +1 -1
  119. package/dist/services/logger.js +82 -21
  120. package/dist/services/logger.js.map +1 -1
  121. package/dist/services/oauth.d.ts +12 -0
  122. package/dist/services/oauth.d.ts.map +1 -1
  123. package/dist/services/oauth.js +21 -8
  124. package/dist/services/oauth.js.map +1 -1
  125. package/dist/services/rate-limiter.d.ts +9 -2
  126. package/dist/services/rate-limiter.d.ts.map +1 -1
  127. package/dist/services/rate-limiter.js +18 -6
  128. package/dist/services/rate-limiter.js.map +1 -1
  129. package/dist/services/request-context.d.ts +47 -0
  130. package/dist/services/request-context.d.ts.map +1 -0
  131. package/dist/services/request-context.js +112 -0
  132. package/dist/services/request-context.js.map +1 -0
  133. package/dist/services/search.d.ts +26 -0
  134. package/dist/services/search.d.ts.map +1 -0
  135. package/dist/services/search.js +98 -0
  136. package/dist/services/search.js.map +1 -0
  137. package/dist/services/update-checker.d.ts.map +1 -1
  138. package/dist/services/update-checker.js +15 -8
  139. package/dist/services/update-checker.js.map +1 -1
  140. package/dist/services/upload-source.d.ts +31 -0
  141. package/dist/services/upload-source.d.ts.map +1 -0
  142. package/dist/services/upload-source.js +180 -0
  143. package/dist/services/upload-source.js.map +1 -0
  144. package/dist/tools/absences.d.ts +9 -0
  145. package/dist/tools/absences.d.ts.map +1 -1
  146. package/dist/tools/absences.js +65 -20
  147. package/dist/tools/absences.js.map +1 -1
  148. package/dist/tools/actions.d.ts.map +1 -1
  149. package/dist/tools/actions.js +11 -27
  150. package/dist/tools/actions.js.map +1 -1
  151. package/dist/tools/advantages.d.ts +2 -0
  152. package/dist/tools/advantages.d.ts.map +1 -1
  153. package/dist/tools/advantages.js +66 -13
  154. package/dist/tools/advantages.js.map +1 -1
  155. package/dist/tools/alerts.d.ts +18 -0
  156. package/dist/tools/alerts.d.ts.map +1 -0
  157. package/dist/tools/alerts.js +82 -0
  158. package/dist/tools/alerts.js.map +1 -0
  159. package/dist/tools/application.d.ts +2 -1
  160. package/dist/tools/application.d.ts.map +1 -1
  161. package/dist/tools/application.js +9 -3
  162. package/dist/tools/application.js.map +1 -1
  163. package/dist/tools/candidates.d.ts +7 -0
  164. package/dist/tools/candidates.d.ts.map +1 -1
  165. package/dist/tools/candidates.js +96 -1
  166. package/dist/tools/candidates.js.map +1 -1
  167. package/dist/tools/contacts.d.ts.map +1 -1
  168. package/dist/tools/contacts.js +3 -7
  169. package/dist/tools/contacts.js.map +1 -1
  170. package/dist/tools/contracts.d.ts +22 -0
  171. package/dist/tools/contracts.d.ts.map +1 -1
  172. package/dist/tools/contracts.js +185 -52
  173. package/dist/tools/contracts.js.map +1 -1
  174. package/dist/tools/crud-factory.d.ts +33 -2
  175. package/dist/tools/crud-factory.d.ts.map +1 -1
  176. package/dist/tools/crud-factory.js +45 -17
  177. package/dist/tools/crud-factory.js.map +1 -1
  178. package/dist/tools/deliveries.d.ts +3 -0
  179. package/dist/tools/deliveries.d.ts.map +1 -1
  180. package/dist/tools/deliveries.js +50 -94
  181. package/dist/tools/deliveries.js.map +1 -1
  182. package/dist/tools/description-builders.d.ts +0 -1
  183. package/dist/tools/description-builders.d.ts.map +1 -1
  184. package/dist/tools/description-builders.js +47 -4
  185. package/dist/tools/description-builders.js.map +1 -1
  186. package/dist/tools/documents.d.ts.map +1 -1
  187. package/dist/tools/documents.js +113 -27
  188. package/dist/tools/documents.js.map +1 -1
  189. package/dist/tools/expenses.d.ts.map +1 -1
  190. package/dist/tools/expenses.js +2 -11
  191. package/dist/tools/expenses.js.map +1 -1
  192. package/dist/tools/find.d.ts +61 -0
  193. package/dist/tools/find.d.ts.map +1 -0
  194. package/dist/tools/find.js +221 -0
  195. package/dist/tools/find.js.map +1 -0
  196. package/dist/tools/flags.d.ts +5 -0
  197. package/dist/tools/flags.d.ts.map +1 -1
  198. package/dist/tools/flags.js +116 -1
  199. package/dist/tools/flags.js.map +1 -1
  200. package/dist/tools/forms.d.ts +5 -0
  201. package/dist/tools/forms.d.ts.map +1 -0
  202. package/dist/tools/forms.js +64 -0
  203. package/dist/tools/forms.js.map +1 -0
  204. package/dist/tools/groupments.d.ts +5 -0
  205. package/dist/tools/groupments.d.ts.map +1 -0
  206. package/dist/tools/groupments.js +68 -0
  207. package/dist/tools/groupments.js.map +1 -0
  208. package/dist/tools/inactivities.d.ts +5 -0
  209. package/dist/tools/inactivities.d.ts.map +1 -0
  210. package/dist/tools/inactivities.js +59 -0
  211. package/dist/tools/inactivities.js.map +1 -0
  212. package/dist/tools/index.d.ts +4 -0
  213. package/dist/tools/index.d.ts.map +1 -1
  214. package/dist/tools/index.js +4 -0
  215. package/dist/tools/index.js.map +1 -1
  216. package/dist/tools/invoices.d.ts.map +1 -1
  217. package/dist/tools/invoices.js +27 -2
  218. package/dist/tools/invoices.js.map +1 -1
  219. package/dist/tools/linked-entity-filters.d.ts +48 -0
  220. package/dist/tools/linked-entity-filters.d.ts.map +1 -0
  221. package/dist/tools/linked-entity-filters.js +64 -0
  222. package/dist/tools/linked-entity-filters.js.map +1 -0
  223. package/dist/tools/notifications.d.ts.map +1 -1
  224. package/dist/tools/notifications.js +0 -5
  225. package/dist/tools/notifications.js.map +1 -1
  226. package/dist/tools/orders.d.ts.map +1 -1
  227. package/dist/tools/orders.js +33 -4
  228. package/dist/tools/orders.js.map +1 -1
  229. package/dist/tools/parameter-disclosure.js.map +1 -1
  230. package/dist/tools/payments.d.ts +3 -0
  231. package/dist/tools/payments.d.ts.map +1 -1
  232. package/dist/tools/payments.js +43 -109
  233. package/dist/tools/payments.js.map +1 -1
  234. package/dist/tools/positionings.d.ts.map +1 -1
  235. package/dist/tools/positionings.js +9 -39
  236. package/dist/tools/positionings.js.map +1 -1
  237. package/dist/tools/projects.d.ts.map +1 -1
  238. package/dist/tools/projects.js +5 -12
  239. package/dist/tools/projects.js.map +1 -1
  240. package/dist/tools/provider-invoices.d.ts +2 -0
  241. package/dist/tools/provider-invoices.d.ts.map +1 -1
  242. package/dist/tools/provider-invoices.js +30 -111
  243. package/dist/tools/provider-invoices.js.map +1 -1
  244. package/dist/tools/purchases.d.ts +2 -0
  245. package/dist/tools/purchases.d.ts.map +1 -1
  246. package/dist/tools/purchases.js +50 -104
  247. package/dist/tools/purchases.js.map +1 -1
  248. package/dist/tools/registration-decorators.d.ts +28 -0
  249. package/dist/tools/registration-decorators.d.ts.map +1 -1
  250. package/dist/tools/registration-decorators.js +107 -0
  251. package/dist/tools/registration-decorators.js.map +1 -1
  252. package/dist/tools/resources.d.ts.map +1 -1
  253. package/dist/tools/resources.js +27 -5
  254. package/dist/tools/resources.js.map +1 -1
  255. package/dist/tools/rights.d.ts +101 -0
  256. package/dist/tools/rights.d.ts.map +1 -0
  257. package/dist/tools/rights.js +75 -0
  258. package/dist/tools/rights.js.map +1 -0
  259. package/dist/tools/tab-tools.js +3 -3
  260. package/dist/tools/tab-tools.js.map +1 -1
  261. package/dist/tools/timesheets.d.ts +29 -0
  262. package/dist/tools/timesheets.d.ts.map +1 -1
  263. package/dist/tools/timesheets.js +196 -126
  264. package/dist/tools/timesheets.js.map +1 -1
  265. package/dist/tools/todolists.d.ts +2 -0
  266. package/dist/tools/todolists.d.ts.map +1 -1
  267. package/dist/tools/todolists.js +64 -1
  268. package/dist/tools/todolists.js.map +1 -1
  269. package/dist/tools/usage-guidance.d.ts.map +1 -1
  270. package/dist/tools/usage-guidance.js +12 -3
  271. package/dist/tools/usage-guidance.js.map +1 -1
  272. package/dist/tools/validations.d.ts +9 -0
  273. package/dist/tools/validations.d.ts.map +1 -1
  274. package/dist/tools/validations.js +86 -9
  275. package/dist/tools/validations.js.map +1 -1
  276. package/dist/tools/workflows.js +1 -1
  277. package/dist/tools/workflows.js.map +1 -1
  278. package/dist/transports/http.d.ts +116 -0
  279. package/dist/transports/http.d.ts.map +1 -1
  280. package/dist/transports/http.js +422 -92
  281. package/dist/transports/http.js.map +1 -1
  282. package/dist/types.d.ts +3 -3
  283. package/dist/types.d.ts.map +1 -1
  284. package/manifest.json +2 -2
  285. package/package.json +6 -5
@@ -0,0 +1,8 @@
1
+ export type TransportKind = "stdio" | "http";
2
+ /**
3
+ * The transport selected by `MCP_TRANSPORT`. Lives in `config/` rather than
4
+ * `index.ts` so that tools whose behaviour depends on where the server runs
5
+ * (local-file uploads are stdio-only) read the same rule the entry point does.
6
+ */
7
+ export declare function resolveTransport(env?: NodeJS.ProcessEnv): TransportKind;
8
+ //# sourceMappingURL=transport-kind.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport-kind.d.ts","sourceRoot":"","sources":["../../src/config/transport-kind.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,CAAC;AAE7C;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,aAAa,CAIpF"}
@@ -0,0 +1,13 @@
1
+ import { readString } from "./env.js";
2
+ /**
3
+ * The transport selected by `MCP_TRANSPORT`. Lives in `config/` rather than
4
+ * `index.ts` so that tools whose behaviour depends on where the server runs
5
+ * (local-file uploads are stdio-only) read the same rule the entry point does.
6
+ */
7
+ export function resolveTransport(env = process.env) {
8
+ const raw = (readString("MCP_TRANSPORT", env) ?? "").toLowerCase().trim();
9
+ if (raw === "http" || raw === "streamable-http" || raw === "streamablehttp")
10
+ return "http";
11
+ return "stdio";
12
+ }
13
+ //# sourceMappingURL=transport-kind.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport-kind.js","sourceRoot":"","sources":["../../src/config/transport-kind.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAItC;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAyB,OAAO,CAAC,GAAG;IACnE,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,eAAe,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IAC1E,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,iBAAiB,IAAI,GAAG,KAAK,gBAAgB;QAAE,OAAO,MAAM,CAAC;IAC3F,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -7,6 +7,19 @@ export declare const DEFAULT_MAX_RESULTS = 500;
7
7
  export declare const TOOLS_IGNORING_PAGINATION: ReadonlySet<string>;
8
8
  export declare const MAX_SEARCH_PAGE = 100;
9
9
  export declare const MAX_DOCUMENT_BYTES: number;
10
+ /** Default ceiling for a local file uploaded via `filePath` (`BOOND_MCP_UPLOAD_MAX_BYTES`). */
11
+ export declare const DEFAULT_UPLOAD_MAX_BYTES: number;
12
+ /**
13
+ * Ceiling for base64 content passed inline (`fileContent`). Kept low on
14
+ * purpose: every byte costs ~1.33 base64 characters in the model's output.
15
+ */
16
+ export declare const INLINE_UPLOAD_MAX_BYTES: number;
17
+ /**
18
+ * Ceiling for a document returned as MCP `image` content (issue #263). Hosts
19
+ * hand `image` content to the model's vision input, so the bytes land in the
20
+ * context as-is: 2 MiB is a scanned receipt or a photo of a CV, not a poster.
21
+ */
22
+ export declare const MAX_IMAGE_BYTES: number;
10
23
  export declare const MAX_RESOURCE_BYTES: number;
11
24
  export declare const DEFAULT_HTTP_TIMEOUT_MS = 30000;
12
25
  export declare const DEFAULT_HTTP_MAX_RETRIES = 2;
@@ -59,8 +72,12 @@ export declare const API_PATHS: {
59
72
  readonly reportingSynthesis: "/reporting-synthesis";
60
73
  readonly reportingProductionPlans: "/reporting-production-plans";
61
74
  readonly documents: "/documents";
75
+ readonly inactivities: "/inactivities";
76
+ readonly forms: "/forms";
77
+ readonly groupments: "/groupments";
78
+ readonly alerts: "/alerts";
62
79
  };
63
- export declare const REGISTERED_DOMAINS: readonly ["candidates", "resources", "contacts", "companies", "opportunities", "actions", "timesheets", "projects", "invoices", "orders", "deliveries", "absences", "expenses", "products", "positionings", "payments", "advantages", "application", "contracts", "purchases", "provider-invoices", "accounts", "agencies", "business-units", "roles", "logs", "notifications", "threads", "todolists", "flags", "calendars", "webhooks", "validations", "poles", "reporting", "planning-absences", "documents", "workflows"];
80
+ export declare const REGISTERED_DOMAINS: readonly ["candidates", "resources", "contacts", "companies", "opportunities", "actions", "timesheets", "projects", "invoices", "orders", "deliveries", "absences", "expenses", "products", "positionings", "payments", "advantages", "application", "contracts", "purchases", "provider-invoices", "accounts", "agencies", "business-units", "roles", "logs", "notifications", "threads", "todolists", "flags", "calendars", "webhooks", "validations", "poles", "reporting", "planning-absences", "inactivities", "forms", "groupments", "alerts", "documents", "workflows"];
64
81
  export type DomainName = (typeof REGISTERED_DOMAINS)[number];
65
82
  export declare const ENTITY_TABS: {
66
83
  readonly candidates: readonly ["information", "technical-data", "administrative", "actions", "positionings"];
@@ -69,7 +86,8 @@ export declare const ENTITY_TABS: {
69
86
  readonly companies: readonly ["information", "contacts", "actions", "opportunities", "projects", "orders", "invoices", "purchases", "provider-invoices"];
70
87
  readonly opportunities: readonly ["information", "actions", "positionings", "projects", "simulation"];
71
88
  readonly projects: readonly ["information", "actions", "simulation", "deliveries-groupments", "orders", "purchases", "productivity"];
72
- readonly invoices: readonly ["information", "actions", "billable-items"];
89
+ readonly invoices: readonly ["information", "actions"];
73
90
  readonly orders: readonly ["information", "actions", "invoices"];
91
+ readonly purchases: readonly ["information"];
74
92
  };
75
93
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,gBAAgB,oCAAoC,CAAC;AAClE,eAAO,MAAM,eAAe,QAAQ,CAAC;AACrC,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,aAAa,MAAM,CAAC;AAUjC,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAEpD,CAAC;AACF,eAAO,MAAM,mBAAmB,MAAgB,CAAC;AA6BjD,eAAO,MAAM,yBAAyB,EAAE,WAAW,CAAC,MAAM,CAKxD,CAAC;AAKH,eAAO,MAAM,eAAe,MAAM,CAAC;AAMnC,eAAO,MAAM,kBAAkB,QAAkB,CAAC;AASlD,eAAO,MAAM,kBAAkB,QAAa,CAAC;AAK7C,eAAO,MAAM,uBAAuB,QAAS,CAAC;AAK9C,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAC9C,eAAO,MAAM,yBAAyB,OAAQ,CAAC;AAM/C,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAC9C,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAGhD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6CZ,CAAC;AAOX,eAAO,MAAM,kBAAkB,+fAuCrB,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAG7D,eAAO,MAAM,WAAW;;;;;;;;;CAsCd,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,gBAAgB,oCAAoC,CAAC;AAClE,eAAO,MAAM,eAAe,QAAQ,CAAC;AACrC,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,aAAa,MAAM,CAAC;AAUjC,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAEpD,CAAC;AACF,eAAO,MAAM,mBAAmB,MAAgB,CAAC;AA6BjD,eAAO,MAAM,yBAAyB,EAAE,WAAW,CAAC,MAAM,CAKxD,CAAC;AAKH,eAAO,MAAM,eAAe,MAAM,CAAC;AAMnC,eAAO,MAAM,kBAAkB,QAAkB,CAAC;AAElD,+FAA+F;AAC/F,eAAO,MAAM,wBAAwB,QAAmB,CAAC;AAEzD;;;GAGG;AACH,eAAO,MAAM,uBAAuB,QAAkB,CAAC;AAEvD;;;;GAIG;AACH,eAAO,MAAM,eAAe,QAAkB,CAAC;AAS/C,eAAO,MAAM,kBAAkB,QAAa,CAAC;AAK7C,eAAO,MAAM,uBAAuB,QAAS,CAAC;AAK9C,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAC9C,eAAO,MAAM,yBAAyB,OAAQ,CAAC;AAM/C,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAC9C,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAGhD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmDZ,CAAC;AAOX,eAAO,MAAM,kBAAkB,gjBA6CrB,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAG7D,eAAO,MAAM,WAAW;;;;;;;;;;CA4Cd,CAAC"}
package/dist/constants.js CHANGED
@@ -57,6 +57,19 @@ export const MAX_SEARCH_PAGE = 100;
57
57
  // anything beyond this is refused with a clear message instead of silently
58
58
  // flooding the conversation.
59
59
  export const MAX_DOCUMENT_BYTES = 5 * 1024 * 1024;
60
+ /** Default ceiling for a local file uploaded via `filePath` (`BOOND_MCP_UPLOAD_MAX_BYTES`). */
61
+ export const DEFAULT_UPLOAD_MAX_BYTES = 20 * 1024 * 1024;
62
+ /**
63
+ * Ceiling for base64 content passed inline (`fileContent`). Kept low on
64
+ * purpose: every byte costs ~1.33 base64 characters in the model's output.
65
+ */
66
+ export const INLINE_UPLOAD_MAX_BYTES = 2 * 1024 * 1024;
67
+ /**
68
+ * Ceiling for a document returned as MCP `image` content (issue #263). Hosts
69
+ * hand `image` content to the model's vision input, so the bytes land in the
70
+ * context as-is: 2 MiB is a scanned receipt or a photo of a CV, not a poster.
71
+ */
72
+ export const MAX_IMAGE_BYTES = 2 * 1024 * 1024;
60
73
  // Hard ceiling on the body of an entity resource template
61
74
  // (`boond://candidate/{id}`). Unlike a tool, a resource has no `pageSize` and
62
75
  // the model cannot ask for less, so the cap is enforced server-side by dropping
@@ -127,6 +140,12 @@ export const API_PATHS = {
127
140
  reportingSynthesis: "/reporting-synthesis",
128
141
  reportingProductionPlans: "/reporting-production-plans",
129
142
  documents: "/documents",
143
+ // Issue #256 — create-only collections (search.raml documents `post`), plus default / rights.
144
+ inactivities: "/inactivities",
145
+ forms: "/forms",
146
+ groupments: "/groupments",
147
+ // Issue #255 — the user's dashboard alerts (alerts/search.raml: get only, no parameter).
148
+ alerts: "/alerts",
130
149
  };
131
150
  // Canonical list of tool domains exposed by the server, in registration order.
132
151
  // Domain names use dashes; the matching tool-name prefix replaces them with
@@ -170,6 +189,12 @@ export const REGISTERED_DOMAINS = [
170
189
  "poles",
171
190
  "reporting",
172
191
  "planning-absences",
192
+ // Issue #256
193
+ "inactivities",
194
+ "forms",
195
+ "groupments",
196
+ // Issue #255
197
+ "alerts",
173
198
  "documents",
174
199
  "workflows",
175
200
  ];
@@ -210,7 +235,13 @@ export const ENTITY_TABS = {
210
235
  "purchases",
211
236
  "productivity",
212
237
  ],
213
- invoices: ["information", "actions", "billable-items"],
238
+ // `billable-items` was listed here but never wired (#258): probed live on
239
+ // 2026-09-26, `GET /invoices/{id}/billable-items` answers 403 "Potential
240
+ // missing contractual feature(s): labs, appsNoCode" — a feature-gated route,
241
+ // absent from the RAML. Not exposed until a tenant is seen answering 200.
242
+ invoices: ["information", "actions"],
214
243
  orders: ["information", "actions", "invoices"],
244
+ // `/purchases/{id}/actions` and `/billable-items` answer 404 (same probe).
245
+ purchases: ["information"],
215
246
  };
216
247
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,MAAM,CAAC,MAAM,gBAAgB,GAAG,iCAAiC,CAAC;AAClE,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC;AACrC,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AACpC,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAC;AAEjC,4EAA4E;AAC5E,gFAAgF;AAChF,0EAA0E;AAC1E,6EAA6E;AAC7E,gFAAgF;AAChF,8EAA8E;AAC9E,mEAAmE;AACnE,iFAAiF;AACjF,MAAM,CAAC,MAAM,iBAAiB,GAA2B;IACvD,UAAU,EAAE,GAAG;CAChB,CAAC;AACF,MAAM,CAAC,MAAM,mBAAmB,GAAG,aAAa,CAAC;AAEjD,4EAA4E;AAC5E,yEAAyE;AACzE,2BAA2B;AAC3B,EAAE;AACF,yDAAyD;AACzD,yDAAyD;AACzD,yDAAyD;AACzD,wDAAwD;AACxD,EAAE;AACF,wEAAwE;AACxE,gFAAgF;AAChF,8EAA8E;AAC9E,gFAAgF;AAChF,+EAA+E;AAC/E,gFAAgF;AAChF,EAAE;AACF,4EAA4E;AAC5E,uEAAuE;AACvE,EAAE;AACF,0EAA0E;AAC1E,wEAAwE;AACxE,wDAAwD;AACxD,EAAE;AACF,4EAA4E;AAC5E,6EAA6E;AAC7E,4EAA4E;AAC5E,6CAA6C;AAC7C,MAAM,CAAC,MAAM,yBAAyB,GAAwB,IAAI,GAAG,CAAC;IACpE,oBAAoB;IACpB,uBAAuB;IACvB,wBAAwB;IACxB,uBAAuB;CACxB,CAAC,CAAC;AAEH,yEAAyE;AACzE,wEAAwE;AACxE,yEAAyE;AACzE,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAC;AAEnC,wEAAwE;AACxE,6EAA6E;AAC7E,2EAA2E;AAC3E,6BAA6B;AAC7B,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAElD,0DAA0D;AAC1D,8EAA8E;AAC9E,gFAAgF;AAChF,8EAA8E;AAC9E,sEAAsE;AACtE,0EAA0E;AAC1E,iEAAiE;AACjE,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,GAAG,IAAI,CAAC;AAE7C,uBAAuB;AACvB,qEAAqE;AACrE,0EAA0E;AAC1E,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAE9C,4EAA4E;AAC5E,6EAA6E;AAC7E,4BAA4B;AAC5B,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAC1C,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAC9C,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,CAAC;AAE/C,2EAA2E;AAC3E,2EAA2E;AAC3E,wEAAwE;AACxE,kDAAkD;AAClD,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,CAAC;AAC9C,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,CAAC;AAEhD,YAAY;AACZ,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,UAAU,EAAE,aAAa;IACzB,SAAS,EAAE,YAAY;IACvB,QAAQ,EAAE,WAAW;IACrB,SAAS,EAAE,YAAY;IACvB,aAAa,EAAE,gBAAgB;IAC/B,OAAO,EAAE,UAAU;IACnB,QAAQ,EAAE,WAAW;IACrB,QAAQ,EAAE,WAAW;IACrB,MAAM,EAAE,SAAS;IACjB,UAAU,EAAE,aAAa;IACzB,oBAAoB,EAAE,wBAAwB;IAC9C,QAAQ,EAAE,WAAW;IACrB,eAAe,EAAE,mBAAmB;IACpC,QAAQ,EAAE,WAAW;IACrB,eAAe,EAAE,mBAAmB;IACpC,QAAQ,EAAE,WAAW;IACrB,YAAY,EAAE,eAAe;IAC7B,QAAQ,EAAE,WAAW;IACrB,UAAU,EAAE,aAAa;IACzB,WAAW,EAAE,cAAc;IAC3B,YAAY,EAAE,gBAAgB;IAC9B,SAAS,EAAE,YAAY;IACvB,SAAS,EAAE,YAAY;IACvB,gBAAgB,EAAE,oBAAoB;IACtC,QAAQ,EAAE,WAAW;IACrB,QAAQ,EAAE,WAAW;IACrB,aAAa,EAAE,iBAAiB;IAChC,KAAK,EAAE,QAAQ;IACf,IAAI,EAAE,OAAO;IACb,aAAa,EAAE,gBAAgB;IAC/B,OAAO,EAAE,UAAU;IACnB,SAAS,EAAE,YAAY;IACvB,KAAK,EAAE,QAAQ;IACf,SAAS,EAAE,YAAY;IACvB,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,cAAc;IAC3B,KAAK,EAAE,QAAQ;IACf,gBAAgB,EAAE,oBAAoB;IACtC,kBAAkB,EAAE,sBAAsB;IAC1C,iBAAiB,EAAE,qBAAqB;IACxC,kBAAkB,EAAE,sBAAsB;IAC1C,kBAAkB,EAAE,sBAAsB;IAC1C,wBAAwB,EAAE,6BAA6B;IACvD,SAAS,EAAE,YAAY;CACf,CAAC;AAEX,+EAA+E;AAC/E,4EAA4E;AAC5E,yEAAyE;AACzE,wEAAwE;AACxE,2EAA2E;AAC3E,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,YAAY;IACZ,WAAW;IACX,UAAU;IACV,WAAW;IACX,eAAe;IACf,SAAS;IACT,YAAY;IACZ,UAAU;IACV,UAAU;IACV,QAAQ;IACR,YAAY;IACZ,UAAU;IACV,UAAU;IACV,UAAU;IACV,cAAc;IACd,UAAU;IACV,YAAY;IACZ,aAAa;IACb,WAAW;IACX,WAAW;IACX,mBAAmB;IACnB,UAAU;IACV,UAAU;IACV,gBAAgB;IAChB,OAAO;IACP,MAAM;IACN,eAAe;IACf,SAAS;IACT,WAAW;IACX,OAAO;IACP,WAAW;IACX,UAAU;IACV,aAAa;IACb,OAAO;IACP,WAAW;IACX,mBAAmB;IACnB,WAAW;IACX,WAAW;CACH,CAAC;AAIX,kEAAkE;AAClE,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,UAAU,EAAE,CAAC,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,SAAS,EAAE,cAAc,CAAU;IACnG,SAAS,EAAE;QACT,aAAa;QACb,gBAAgB;QAChB,gBAAgB;QAChB,YAAY;QACZ,SAAS;QACT,cAAc;QACd,UAAU;QACV,eAAe;QACf,kBAAkB;QAClB,kBAAkB;KACV;IACV,QAAQ,EAAE,CAAC,aAAa,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAU;IAChG,SAAS,EAAE;QACT,aAAa;QACb,UAAU;QACV,SAAS;QACT,eAAe;QACf,UAAU;QACV,QAAQ;QACR,UAAU;QACV,WAAW;QACX,mBAAmB;KACX;IACV,aAAa,EAAE,CAAC,aAAa,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,CAAU;IAC5F,QAAQ,EAAE;QACR,aAAa;QACb,SAAS;QACT,YAAY;QACZ,uBAAuB;QACvB,QAAQ;QACR,WAAW;QACX,cAAc;KACN;IACV,QAAQ,EAAE,CAAC,aAAa,EAAE,SAAS,EAAE,gBAAgB,CAAU;IAC/D,MAAM,EAAE,CAAC,aAAa,EAAE,SAAS,EAAE,UAAU,CAAU;CAC/C,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../src/icons.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAE5E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,MAAM,WAAW,IAAI;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAmED;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAuC7D,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,IAAI,EAAE,GAAG,SAAS,CAEnD;AAED,6CAA6C;AAC7C,wBAAgB,aAAa,IAAI,IAAI,EAAE,GAAG,SAAS,CAElD;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,IAAI,EAAE,GAAG,SAAS,CAGjF;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,SAAS,CAG/D;AAED,yEAAyE;AACzE,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,GAAG,SAAS,GAAG,MAAM,CAExE;AAQD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,iBAAiB,GAAG,IAAI,CA4BtF"}
1
+ {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../src/icons.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAIjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAE5E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,MAAM,WAAW,IAAI;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAmED;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CA2C7D,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,IAAI,EAAE,GAAG,SAAS,CAEnD;AAED,6CAA6C;AAC7C,wBAAgB,aAAa,IAAI,IAAI,EAAE,GAAG,SAAS,CAElD;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,IAAI,EAAE,GAAG,SAAS,CAGjF;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,SAAS,CAG/D;AAED,yEAAyE;AACzE,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,GAAG,SAAS,GAAG,MAAM,CAExE;AAQD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,iBAAiB,GAAG,IAAI,CA4BtF"}
package/dist/icons.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { ListPromptsRequestSchema, ListToolsRequestSchema } from "@modelcontextprotocol/sdk/types.js";
2
2
  import { PROMPTS } from "./prompts/index.js";
3
3
  import { isFeatureDisabled } from "./config/env-flags.js";
4
+ import { readString } from "./config/env.js";
4
5
  /**
5
6
  * Mid-grey: legible on both light and dark client themes. A data-URI SVG can't
6
7
  * inherit `currentColor` from the host UI, so a single neutral tone beats
@@ -14,7 +15,7 @@ const ICON_COLOR = "%237d8794";
14
15
  * that doesn't — hence the switch.
15
16
  */
16
17
  function iconsDisabled() {
17
- return isFeatureDisabled(process.env.BOOND_MCP_ICONS);
18
+ return isFeatureDisabled(readString("BOOND_MCP_ICONS"));
18
19
  }
19
20
  /**
20
21
  * Build the data URI for a single-path 16×16 glyph.
@@ -95,6 +96,10 @@ export const DOMAIN_ICONS = {
95
96
  poles: [PIN],
96
97
  reporting: [CHART],
97
98
  "planning-absences": [CALENDAR],
99
+ inactivities: [CLOCK],
100
+ forms: [CHECK],
101
+ groupments: [BRIEFCASE],
102
+ alerts: [BELL],
98
103
  documents: [DOCUMENT],
99
104
  workflows: [LIST],
100
105
  };
package/dist/icons.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"icons.js","sourceRoot":"","sources":["../src/icons.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"icons.js","sourceRoot":"","sources":["../src/icons.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAEtG,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAiD7C;;;;GAIG;AACH,MAAM,UAAU,GAAG,WAAW,CAAC;AAE/B;;;;;GAKG;AACH,SAAS,aAAa;IACpB,OAAO,iBAAiB,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,KAAK,CAAC,IAAY;IACzB,OAAO;QACL,GAAG,EACD,4FAA4F;YAC5F,YAAY,UAAU,oBAAoB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,iBAAiB;KACrF,CAAC;AACJ,CAAC;AAED,qDAAqD;AACrD,MAAM,MAAM,GAAG,KAAK,CAAC,4EAA4E,CAAC,CAAC;AACnG,MAAM,MAAM,GAAG,KAAK,CAClB,0JAA0J,CAC3J,CAAC;AACF,MAAM,QAAQ,GAAG,KAAK,CAAC,uEAAuE,CAAC,CAAC;AAChG,MAAM,MAAM,GAAG,KAAK,CAAC,6DAA6D,CAAC,CAAC;AACpF,MAAM,SAAS,GAAG,KAAK,CAAC,gCAAgC,CAAC,CAAC;AAC1D,MAAM,QAAQ,GAAG,KAAK,CAAC,mDAAmD,CAAC,CAAC;AAC5E,MAAM,QAAQ,GAAG,KAAK,CAAC,iDAAiD,CAAC,CAAC;AAC1E,MAAM,KAAK,GAAG,KAAK,CAAC,kEAAkE,CAAC,CAAC;AACxF,MAAM,KAAK,GAAG,KAAK,CAAC,wDAAwD,CAAC,CAAC;AAC9E,MAAM,IAAI,GAAG,KAAK,CAAC,wEAAwE,CAAC,CAAC;AAC7F,MAAM,GAAG,GAAG,KAAK,CAAC,kDAAkD,CAAC,CAAC;AACtE,MAAM,KAAK,GAAG,KAAK,CAAC,iDAAiD,CAAC,CAAC;AACvE,MAAM,IAAI,GAAG,KAAK,CAAC,sCAAsC,CAAC,CAAC;AAC3D,MAAM,KAAK,GAAG,KAAK,CAAC,+CAA+C,CAAC,CAAC;AACrE,MAAM,GAAG,GAAG,KAAK,CAAC,gCAAgC,CAAC,CAAC;AACpD,MAAM,IAAI,GAAG,KAAK,CAChB,6HAA6H,CAC9H,CAAC;AACF,MAAM,IAAI,GAAG,KAAK,CAAC,8EAA8E,CAAC,CAAC;AACnG,MAAM,IAAI,GAAG,KAAK,CAAC,wBAAwB,CAAC,CAAC;AAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,wEAAwE,CAAC,CAAC;AAC7F,MAAM,GAAG,GAAG,KAAK,CACf,2GAA2G,CAC5G,CAAC;AACF,MAAM,GAAG,GAAG,KAAK,CACf,qHAAqH,CACtH,CAAC;AACF,MAAM,KAAK,GAAG,KAAK,CAAC,uDAAuD,CAAC,CAAC;AAE7E;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAyC;IAChE,UAAU,EAAE,CAAC,MAAM,CAAC;IACpB,SAAS,EAAE,CAAC,MAAM,CAAC;IACnB,QAAQ,EAAE,CAAC,MAAM,CAAC;IAClB,SAAS,EAAE,CAAC,QAAQ,CAAC;IACrB,aAAa,EAAE,CAAC,MAAM,CAAC;IACvB,OAAO,EAAE,CAAC,IAAI,CAAC;IACf,UAAU,EAAE,CAAC,KAAK,CAAC;IACnB,QAAQ,EAAE,CAAC,SAAS,CAAC;IACrB,QAAQ,EAAE,CAAC,QAAQ,CAAC;IACpB,MAAM,EAAE,CAAC,QAAQ,CAAC;IAClB,UAAU,EAAE,CAAC,SAAS,CAAC;IACvB,QAAQ,EAAE,CAAC,KAAK,CAAC;IACjB,QAAQ,EAAE,CAAC,KAAK,CAAC;IACjB,QAAQ,EAAE,CAAC,GAAG,CAAC;IACf,YAAY,EAAE,CAAC,MAAM,CAAC;IACtB,QAAQ,EAAE,CAAC,KAAK,CAAC;IACjB,UAAU,EAAE,CAAC,KAAK,CAAC;IACnB,WAAW,EAAE,CAAC,IAAI,CAAC;IACnB,SAAS,EAAE,CAAC,QAAQ,CAAC;IACrB,SAAS,EAAE,CAAC,IAAI,CAAC;IACjB,mBAAmB,EAAE,CAAC,QAAQ,CAAC;IAC/B,QAAQ,EAAE,CAAC,GAAG,CAAC;IACf,QAAQ,EAAE,CAAC,QAAQ,CAAC;IACpB,gBAAgB,EAAE,CAAC,QAAQ,CAAC;IAC5B,KAAK,EAAE,CAAC,GAAG,CAAC;IACZ,IAAI,EAAE,CAAC,IAAI,CAAC;IACZ,aAAa,EAAE,CAAC,IAAI,CAAC;IACrB,OAAO,EAAE,CAAC,IAAI,CAAC;IACf,SAAS,EAAE,CAAC,KAAK,CAAC;IAClB,KAAK,EAAE,CAAC,GAAG,CAAC;IACZ,SAAS,EAAE,CAAC,QAAQ,CAAC;IACrB,QAAQ,EAAE,CAAC,IAAI,CAAC;IAChB,WAAW,EAAE,CAAC,KAAK,CAAC;IACpB,KAAK,EAAE,CAAC,GAAG,CAAC;IACZ,SAAS,EAAE,CAAC,KAAK,CAAC;IAClB,mBAAmB,EAAE,CAAC,QAAQ,CAAC;IAC/B,YAAY,EAAE,CAAC,KAAK,CAAC;IACrB,KAAK,EAAE,CAAC,KAAK,CAAC;IACd,UAAU,EAAE,CAAC,SAAS,CAAC;IACvB,MAAM,EAAE,CAAC,IAAI,CAAC;IACd,SAAS,EAAE,CAAC,QAAQ,CAAC;IACrB,SAAS,EAAE,CAAC,IAAI,CAAC;CAClB,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,aAAa,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED,6CAA6C;AAC7C,MAAM,UAAU,aAAa;IAC3B,OAAO,aAAa,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAA8B;IAC3D,IAAI,MAAM,KAAK,SAAS,IAAI,aAAa,EAAE;QAAE,OAAO,SAAS,CAAC;IAC9D,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACpD,OAAO,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,aAAa,CAAC,KAAkC;IAC9D,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;AAChE,CAAC;AAID,SAAS,SAAS,CAA6B,KAAQ,EAAE,KAAyB;IAChF,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC;AACjF,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,KAAwB;IAC9E,6EAA6E;IAC7E,0DAA0D;IAC1D,MAAM,UAAU,GAAG,MAAM,CAAC,MAEzB,CAAC;IACF,MAAM,QAAQ,GAAG,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAE/D,UAAU,CAAC,iBAAiB,GAAG,CAAC,MAAe,EAAE,OAAmB,EAAE,EAAE;QACtE,IAAI,MAAM,KAAK,sBAAsB,EAAE,CAAC;YACtC,OAAO,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAe,EAAE,EAAE;gBACnD,MAAM,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,IAAI,CAAC,CAAwC,CAAC;gBAC/E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC;oBAAE,OAAO,MAAM,CAAC;gBACjD,OAAO;oBACL,GAAG,MAAM;oBACT,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBAC5F,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,MAAM,KAAK,wBAAwB,EAAE,CAAC;YACxC,OAAO,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAe,EAAE,EAAE;gBACnD,MAAM,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,IAAI,CAAC,CAA0C,CAAC;gBACjF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC;oBAAE,OAAO,MAAM,CAAC;gBACnD,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACjG,CAAC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,CAAC,CAAC;AACJ,CAAC"}
package/dist/index.js CHANGED
@@ -7,12 +7,7 @@ import { initClient, initClientWithAuth, oauthContextAuth, hasEnvCredentials } f
7
7
  import { createMcpServer, REGISTERED_DOMAINS } from "./server.js";
8
8
  import { runUpdateNotification } from "./services/update-checker.js";
9
9
  import { resolveHttpOptions, startHttpTransport } from "./transports/http.js";
10
- function resolveTransport() {
11
- const raw = (process.env["MCP_TRANSPORT"] ?? "").toLowerCase().trim();
12
- if (raw === "http" || raw === "streamable-http" || raw === "streamablehttp")
13
- return "http";
14
- return "stdio";
15
- }
10
+ import { resolveTransport } from "./config/transport-kind.js";
16
11
  function readLocalPackageMeta() {
17
12
  try {
18
13
  const here = dirname(fileURLToPath(import.meta.url));
@@ -32,16 +27,13 @@ function scheduleUpdateCheck() {
32
27
  return;
33
28
  void runUpdateNotification({ currentVersion: meta.version, packageName: meta.name });
34
29
  }
35
- function resolveStaticAuth() {
36
- const v = process.env["BOOND_HTTP_STATIC_AUTH"];
37
- if (!v || v.startsWith("${"))
38
- return false;
39
- return v.toLowerCase() === "true" || v === "1" || v.toLowerCase() === "yes";
40
- }
41
30
  async function main() {
42
31
  const kind = resolveTransport();
43
32
  if (kind === "http") {
44
- const useStaticAuth = resolveStaticAuth();
33
+ // Read once, here: `BOOND_HTTP_STATIC_AUTH` used to be parsed a second
34
+ // time by a private reader in this file (#242).
35
+ const options = resolveHttpOptions();
36
+ const useStaticAuth = options.staticAuth === true;
45
37
  if (useStaticAuth) {
46
38
  // Static-auth mode: operator provides env credentials; no per-request
47
39
  // OAuth token needed from MCP clients (e.g. Hermes, CI pipelines,
@@ -63,25 +55,45 @@ async function main() {
63
55
  // OAuth2 protected resource: each MCP request must carry its own Bearer.
64
56
  initClientWithAuth(oauthContextAuth);
65
57
  }
66
- const options = resolveHttpOptions();
67
58
  const handle = await startHttpTransport(createMcpServer, options);
68
59
  console.error("🚀 BoondManager MCP Server running (streamable HTTP transport)");
69
60
  console.error(`📡 Endpoint: http://${handle.address.host}:${handle.address.port}${handle.address.path}`);
70
61
  console.error(`🔑 Mode: ${options.stateless ? "stateless" : "stateful"}`);
71
62
  if (useStaticAuth) {
72
- console.error("🔐 Boond auth: JWT statique (credentials env, pas de Bearer requis par le client)");
63
+ console.error(options.apiKey
64
+ ? "🔐 Boond auth: JWT statique (credentials env) — clients authentifiés par MCP_HTTP_API_KEY"
65
+ : "🔐 Boond auth: JWT statique (credentials env) — ⚠️ aucune authentification client (bind loopback ou MCP_HTTP_INSECURE_STATIC_AUTH)");
73
66
  }
74
67
  else {
75
68
  console.error("🔐 Boond auth: OAuth2 (per-request Bearer from MCP client)");
76
69
  }
77
70
  console.error(`📦 Domains: ${REGISTERED_DOMAINS.join(", ")}`);
78
- const shutdown = async (signal) => {
71
+ // Idempotent: a second signal (Docker sends SIGTERM, then the operator
72
+ // hits Ctrl-C; Kubernetes retries) must not call close() on a closed
73
+ // server and leave an unhandled rejection. The forced exit covers a
74
+ // close() that never resolves (issue #237); handle.close() already
75
+ // destroys lingering connections after `shutdownTimeoutMs`, so this only
76
+ // fires if something else wedges.
77
+ let shutdownStarted = false;
78
+ const shutdown = (signal) => {
79
+ if (shutdownStarted) {
80
+ console.error(`🛑 ${signal} received again — shutdown already in progress`);
81
+ return;
82
+ }
83
+ shutdownStarted = true;
79
84
  console.error(`\n🛑 Received ${signal}, shutting down...`);
80
- await handle.close();
81
- process.exit(0);
85
+ const forceExit = setTimeout(() => {
86
+ console.error("⏱️ Shutdown did not complete in time, exiting");
87
+ process.exit(1);
88
+ }, (options.shutdownTimeoutMs ?? 10_000) + 2_000);
89
+ forceExit.unref();
90
+ handle.close().then(() => process.exit(0), (error) => {
91
+ console.error("Shutdown error:", error instanceof Error ? error.message : error);
92
+ process.exit(1);
93
+ });
82
94
  };
83
- process.on("SIGINT", () => void shutdown("SIGINT"));
84
- process.on("SIGTERM", () => void shutdown("SIGTERM"));
95
+ process.on("SIGINT", () => shutdown("SIGINT"));
96
+ process.on("SIGTERM", () => shutdown("SIGTERM"));
85
97
  scheduleUpdateCheck();
86
98
  return;
87
99
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -17,5 +17,5 @@
17
17
  * (`MAX_SERVER_INSTRUCTIONS_LENGTH`) — these instructions compete with the
18
18
  * tool catalogue for the same context window.
19
19
  */
20
- export declare const SERVER_INSTRUCTIONS = "Acc\u00E8s aux donn\u00E9es ERP/CRM BoondManager (API JSON:API) : candidats, ressources (consultants), contacts, soci\u00E9t\u00E9s, opportunit\u00E9s, projets, CRA, factures, achats\u2026\n\n## Nommage des outils\n\n`boond_{domaine}_{op\u00E9ration}` \u2014 op\u00E9rations : `search`, `get`, `create`, `update`, `delete`. Les onglets d'une fiche sont des outils distincts : `boond_{domaine}_{onglet}` (ex. `boond_resources_technical_data`). Workflow habituel : un `search` pour obtenir l'id, puis `get` ou l'onglet voulu pour le d\u00E9tail.\n\n## Les filtres sont propres \u00E0 chaque endpoint\n\nLe sch\u00E9ma de chaque outil est la r\u00E9f\u00E9rence : **ne pas transposer un filtre d'un endpoint \u00E0 un autre**. Les sch\u00E9mas sont `.strict()`, donc un nom inconnu est rejet\u00E9 par une erreur de validation \u2014 mais ce rejet a deux causes possibles : mauvais nom de filtre, **ou** filtre non support\u00E9 par cet endpoint. Dans le second cas, ne pas r\u00E9essayer avec des variantes : reprendre la recherche avec les filtres que le sch\u00E9ma expose (souvent `keywords` seul), ou filtrer c\u00F4t\u00E9 client apr\u00E8s lecture.\n\n## P\u00E9rim\u00E8tre (les 6 recherches principales + `boond_reporting_*`)\n\nSur `resources`, `candidates`, `contacts`, `companies`, `opportunities`, `projects` et le reporting \u2014 pas sur les domaines de r\u00E9f\u00E9rence/administration :\n\n- \u00AB mes donn\u00E9es / mon \u00E9quipe / mon agence \u00BB \u2192 `perimeterDynamic` : `[\"data\"]` (mes donn\u00E9es), `[\"managers\"]` (mon N-1), `[\"agencies\"]`, `[\"poles\"]`, `[\"businessUnits\"]`\n- \u00AB l'\u00E9quipe de X \u00BB \u2192 `perimeterManagers: [<id de X>]`\n- p\u00E9rim\u00E8tre organisationnel explicite \u2192 `perimeterAgencies` / `perimeterPoles` / `perimeterBusinessUnits`, \u00E0 combiner avec `narrowPerimeter: true` pour un ET logique\n\n`mainManagers`, `agencies`, `poles`, `businessUnits` n'existent sur aucun endpoint.\n\n## Cibler une entit\u00E9 li\u00E9e\n\nVocabulaire des pr\u00E9fixes de `keywords` : `CSOC<id>` (soci\u00E9t\u00E9), `CCON<id>` (contact), `CAND<id>` (candidat), `COMP<id>` (ressource), `AO<id>` (opportunit\u00E9), `PRJ<id>` (projet), `MIS<id>` (mission), `PROD<id>` (produit), `CTR<id>` (contrat) \u2014 ex. `keywords: \"CSOC42\"`.\n\n**Chaque endpoint n'en accepte qu'un sous-ensemble, \u00E9num\u00E9r\u00E9 dans la description de l'outil.** `keywords` \u00E9tant du texte libre, un pr\u00E9fixe non support\u00E9 n'est pas rejet\u00E9 : il part en recherche plein texte et renvoie 0 r\u00E9sultat. Une page vide apr\u00E8s un pr\u00E9fixe hors liste ne veut donc pas dire \u00AB aucune entit\u00E9 li\u00E9e \u00BB \u2014 v\u00E9rifier la description de l'outil avant de conclure.\n\n`keywordsType` (recherches `resources`, `candidates`, `contacts`, `companies` uniquement) restreint `keywords` \u00E0 un champ ; les valeurs admises diff\u00E8rent par endpoint (`lastName`/`fullName`/`titleSkills`\u2026 sur les personnes, `name`/`phones`/`emails` sur les soci\u00E9t\u00E9s) \u2014 lire l'\u00E9num\u00E9ration du sch\u00E9ma. Sans lui, la recherche porte sur le champ par d\u00E9faut de l'endpoint (CV ou texte int\u00E9gral).\n\n## \u00C9conomie de contexte\n\n- `pageSize` : d\u00E9faut 30, maximum 500. `page` est plafonn\u00E9 \u00E0 100 : au-del\u00E0, affiner les filtres plut\u00F4t que paginer.\n- `fields: [\"title\", \"updateDate\", \u2026]` remplace le r\u00E9sum\u00E9 d'une ligne par les seuls attributs demand\u00E9s \u2014 \u00E0 utiliser d\u00E8s qu'une page de r\u00E9sultats est large. Disponible sur les outils de recherche, sauf `boond_timesheets_search` et `boond_reporting_*`.\n- Fiche compl\u00E8te d'une entit\u00E9 connue : lire la ressource `boond://{candidate|resource|contact|company|opportunity|project}/<id>` (fiche + informations + comp\u00E9tences en une lecture) plut\u00F4t que d'encha\u00EEner `_get` puis les outils d'onglet.\n\n## \u00C9tats et types\n\nCes filtres attendent des identifiants **entiers** et leur nom est propre \u00E0 l'endpoint : `resourceStates`, `candidateStates`, `opportunityStates`, `projectStates`, `states` + `typesOf` (contacts), `states` seul (soci\u00E9t\u00E9s \u2014 il n'y a pas de filtre de type sur `/companies`). Pour les traduire en libell\u00E9s, lire les ressources `boond://dictionary/*` (states, typeOf, countries, currencies, languages) plut\u00F4t que d'appeler `boond_application_dictionary` : m\u00EAme contenu, sans consommer un appel d'outil.";
20
+ export declare const SERVER_INSTRUCTIONS = "Acc\u00E8s aux donn\u00E9es ERP/CRM BoondManager (API JSON:API) : candidats, ressources (consultants), contacts, soci\u00E9t\u00E9s, opportunit\u00E9s, projets, CRA, factures, achats\u2026\n\n## Nommage des outils\n\n`boond_{domaine}_{op\u00E9ration}` \u2014 op\u00E9rations : `search`, `get`, `create`, `update`, `delete`. Les onglets d'une fiche sont des outils distincts : `boond_{domaine}_{onglet}` (ex. `boond_resources_technical_data`). Workflow habituel : un `search` pour obtenir l'id, puis `get` ou l'onglet voulu pour le d\u00E9tail.\n\n## Les filtres sont propres \u00E0 chaque endpoint\n\nLe sch\u00E9ma de chaque outil est la r\u00E9f\u00E9rence : **ne pas transposer un filtre d'un endpoint \u00E0 un autre**. Les sch\u00E9mas sont `.strict()`, donc un nom inconnu est rejet\u00E9 par une erreur de validation \u2014 mais ce rejet a deux causes possibles : mauvais nom de filtre, **ou** filtre non support\u00E9 par cet endpoint. Dans le second cas, ne pas r\u00E9essayer avec des variantes : reprendre la recherche avec les filtres que le sch\u00E9ma expose (souvent `keywords` seul), ou filtrer c\u00F4t\u00E9 client apr\u00E8s lecture.\n\n## P\u00E9rim\u00E8tre (recherches m\u00E9tier + `boond_reporting_*`)\n\nSur les recherches m\u00E9tier (personnes, soci\u00E9t\u00E9s, opportunit\u00E9s, projets, actions, finance, activit\u00E9) et le reporting \u2014 pas sur les domaines de r\u00E9f\u00E9rence / admin :\n\n- \u00AB mes donn\u00E9es / mon \u00E9quipe / mon agence \u00BB \u2192 `perimeterDynamic` : `[\"data\"]` (mes donn\u00E9es), `[\"managers\"]` (mon N-1), `[\"agencies\"]`, `[\"poles\"]`, `[\"businessUnits\"]`\n- \u00AB l'\u00E9quipe de X \u00BB \u2192 `perimeterManagers: [<id de X>]`\n- p\u00E9rim\u00E8tre organisationnel explicite \u2192 `perimeterAgencies` / `perimeterPoles` / `perimeterBusinessUnits`, \u00E0 combiner avec `narrowPerimeter: true` pour un ET logique\n\n`mainManagers`, `agencies`, `poles`, `businessUnits` n'existent sur aucun endpoint.\n\n## Cibler une entit\u00E9 li\u00E9e\n\nVocabulaire des pr\u00E9fixes de `keywords` : `CSOC<id>` (soci\u00E9t\u00E9), `CCON<id>` (contact), `CAND<id>` (candidat), `COMP<id>` (ressource), `AO<id>` (opportunit\u00E9), `PRJ<id>` (projet), `MIS<id>` (mission), `PROD<id>` (produit), `CTR<id>` (contrat) \u2014 ex. `keywords: \"CSOC42\"`.\n\n**Chaque endpoint n'en accepte qu'un sous-ensemble, \u00E9num\u00E9r\u00E9 dans la description de l'outil.** `keywords` \u00E9tant du texte libre, un pr\u00E9fixe non support\u00E9 n'est pas rejet\u00E9 : il part en recherche plein texte et renvoie 0 r\u00E9sultat. Une page vide apr\u00E8s un pr\u00E9fixe hors liste ne veut donc pas dire \u00AB aucune entit\u00E9 li\u00E9e \u00BB \u2014 v\u00E9rifier la description de l'outil avant de conclure.\n\n`keywordsType` (recherches `resources`, `candidates`, `contacts`, `companies` uniquement) restreint `keywords` \u00E0 un champ ; les valeurs admises diff\u00E8rent par endpoint (`lastName`/`fullName`/`titleSkills`\u2026 sur les personnes, `name`/`phones`/`emails` sur les soci\u00E9t\u00E9s) \u2014 lire l'\u00E9num\u00E9ration du sch\u00E9ma. Sans lui, la recherche porte sur le champ par d\u00E9faut de l'endpoint (CV / texte int\u00E9gral).\n\n## \u00C9conomie de contexte\n\n- `pageSize` : d\u00E9faut 30, maximum 500. `page` est plafonn\u00E9 \u00E0 100 : au-del\u00E0, affiner les filtres plut\u00F4t que paginer.\n- `fields: [\"title\", \"updateDate\", \u2026]` remplace le r\u00E9sum\u00E9 d'une ligne par les seuls attributs demand\u00E9s \u2014 \u00E0 utiliser sur les pages larges. Sur les outils de recherche, sauf `boond_timesheets_search` et `boond_reporting_*`.\n- Fiche compl\u00E8te d'une entit\u00E9 connue : lire la ressource `boond://{candidate|resource|contact|company|opportunity|project}/<id>` (fiche + informations + comp\u00E9tences) plut\u00F4t que `_get` puis les onglets.\n\n## \u00C9tats et types\n\nCes filtres attendent des identifiants **entiers** et leur nom est propre \u00E0 l'endpoint : `resourceStates`, `candidateStates`, `opportunityStates`, `projectStates`, `states` + `typesOf` (contacts), `states` seul (soci\u00E9t\u00E9s \u2014 il n'y a pas de filtre de type sur `/companies`). Pour les traduire en libell\u00E9s, lire `boond://dictionary/*` (`states/<entit\u00E9>`, `typeOf/<entit\u00E9>`, `actions/<entit\u00E9>` = `typeOf` d'action, `sources`, `origins`\u2026) plut\u00F4t que `boond_application_dictionary` : m\u00EAme contenu, sans appel d'outil. `boond://application/current-user/rights` : agences, p\u00F4les, droits par entit\u00E9 (avant d'\u00E9crire ou de filtrer par `perimeter*`).";
21
21
  //# sourceMappingURL=instructions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"instructions.d.ts","sourceRoot":"","sources":["../src/instructions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,mBAAmB,s5IAoCue,CAAC"}
1
+ {"version":3,"file":"instructions.d.ts","sourceRoot":"","sources":["../src/instructions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,mBAAmB,ghJAoCmoB,CAAC"}
@@ -27,9 +27,9 @@ export const SERVER_INSTRUCTIONS = `Accès aux données ERP/CRM BoondManager (AP
27
27
 
28
28
  Le schéma de chaque outil est la référence : **ne pas transposer un filtre d'un endpoint à un autre**. Les schémas sont \`.strict()\`, donc un nom inconnu est rejeté par une erreur de validation — mais ce rejet a deux causes possibles : mauvais nom de filtre, **ou** filtre non supporté par cet endpoint. Dans le second cas, ne pas réessayer avec des variantes : reprendre la recherche avec les filtres que le schéma expose (souvent \`keywords\` seul), ou filtrer côté client après lecture.
29
29
 
30
- ## Périmètre (les 6 recherches principales + \`boond_reporting_*\`)
30
+ ## Périmètre (recherches métier + \`boond_reporting_*\`)
31
31
 
32
- Sur \`resources\`, \`candidates\`, \`contacts\`, \`companies\`, \`opportunities\`, \`projects\` et le reporting — pas sur les domaines de référence/administration :
32
+ Sur les recherches métier (personnes, sociétés, opportunités, projets, actions, finance, activité) et le reporting — pas sur les domaines de référence / admin :
33
33
 
34
34
  - « mes données / mon équipe / mon agence » → \`perimeterDynamic\` : \`["data"]\` (mes données), \`["managers"]\` (mon N-1), \`["agencies"]\`, \`["poles"]\`, \`["businessUnits"]\`
35
35
  - « l'équipe de X » → \`perimeterManagers: [<id de X>]\`
@@ -43,15 +43,15 @@ Vocabulaire des préfixes de \`keywords\` : \`CSOC<id>\` (société), \`CCON<id>
43
43
 
44
44
  **Chaque endpoint n'en accepte qu'un sous-ensemble, énuméré dans la description de l'outil.** \`keywords\` étant du texte libre, un préfixe non supporté n'est pas rejeté : il part en recherche plein texte et renvoie 0 résultat. Une page vide après un préfixe hors liste ne veut donc pas dire « aucune entité liée » — vérifier la description de l'outil avant de conclure.
45
45
 
46
- \`keywordsType\` (recherches \`resources\`, \`candidates\`, \`contacts\`, \`companies\` uniquement) restreint \`keywords\` à un champ ; les valeurs admises diffèrent par endpoint (\`lastName\`/\`fullName\`/\`titleSkills\`… sur les personnes, \`name\`/\`phones\`/\`emails\` sur les sociétés) — lire l'énumération du schéma. Sans lui, la recherche porte sur le champ par défaut de l'endpoint (CV ou texte intégral).
46
+ \`keywordsType\` (recherches \`resources\`, \`candidates\`, \`contacts\`, \`companies\` uniquement) restreint \`keywords\` à un champ ; les valeurs admises diffèrent par endpoint (\`lastName\`/\`fullName\`/\`titleSkills\`… sur les personnes, \`name\`/\`phones\`/\`emails\` sur les sociétés) — lire l'énumération du schéma. Sans lui, la recherche porte sur le champ par défaut de l'endpoint (CV / texte intégral).
47
47
 
48
48
  ## Économie de contexte
49
49
 
50
50
  - \`pageSize\` : défaut 30, maximum 500. \`page\` est plafonné à 100 : au-delà, affiner les filtres plutôt que paginer.
51
- - \`fields: ["title", "updateDate", …]\` remplace le résumé d'une ligne par les seuls attributs demandés — à utiliser dès qu'une page de résultats est large. Disponible sur les outils de recherche, sauf \`boond_timesheets_search\` et \`boond_reporting_*\`.
52
- - Fiche complète d'une entité connue : lire la ressource \`boond://{candidate|resource|contact|company|opportunity|project}/<id>\` (fiche + informations + compétences en une lecture) plutôt que d'enchaîner \`_get\` puis les outils d'onglet.
51
+ - \`fields: ["title", "updateDate", …]\` remplace le résumé d'une ligne par les seuls attributs demandés — à utiliser sur les pages larges. Sur les outils de recherche, sauf \`boond_timesheets_search\` et \`boond_reporting_*\`.
52
+ - Fiche complète d'une entité connue : lire la ressource \`boond://{candidate|resource|contact|company|opportunity|project}/<id>\` (fiche + informations + compétences) plutôt que \`_get\` puis les onglets.
53
53
 
54
54
  ## États et types
55
55
 
56
- Ces filtres attendent des identifiants **entiers** et leur nom est propre à l'endpoint : \`resourceStates\`, \`candidateStates\`, \`opportunityStates\`, \`projectStates\`, \`states\` + \`typesOf\` (contacts), \`states\` seul (sociétés — il n'y a pas de filtre de type sur \`/companies\`). Pour les traduire en libellés, lire les ressources \`boond://dictionary/*\` (states, typeOf, countries, currencies, languages) plutôt que d'appeler \`boond_application_dictionary\` : même contenu, sans consommer un appel d'outil.`;
56
+ Ces filtres attendent des identifiants **entiers** et leur nom est propre à l'endpoint : \`resourceStates\`, \`candidateStates\`, \`opportunityStates\`, \`projectStates\`, \`states\` + \`typesOf\` (contacts), \`states\` seul (sociétés — il n'y a pas de filtre de type sur \`/companies\`). Pour les traduire en libellés, lire \`boond://dictionary/*\` (\`states/<entité>\`, \`typeOf/<entité>\`, \`actions/<entité>\` = \`typeOf\` d'action, \`sources\`, \`origins\`…) plutôt que \`boond_application_dictionary\` : même contenu, sans appel d'outil. \`boond://application/current-user/rights\` : agences, pôles, droits par entité (avant d'écrire ou de filtrer par \`perimeter*\`).`;
57
57
  //# sourceMappingURL=instructions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"instructions.js","sourceRoot":"","sources":["../src/instructions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ugBAoCoe,CAAC"}
1
+ {"version":3,"file":"instructions.js","sourceRoot":"","sources":["../src/instructions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mqBAoCgoB,CAAC"}
@@ -17,9 +17,26 @@ export interface PromptDefinition {
17
17
  * is filtered, the user simply passes a numeric id instead.
18
18
  */
19
19
  domains: readonly DomainName[];
20
- build: (args: Record<string, string | undefined>) => string;
20
+ /**
21
+ * Render the runbook. `now` is the reference date for relative periods
22
+ * ("cette semaine", "D → D+H"): the server resolves them to literal ISO
23
+ * dates (issue #260, `./periods.ts`) instead of leaving the arithmetic to
24
+ * the model. Injected by tests; defaults to the wall clock.
25
+ */
26
+ build: (args: Record<string, string | undefined>, now?: Date) => string;
21
27
  }
28
+ /**
29
+ * Pour chaque prompt, l'utilisateur peut passer soit un ID numérique (rapide,
30
+ * sans ambiguïté), soit un libellé textuel (« Jean Dupont », « ACME »,
31
+ * « Refonte SI »…). Le runbook renvoyé au modèle contient alors une étape
32
+ * préalable qui résout le libellé via le `*_search` adéquat avant de l'utiliser
33
+ * comme filtre. Cela évite à l'utilisateur de chercher l'ID en amont — la
34
+ * majorité des appels passent en une seule formulation naturelle.
35
+ */
36
+ type EntityKind = "resource" | "society" | "opportunity" | "agency" | "project" | "candidate" | "contact";
22
37
  export declare const PROMPTS: PromptDefinition[];
38
+ /** Search the entity by the typed prefix; empty on any failure (no credentials, API down). */
39
+ export declare function completeEntityArgument(kind: EntityKind, value: string): Promise<string[]>;
23
40
  export declare function registerAllPrompts(server: McpServer, policy?: AccessPolicy): void;
24
41
  /** Exposed for tests so we can assert names/coverage without instantiating a server. */
25
42
  export declare const REGISTERED_PROMPTS: {
@@ -28,4 +45,5 @@ export declare const REGISTERED_PROMPTS: {
28
45
  description: string;
29
46
  argKeys: string[];
30
47
  }[];
48
+ export {};
31
49
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAsBhF,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,CAAC,CAAC,WAAW,CAAC;IAC1B;;;;;;;;OAQG;IACH,OAAO,EAAE,SAAS,UAAU,EAAE,CAAC;IAC/B,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,KAAK,MAAM,CAAC;CAC7D;AA+DD,eAAO,MAAM,OAAO,EAAE,gBAAgB,EAirBrC,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,IAAI,CAejF;AAED,wFAAwF;AACxF,eAAO,MAAM,kBAAkB;;;;;GAK5B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAwBhF,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,CAAC,CAAC,WAAW,CAAC;IAC1B;;;;;;;;OAQG;IACH,OAAO,EAAE,SAAS,UAAU,EAAE,CAAC;IAC/B;;;;;OAKG;IACH,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,KAAK,MAAM,CAAC;CACzE;AAaD;;;;;;;GAOG;AACH,KAAK,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,aAAa,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;AAwF1G,eAAO,MAAM,OAAO,EAAE,gBAAgB,EAqsCrC,CAAC;AA+CF,8FAA8F;AAC9F,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAc/F;AASD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,IAAI,CAejF;AAED,wFAAwF;AACxF,eAAO,MAAM,kBAAkB;;;;;GAK5B,CAAC"}