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.
- package/README.md +57 -4
- package/dist/config/access-policy.d.ts.map +1 -1
- package/dist/config/access-policy.js +6 -18
- package/dist/config/access-policy.js.map +1 -1
- package/dist/config/dictionary-overrides.d.ts.map +1 -1
- package/dist/config/dictionary-overrides.js +2 -12
- package/dist/config/dictionary-overrides.js.map +1 -1
- package/dist/config/env.d.ts +63 -0
- package/dist/config/env.d.ts.map +1 -0
- package/dist/config/env.js +116 -0
- package/dist/config/env.js.map +1 -0
- package/dist/config/profiles.d.ts +22 -8
- package/dist/config/profiles.d.ts.map +1 -1
- package/dist/config/profiles.js +48 -4
- package/dist/config/profiles.js.map +1 -1
- package/dist/config/transport-kind.d.ts +8 -0
- package/dist/config/transport-kind.d.ts.map +1 -0
- package/dist/config/transport-kind.js +13 -0
- package/dist/config/transport-kind.js.map +1 -0
- package/dist/constants.d.ts +20 -2
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +32 -1
- package/dist/constants.js.map +1 -1
- package/dist/icons.d.ts.map +1 -1
- package/dist/icons.js +6 -1
- package/dist/icons.js.map +1 -1
- package/dist/index.js +32 -20
- package/dist/index.js.map +1 -1
- package/dist/instructions.d.ts +1 -1
- package/dist/instructions.d.ts.map +1 -1
- package/dist/instructions.js +6 -6
- package/dist/instructions.js.map +1 -1
- package/dist/prompts/index.d.ts +19 -1
- package/dist/prompts/index.d.ts.map +1 -1
- package/dist/prompts/index.js +495 -25
- package/dist/prompts/index.js.map +1 -1
- package/dist/prompts/periods.d.ts +45 -0
- package/dist/prompts/periods.d.ts.map +1 -0
- package/dist/prompts/periods.js +154 -0
- package/dist/prompts/periods.js.map +1 -0
- package/dist/resources/index.d.ts +14 -0
- package/dist/resources/index.d.ts.map +1 -1
- package/dist/resources/index.js +285 -0
- package/dist/resources/index.js.map +1 -1
- package/dist/resources/templates.d.ts +1 -1
- package/dist/resources/templates.d.ts.map +1 -1
- package/dist/resources/templates.js +2 -0
- package/dist/resources/templates.js.map +1 -1
- package/dist/schema-dialect.js.map +1 -1
- package/dist/schemas/filter-aliases.d.ts +1 -1
- package/dist/schemas/filter-aliases.d.ts.map +1 -1
- package/dist/schemas/filter-aliases.js +101 -2
- package/dist/schemas/filter-aliases.js.map +1 -1
- package/dist/schemas/index.d.ts +1045 -163
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +979 -330
- package/dist/schemas/index.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +10 -3
- package/dist/server.js.map +1 -1
- package/dist/services/boond-client.d.ts +29 -213
- package/dist/services/boond-client.d.ts.map +1 -1
- package/dist/services/boond-client.js +29 -1168
- package/dist/services/boond-client.js.map +1 -1
- package/dist/services/dictionary.d.ts +27 -3
- package/dist/services/dictionary.d.ts.map +1 -1
- package/dist/services/dictionary.js +60 -23
- package/dist/services/dictionary.js.map +1 -1
- package/dist/services/document-text.d.ts +32 -0
- package/dist/services/document-text.d.ts.map +1 -0
- package/dist/services/document-text.js +120 -0
- package/dist/services/document-text.js.map +1 -0
- package/dist/services/format/detail.d.ts +16 -0
- package/dist/services/format/detail.d.ts.map +1 -0
- package/dist/services/format/detail.js +36 -0
- package/dist/services/format/detail.js.map +1 -0
- package/dist/services/format/html.d.ts +19 -0
- package/dist/services/format/html.d.ts.map +1 -0
- package/dist/services/format/html.js +87 -0
- package/dist/services/format/html.js.map +1 -0
- package/dist/services/format/list.d.ts +3 -0
- package/dist/services/format/list.d.ts.map +1 -0
- package/dist/services/format/list.js +44 -0
- package/dist/services/format/list.js.map +1 -0
- package/dist/services/format/summary.d.ts +23 -0
- package/dist/services/format/summary.d.ts.map +1 -0
- package/dist/services/format/summary.js +194 -0
- package/dist/services/format/summary.js.map +1 -0
- package/dist/services/format/tab.d.ts +9 -0
- package/dist/services/format/tab.d.ts.map +1 -0
- package/dist/services/format/tab.js +32 -0
- package/dist/services/format/tab.js.map +1 -0
- package/dist/services/http/auth.d.ts +44 -0
- package/dist/services/http/auth.d.ts.map +1 -0
- package/dist/services/http/auth.js +146 -0
- package/dist/services/http/auth.js.map +1 -0
- package/dist/services/http/download.d.ts +60 -0
- package/dist/services/http/download.d.ts.map +1 -0
- package/dist/services/http/download.js +160 -0
- package/dist/services/http/download.js.map +1 -0
- package/dist/services/http/errors.d.ts +45 -0
- package/dist/services/http/errors.d.ts.map +1 -0
- package/dist/services/http/errors.js +188 -0
- package/dist/services/http/errors.js.map +1 -0
- package/dist/services/http/rate-limit.d.ts +40 -0
- package/dist/services/http/rate-limit.d.ts.map +1 -0
- package/dist/services/http/rate-limit.js +92 -0
- package/dist/services/http/rate-limit.js.map +1 -0
- package/dist/services/http/retry.d.ts +46 -0
- package/dist/services/http/retry.d.ts.map +1 -0
- package/dist/services/http/retry.js +101 -0
- package/dist/services/http/retry.js.map +1 -0
- package/dist/services/http/transport.d.ts +85 -0
- package/dist/services/http/transport.d.ts.map +1 -0
- package/dist/services/http/transport.js +283 -0
- package/dist/services/http/transport.js.map +1 -0
- package/dist/services/logger.d.ts +53 -2
- package/dist/services/logger.d.ts.map +1 -1
- package/dist/services/logger.js +82 -21
- package/dist/services/logger.js.map +1 -1
- package/dist/services/oauth.d.ts +12 -0
- package/dist/services/oauth.d.ts.map +1 -1
- package/dist/services/oauth.js +21 -8
- package/dist/services/oauth.js.map +1 -1
- package/dist/services/rate-limiter.d.ts +9 -2
- package/dist/services/rate-limiter.d.ts.map +1 -1
- package/dist/services/rate-limiter.js +18 -6
- package/dist/services/rate-limiter.js.map +1 -1
- package/dist/services/request-context.d.ts +47 -0
- package/dist/services/request-context.d.ts.map +1 -0
- package/dist/services/request-context.js +112 -0
- package/dist/services/request-context.js.map +1 -0
- package/dist/services/search.d.ts +26 -0
- package/dist/services/search.d.ts.map +1 -0
- package/dist/services/search.js +98 -0
- package/dist/services/search.js.map +1 -0
- package/dist/services/update-checker.d.ts.map +1 -1
- package/dist/services/update-checker.js +15 -8
- package/dist/services/update-checker.js.map +1 -1
- package/dist/services/upload-source.d.ts +31 -0
- package/dist/services/upload-source.d.ts.map +1 -0
- package/dist/services/upload-source.js +180 -0
- package/dist/services/upload-source.js.map +1 -0
- package/dist/tools/absences.d.ts +9 -0
- package/dist/tools/absences.d.ts.map +1 -1
- package/dist/tools/absences.js +65 -20
- package/dist/tools/absences.js.map +1 -1
- package/dist/tools/actions.d.ts.map +1 -1
- package/dist/tools/actions.js +11 -27
- package/dist/tools/actions.js.map +1 -1
- package/dist/tools/advantages.d.ts +2 -0
- package/dist/tools/advantages.d.ts.map +1 -1
- package/dist/tools/advantages.js +66 -13
- package/dist/tools/advantages.js.map +1 -1
- package/dist/tools/alerts.d.ts +18 -0
- package/dist/tools/alerts.d.ts.map +1 -0
- package/dist/tools/alerts.js +82 -0
- package/dist/tools/alerts.js.map +1 -0
- package/dist/tools/application.d.ts +2 -1
- package/dist/tools/application.d.ts.map +1 -1
- package/dist/tools/application.js +9 -3
- package/dist/tools/application.js.map +1 -1
- package/dist/tools/candidates.d.ts +7 -0
- package/dist/tools/candidates.d.ts.map +1 -1
- package/dist/tools/candidates.js +96 -1
- package/dist/tools/candidates.js.map +1 -1
- package/dist/tools/contacts.d.ts.map +1 -1
- package/dist/tools/contacts.js +3 -7
- package/dist/tools/contacts.js.map +1 -1
- package/dist/tools/contracts.d.ts +22 -0
- package/dist/tools/contracts.d.ts.map +1 -1
- package/dist/tools/contracts.js +185 -52
- package/dist/tools/contracts.js.map +1 -1
- package/dist/tools/crud-factory.d.ts +33 -2
- package/dist/tools/crud-factory.d.ts.map +1 -1
- package/dist/tools/crud-factory.js +45 -17
- package/dist/tools/crud-factory.js.map +1 -1
- package/dist/tools/deliveries.d.ts +3 -0
- package/dist/tools/deliveries.d.ts.map +1 -1
- package/dist/tools/deliveries.js +50 -94
- package/dist/tools/deliveries.js.map +1 -1
- package/dist/tools/description-builders.d.ts +0 -1
- package/dist/tools/description-builders.d.ts.map +1 -1
- package/dist/tools/description-builders.js +47 -4
- package/dist/tools/description-builders.js.map +1 -1
- package/dist/tools/documents.d.ts.map +1 -1
- package/dist/tools/documents.js +113 -27
- package/dist/tools/documents.js.map +1 -1
- package/dist/tools/expenses.d.ts.map +1 -1
- package/dist/tools/expenses.js +2 -11
- package/dist/tools/expenses.js.map +1 -1
- package/dist/tools/find.d.ts +61 -0
- package/dist/tools/find.d.ts.map +1 -0
- package/dist/tools/find.js +221 -0
- package/dist/tools/find.js.map +1 -0
- package/dist/tools/flags.d.ts +5 -0
- package/dist/tools/flags.d.ts.map +1 -1
- package/dist/tools/flags.js +116 -1
- package/dist/tools/flags.js.map +1 -1
- package/dist/tools/forms.d.ts +5 -0
- package/dist/tools/forms.d.ts.map +1 -0
- package/dist/tools/forms.js +64 -0
- package/dist/tools/forms.js.map +1 -0
- package/dist/tools/groupments.d.ts +5 -0
- package/dist/tools/groupments.d.ts.map +1 -0
- package/dist/tools/groupments.js +68 -0
- package/dist/tools/groupments.js.map +1 -0
- package/dist/tools/inactivities.d.ts +5 -0
- package/dist/tools/inactivities.d.ts.map +1 -0
- package/dist/tools/inactivities.js +59 -0
- package/dist/tools/inactivities.js.map +1 -0
- package/dist/tools/index.d.ts +4 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +4 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/invoices.d.ts.map +1 -1
- package/dist/tools/invoices.js +27 -2
- package/dist/tools/invoices.js.map +1 -1
- package/dist/tools/linked-entity-filters.d.ts +48 -0
- package/dist/tools/linked-entity-filters.d.ts.map +1 -0
- package/dist/tools/linked-entity-filters.js +64 -0
- package/dist/tools/linked-entity-filters.js.map +1 -0
- package/dist/tools/notifications.d.ts.map +1 -1
- package/dist/tools/notifications.js +0 -5
- package/dist/tools/notifications.js.map +1 -1
- package/dist/tools/orders.d.ts.map +1 -1
- package/dist/tools/orders.js +33 -4
- package/dist/tools/orders.js.map +1 -1
- package/dist/tools/parameter-disclosure.js.map +1 -1
- package/dist/tools/payments.d.ts +3 -0
- package/dist/tools/payments.d.ts.map +1 -1
- package/dist/tools/payments.js +43 -109
- package/dist/tools/payments.js.map +1 -1
- package/dist/tools/positionings.d.ts.map +1 -1
- package/dist/tools/positionings.js +9 -39
- package/dist/tools/positionings.js.map +1 -1
- package/dist/tools/projects.d.ts.map +1 -1
- package/dist/tools/projects.js +5 -12
- package/dist/tools/projects.js.map +1 -1
- package/dist/tools/provider-invoices.d.ts +2 -0
- package/dist/tools/provider-invoices.d.ts.map +1 -1
- package/dist/tools/provider-invoices.js +30 -111
- package/dist/tools/provider-invoices.js.map +1 -1
- package/dist/tools/purchases.d.ts +2 -0
- package/dist/tools/purchases.d.ts.map +1 -1
- package/dist/tools/purchases.js +50 -104
- package/dist/tools/purchases.js.map +1 -1
- package/dist/tools/registration-decorators.d.ts +28 -0
- package/dist/tools/registration-decorators.d.ts.map +1 -1
- package/dist/tools/registration-decorators.js +107 -0
- package/dist/tools/registration-decorators.js.map +1 -1
- package/dist/tools/resources.d.ts.map +1 -1
- package/dist/tools/resources.js +27 -5
- package/dist/tools/resources.js.map +1 -1
- package/dist/tools/rights.d.ts +101 -0
- package/dist/tools/rights.d.ts.map +1 -0
- package/dist/tools/rights.js +75 -0
- package/dist/tools/rights.js.map +1 -0
- package/dist/tools/tab-tools.js +3 -3
- package/dist/tools/tab-tools.js.map +1 -1
- package/dist/tools/timesheets.d.ts +29 -0
- package/dist/tools/timesheets.d.ts.map +1 -1
- package/dist/tools/timesheets.js +196 -126
- package/dist/tools/timesheets.js.map +1 -1
- package/dist/tools/todolists.d.ts +2 -0
- package/dist/tools/todolists.d.ts.map +1 -1
- package/dist/tools/todolists.js +64 -1
- package/dist/tools/todolists.js.map +1 -1
- package/dist/tools/usage-guidance.d.ts.map +1 -1
- package/dist/tools/usage-guidance.js +12 -3
- package/dist/tools/usage-guidance.js.map +1 -1
- package/dist/tools/validations.d.ts +9 -0
- package/dist/tools/validations.d.ts.map +1 -1
- package/dist/tools/validations.js +86 -9
- package/dist/tools/validations.js.map +1 -1
- package/dist/tools/workflows.js +1 -1
- package/dist/tools/workflows.js.map +1 -1
- package/dist/transports/http.d.ts +116 -0
- package/dist/transports/http.d.ts.map +1 -1
- package/dist/transports/http.js +422 -92
- package/dist/transports/http.js.map +1 -1
- package/dist/types.d.ts +3 -3
- package/dist/types.d.ts.map +1 -1
- package/manifest.json +2 -2
- package/package.json +6 -5
package/dist/tools/contracts.js
CHANGED
|
@@ -1,74 +1,207 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { apiRequest,
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
1
|
+
import { ContractCreateSchema, ContractSearchSchema, ContractUpdateSchema } from "../schemas/index.js";
|
|
2
|
+
import { apiRequest, apiSearch, buildSearchQuery, formatListResponse } from "../services/boond-client.js";
|
|
3
|
+
import { renderAttributeValue } from "../services/format/summary.js";
|
|
4
|
+
import { progressReporterFrom } from "../services/progress.js";
|
|
5
|
+
import { buildJsonApiBody, buildListStructured, registerCreateTool, registerGetTool, registerUpdateTool, SearchOutputSchema, } from "./crud-factory.js";
|
|
6
|
+
import { composeDescription } from "./description-builders.js";
|
|
7
|
+
const OPTS = { entityName: "contrat", entityNamePlural: "contrats", apiPath: "/contracts", prefix: "boond_contracts" };
|
|
8
|
+
/**
|
|
9
|
+
* `/contracts` payload: the resource id becomes the `resource` relationship,
|
|
10
|
+
* `note` the `informationComments` attribute (`models.contract` has no `note`),
|
|
11
|
+
* and `id` — present on update — lands on `data.id`.
|
|
12
|
+
*/
|
|
13
|
+
export function buildContractBody(params) {
|
|
14
|
+
const { id, resourceId, note, ...attrs } = params;
|
|
15
|
+
return buildJsonApiBody("contract", { ...attrs, ...(note !== undefined ? { informationComments: note } : {}) }, typeof id === "string" ? id : undefined, {
|
|
16
|
+
resource: resourceId ? { id: String(resourceId), type: "resource" } : undefined,
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* The contracts of one resource, as `/resources/{id}/administrative` includes
|
|
21
|
+
* them (issue #253). Neither `GET /contracts` (WAF 403 page — the RAML only
|
|
22
|
+
* documents `post`) nor `GET /resources/{id}/contracts` (404) exists, probed
|
|
23
|
+
* live on 2026-09-26: the administrative tab is the only read path, and its
|
|
24
|
+
* `included` carries the full contract objects. Each contract is tagged with
|
|
25
|
+
* the resource it belongs to so a list spanning several resources stays
|
|
26
|
+
* readable.
|
|
27
|
+
*/
|
|
28
|
+
export async function contractsOfResource(resourceId, label) {
|
|
29
|
+
const response = await apiRequest(`/resources/${resourceId}/administrative`);
|
|
30
|
+
const included = Array.isArray(response.included) ? response.included : [];
|
|
31
|
+
return included
|
|
32
|
+
.filter((item) => item.type === "contract")
|
|
33
|
+
.map((contract) => ({
|
|
34
|
+
...contract,
|
|
35
|
+
attributes: { ...contract.attributes, resource: label ? `${label} (#${resourceId})` : `#${resourceId}` },
|
|
36
|
+
}));
|
|
37
|
+
}
|
|
38
|
+
function dateOf(value) {
|
|
39
|
+
return typeof value === "string" && /^\d{4}-\d{2}-\d{2}/.test(value) ? value.slice(0, 10) : undefined;
|
|
40
|
+
}
|
|
41
|
+
/** A contract with no `endDate` is open-ended: it runs until further notice. */
|
|
42
|
+
function overlaps(start, end, from, to) {
|
|
43
|
+
if (to !== undefined && start !== undefined && start > to)
|
|
44
|
+
return false;
|
|
45
|
+
if (from !== undefined && end !== undefined && end < from)
|
|
46
|
+
return false;
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
function within(date, from, to) {
|
|
50
|
+
if (date === undefined)
|
|
51
|
+
return false;
|
|
52
|
+
if (from !== undefined && date < from)
|
|
53
|
+
return false;
|
|
54
|
+
if (to !== undefined && date > to)
|
|
55
|
+
return false;
|
|
56
|
+
return true;
|
|
57
|
+
}
|
|
58
|
+
/** Server-side contract filters of the composed search (type, then period window). */
|
|
59
|
+
export function filterContracts(contracts, filters) {
|
|
60
|
+
const { contractTypes, period, startDate: from, endDate: to } = filters;
|
|
61
|
+
return contracts.filter((contract) => {
|
|
62
|
+
const a = contract.attributes;
|
|
63
|
+
if (contractTypes && contractTypes.length > 0 && !contractTypes.includes(Number(a.typeOf)))
|
|
64
|
+
return false;
|
|
65
|
+
if (!period)
|
|
66
|
+
return true;
|
|
67
|
+
const start = dateOf(a.startDate);
|
|
68
|
+
const end = dateOf(a.endDate);
|
|
69
|
+
switch (period) {
|
|
70
|
+
case "running":
|
|
71
|
+
return overlaps(start, end, from, to);
|
|
72
|
+
case "ending":
|
|
73
|
+
return within(end, from, to);
|
|
74
|
+
case "starting":
|
|
75
|
+
return within(start, from, to);
|
|
76
|
+
case "probationEnding":
|
|
77
|
+
return within(dateOf(a.probationEndDate), from, to) || within(dateOf(a.renewalProbationEndDate), from, to);
|
|
78
|
+
default:
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
/** One line per contract: who, which type, which dates, where the probation stands. */
|
|
84
|
+
export function contractSummary(contract) {
|
|
85
|
+
const a = contract.attributes;
|
|
86
|
+
const parts = [`[contract #${contract.id}]`];
|
|
87
|
+
if (a.resource !== undefined)
|
|
88
|
+
parts.push(`Ressource: ${renderAttributeValue(a.resource)}`);
|
|
89
|
+
if (a.typeOf !== undefined)
|
|
90
|
+
parts.push(`Type: ${renderAttributeValue(a.typeOf)}`);
|
|
91
|
+
const start = dateOf(a.startDate);
|
|
92
|
+
const end = dateOf(a.endDate);
|
|
93
|
+
if (start || end)
|
|
94
|
+
parts.push(`${start ?? "?"} → ${end ?? "en cours"}`);
|
|
95
|
+
const probation = dateOf(a.renewalProbationEndDate) ?? dateOf(a.probationEndDate);
|
|
96
|
+
if (probation)
|
|
97
|
+
parts.push(`Fin PE: ${probation}${a.probationState !== undefined ? ` (état ${renderAttributeValue(a.probationState)})` : ""}`);
|
|
98
|
+
if (a.endReason !== undefined && a.endReason !== null && a.endReason !== "") {
|
|
99
|
+
parts.push(`Motif fin: ${renderAttributeValue(a.endReason)}`);
|
|
100
|
+
}
|
|
101
|
+
return parts.join(" | ");
|
|
102
|
+
}
|
|
103
|
+
function resourceLabel(resource) {
|
|
104
|
+
const a = resource.attributes;
|
|
105
|
+
const name = [a.firstName, a.lastName].filter((v) => typeof v === "string" && v.length > 0).join(" ");
|
|
106
|
+
return name.length > 0 ? name : `ressource ${resource.id}`;
|
|
107
|
+
}
|
|
108
|
+
/** Bounded fan-out: a handful of administrative reads in flight, never the whole page at once. */
|
|
109
|
+
async function mapWithConcurrency(items, limit, fn) {
|
|
110
|
+
const results = new Array(items.length);
|
|
111
|
+
let next = 0;
|
|
112
|
+
async function worker() {
|
|
113
|
+
while (next < items.length) {
|
|
114
|
+
const index = next++;
|
|
115
|
+
const item = items[index];
|
|
116
|
+
if (item === undefined)
|
|
117
|
+
break;
|
|
118
|
+
results[index] = await fn(item, index);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
await Promise.all(Array.from({ length: Math.min(limit, items.length) }, () => worker()));
|
|
122
|
+
return results;
|
|
123
|
+
}
|
|
124
|
+
const ADMINISTRATIVE_CONCURRENCY = 4;
|
|
15
125
|
export function registerContractTools(server) {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
126
|
+
// Composed search (issue #253): BoondManager has no contract list endpoint.
|
|
127
|
+
server.registerTool("boond_contracts_search", {
|
|
128
|
+
title: "Rechercher des contrats de travail",
|
|
129
|
+
description: composeDescription({
|
|
130
|
+
purpose: "Recherche les contrats de travail (CDI, CDD, freelance…) des ressources d'un périmètre, avec filtres de type et de période (fins de contrat, périodes d'essai qui expirent).",
|
|
131
|
+
when: "pour « contrats qui se terminent ce mois », « périodes d'essai qui expirent », « CDD à renouveler », ou les contrats d'une ressource.",
|
|
132
|
+
instead: "`boond_resources_contracts` pour les contrats d'une seule ressource connue, `boond_contracts_get` pour la fiche complète d'un contrat.",
|
|
133
|
+
behaviour: [
|
|
134
|
+
"Recherche **composée** : BoondManager n'a pas de liste de contrats (`GET /contracts` n'existe pas). L'outil sélectionne les ressources (`keywords`, `perimeter*`, `resourceStates` ; `page` / `pageSize` portent sur les ressources parcourues) puis lit l'onglet administratif de chacune : une requête par ressource — préférer des pages modestes —, progression notifiée.",
|
|
135
|
+
"`contractTypes` et `period` + `startDate` / `endDate` sont appliqués côté serveur sur les contrats lus ; un contrat sans `endDate` compte comme en cours.",
|
|
136
|
+
"`resourceId` court-circuite la sélection : seuls les contrats de cette ressource sont lus.",
|
|
137
|
+
],
|
|
138
|
+
returns: "une ligne par contrat (ressource, type, dates, fin de période d'essai, motif de fin) et `structuredContent.items[]` ; `total` = nombre de contrats retenus.",
|
|
21
139
|
}),
|
|
22
|
-
inputSchema:
|
|
140
|
+
inputSchema: ContractSearchSchema,
|
|
141
|
+
outputSchema: SearchOutputSchema,
|
|
23
142
|
annotations: {
|
|
24
143
|
readOnlyHint: true,
|
|
25
144
|
destructiveHint: false,
|
|
26
145
|
idempotentHint: true,
|
|
27
|
-
openWorldHint:
|
|
146
|
+
openWorldHint: true,
|
|
28
147
|
},
|
|
29
|
-
}, async (params) => {
|
|
30
|
-
const
|
|
148
|
+
}, async (params, extra) => {
|
|
149
|
+
const p = params;
|
|
150
|
+
const report = progressReporterFrom(extra);
|
|
151
|
+
let targets;
|
|
152
|
+
if (p.resourceId) {
|
|
153
|
+
targets = [{ id: p.resourceId }];
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
const { resourceId: _skip, contractTypes: _t, period: _p, startDate: _s, endDate: _e, fields: _f, ...resourceParams } = p;
|
|
157
|
+
const resources = await apiSearch("/resources", buildSearchQuery(resourceParams), report);
|
|
158
|
+
const rows = Array.isArray(resources.data) ? resources.data : resources.data ? [resources.data] : [];
|
|
159
|
+
targets = rows.map((row) => ({ id: row.id, label: resourceLabel(row) }));
|
|
160
|
+
}
|
|
161
|
+
const total = targets.length;
|
|
162
|
+
let done = 0;
|
|
163
|
+
const perResource = await mapWithConcurrency(targets, ADMINISTRATIVE_CONCURRENCY, async (target) => {
|
|
164
|
+
const contracts = await contractsOfResource(target.id, target.label);
|
|
165
|
+
done += 1;
|
|
166
|
+
report(done, total, `${done}/${total} ressource(s) lue(s)`);
|
|
167
|
+
return contracts;
|
|
168
|
+
});
|
|
169
|
+
const contracts = filterContracts(perResource.flat(), p);
|
|
170
|
+
const response = { data: contracts, meta: { totals: { rows: contracts.length } } };
|
|
31
171
|
return {
|
|
32
|
-
content: [{ type: "text", text:
|
|
172
|
+
content: [{ type: "text", text: formatListResponse(response, "contrat", p.fields, contractSummary) }],
|
|
173
|
+
structuredContent: buildListStructured(response, p.fields, contractSummary),
|
|
33
174
|
};
|
|
34
175
|
});
|
|
35
|
-
server
|
|
176
|
+
registerGetTool(server, OPTS, {
|
|
177
|
+
withTab: false,
|
|
178
|
+
title: "Détails d'un contrat",
|
|
179
|
+
description: composeDescription({
|
|
180
|
+
purpose: "Récupère la fiche complète d'un contrat de travail par son ID numérique.",
|
|
181
|
+
when: "après `boond_contracts_search` ou `boond_resources_contracts`, qui listent les contrats avec leurs IDs.",
|
|
182
|
+
instead: "`boond_resources_contracts` pour tous les contrats d'une ressource en un appel — cet outil n'accepte pas de nom.",
|
|
183
|
+
behaviour: [
|
|
184
|
+
"Un ID inconnu remonte l'erreur BoondManager telle quelle — l'ID doit venir d'une liste de contrats, jamais d'une supposition.",
|
|
185
|
+
],
|
|
186
|
+
returns: "JSON du contrat (attributs + relations) tel que renvoyé par l'API. Lecture seule.",
|
|
187
|
+
}),
|
|
188
|
+
});
|
|
189
|
+
registerCreateTool(server, OPTS, ContractCreateSchema, buildContractBody, {
|
|
36
190
|
title: "Créer un contrat",
|
|
37
191
|
description: composeDescription({
|
|
38
192
|
purpose: "Crée un contrat de travail rattaché à une ressource.",
|
|
39
193
|
when: "pour enregistrer un nouveau contrat (embauche, avenant, renouvellement).",
|
|
40
|
-
instead: "`
|
|
194
|
+
instead: "`boond_resources_contracts` d'abord, pour vérifier qu'un contrat couvrant la même période n'existe pas déjà.",
|
|
41
195
|
behaviour: [
|
|
42
196
|
"Écriture non idempotente : deux appels identiques créent deux contrats.",
|
|
43
|
-
"
|
|
197
|
+
"`typeOf` est un ID entier de `boond://dictionary/typeOf/contracts`, pas un libellé.",
|
|
44
198
|
],
|
|
45
199
|
returns: "confirmation et fiche du contrat créé, avec son ID dans `structuredContent.id`.",
|
|
46
200
|
}),
|
|
47
|
-
inputSchema: ContractCreateSchema,
|
|
48
|
-
annotations: {
|
|
49
|
-
readOnlyHint: false,
|
|
50
|
-
destructiveHint: false,
|
|
51
|
-
idempotentHint: false,
|
|
52
|
-
openWorldHint: false,
|
|
53
|
-
},
|
|
54
|
-
}, async (params) => {
|
|
55
|
-
const { resourceId, ...attrs } = params;
|
|
56
|
-
const body = buildJsonApiBody("contract", attrs);
|
|
57
|
-
if (resourceId) {
|
|
58
|
-
body.data.relationships = {
|
|
59
|
-
resource: { data: { id: resourceId, type: "resource" } },
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
const response = await apiRequest("/contracts", "POST", body);
|
|
63
|
-
const entity = Array.isArray(response.data) ? response.data[0] : response.data;
|
|
64
|
-
return {
|
|
65
|
-
content: [
|
|
66
|
-
{
|
|
67
|
-
type: "text",
|
|
68
|
-
text: `✅ Contrat créé avec succès.\nID: ${entity?.id}\n\n${formatDetailResponse(response)}`,
|
|
69
|
-
},
|
|
70
|
-
],
|
|
71
|
-
};
|
|
72
201
|
});
|
|
202
|
+
// PUT /contracts/{id}: attributes only (issue #252). The RAML has no
|
|
203
|
+
// information.raml for contracts, so the base resource is the PUT target —
|
|
204
|
+
// the pattern /actions/{id} and /times-reports/{id} follow.
|
|
205
|
+
registerUpdateTool(server, OPTS, ContractUpdateSchema, buildContractBody, { method: "PUT" });
|
|
73
206
|
}
|
|
74
207
|
//# sourceMappingURL=contracts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../src/tools/contracts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../src/tools/contracts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
2
|
import { z } from "zod";
|
|
3
|
-
import type { JsonApiResponse } from "../types.js";
|
|
3
|
+
import type { JsonApiResponse, JsonApiResource } from "../types.js";
|
|
4
4
|
interface CrudToolOptions {
|
|
5
5
|
entityName: string;
|
|
6
6
|
entityNamePlural: string;
|
|
@@ -11,6 +11,12 @@ interface SearchToolOverrides {
|
|
|
11
11
|
schema?: z.ZodType;
|
|
12
12
|
title?: string;
|
|
13
13
|
description?: string;
|
|
14
|
+
/**
|
|
15
|
+
* Bespoke one-line summary for rows the generic summary renders poorly
|
|
16
|
+
* (`/times-reports` rows have no name / title — `timesheetSummary`). Used
|
|
17
|
+
* for the text output and for `structuredContent.items[].summary` alike.
|
|
18
|
+
*/
|
|
19
|
+
summaryFn?: (entity: JsonApiResource) => string;
|
|
14
20
|
}
|
|
15
21
|
export declare const SearchOutputSchema: z.ZodObject<{
|
|
16
22
|
total: z.ZodOptional<z.ZodNumber>;
|
|
@@ -32,7 +38,32 @@ export declare const DeleteOutputSchema: z.ZodObject<{
|
|
|
32
38
|
reason: z.ZodOptional<z.ZodString>;
|
|
33
39
|
}, z.core.$strip>;
|
|
34
40
|
/** Build the compact structured payload for a search result page. Exported for unit testing. */
|
|
35
|
-
export declare function buildListStructured(response: JsonApiResponse, fields?: string[]): z.infer<typeof SearchOutputSchema>;
|
|
41
|
+
export declare function buildListStructured(response: JsonApiResponse, fields?: string[], summaryFn?: (entity: JsonApiResource) => string): z.infer<typeof SearchOutputSchema>;
|
|
42
|
+
export declare function entityRef(response: JsonApiResponse): z.infer<typeof MutationOutputSchema>;
|
|
43
|
+
export interface ConfirmChoiceOptions {
|
|
44
|
+
/** Question shown to the end user. */
|
|
45
|
+
message: string;
|
|
46
|
+
/** Title of the single-select field. */
|
|
47
|
+
title: string;
|
|
48
|
+
/** Help text under the field. */
|
|
49
|
+
description: string;
|
|
50
|
+
/** Label of the option that confirms the irreversible action. */
|
|
51
|
+
confirmTitle: string;
|
|
52
|
+
/** `true` when the operator opted out of this confirmation through its env flag. */
|
|
53
|
+
disabled: boolean;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Generic titled single-select confirmation (the mechanics documented on
|
|
57
|
+
* `confirmDeletion`, which is its first caller). Issue #251 reuses it for the
|
|
58
|
+
* rejection of a validation: "reject" is not destructive in the delete sense,
|
|
59
|
+
* but it is a decision the workflow does not undo by itself, so it gets the
|
|
60
|
+
* same safe-default prompt. The confirm value is always `"delete"` on the wire
|
|
61
|
+
* so a client built against the delete schema keeps answering correctly.
|
|
62
|
+
*/
|
|
63
|
+
export declare function confirmChoice(server: McpServer, options: ConfirmChoiceOptions): Promise<{
|
|
64
|
+
confirmed: boolean;
|
|
65
|
+
reason?: string;
|
|
66
|
+
}>;
|
|
36
67
|
export declare function confirmDeletion(server: McpServer, entityName: string, id: string): Promise<{
|
|
37
68
|
confirmed: boolean;
|
|
38
69
|
reason?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crud-factory.d.ts","sourceRoot":"","sources":["../../src/tools/crud-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"crud-factory.d.ts","sourceRoot":"","sources":["../../src/tools/crud-factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,9 +2,12 @@ import { McpError, ErrorCode } from "@modelcontextprotocol/sdk/types.js";
|
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
import { apiRequest, apiSearch, buildSearchQuery, formatListResponse, formatDetailResponse, formatEntitySummary, } from "../services/boond-client.js";
|
|
4
4
|
import { progressReporterFrom } from "../services/progress.js";
|
|
5
|
+
import { projectedFieldValue } from "../services/format/summary.js";
|
|
5
6
|
import { SearchSchema, IdSchema, IdTabSchema } from "../schemas/index.js";
|
|
6
7
|
import { defaultSearchDescription, defaultGetDescription, defaultCreateDescription, defaultUpdateDescription, defaultDeleteDescription, } from "./description-builders.js";
|
|
7
8
|
import { isFeatureDisabled } from "../config/env-flags.js";
|
|
9
|
+
import { toKeywordReferences } from "./linked-entity-filters.js";
|
|
10
|
+
import { readString } from "../config/env.js";
|
|
8
11
|
// ---- Structured output schemas (MCP outputSchema / structuredContent) ----
|
|
9
12
|
// Deliberately compact: the structured payload mirrors the text summary
|
|
10
13
|
// (ids + one-line summaries, or the caller-selected `fields`), never the full
|
|
@@ -34,7 +37,7 @@ export const DeleteOutputSchema = z.object({
|
|
|
34
37
|
reason: z.string().optional().describe("Présent quand la suppression n'a pas eu lieu (ex: refus utilisateur)"),
|
|
35
38
|
});
|
|
36
39
|
/** Build the compact structured payload for a search result page. Exported for unit testing. */
|
|
37
|
-
export function buildListStructured(response, fields) {
|
|
40
|
+
export function buildListStructured(response, fields, summaryFn) {
|
|
38
41
|
const data = (Array.isArray(response.data) ? response.data : [response.data]).filter((e) => e !== null && e !== undefined);
|
|
39
42
|
const projected = fields !== undefined && fields.length > 0;
|
|
40
43
|
const items = data.map((entity) => {
|
|
@@ -48,16 +51,18 @@ export function buildListStructured(response, fields) {
|
|
|
48
51
|
// flat items with no `attributes` wrapper — same fallback as
|
|
49
52
|
// `formatProjectedSummary`, otherwise structuredContent held bare ids while
|
|
50
53
|
// the text output showed the projected values.
|
|
51
|
-
const attrs = (entity.attributes ?? entity);
|
|
52
54
|
const selected = {};
|
|
53
55
|
for (const field of fields) {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
+
const value = projectedFieldValue(entity, field);
|
|
57
|
+
if (value !== undefined)
|
|
58
|
+
selected[field] = value;
|
|
56
59
|
}
|
|
57
60
|
item.attributes = selected;
|
|
58
61
|
}
|
|
59
62
|
else {
|
|
60
|
-
|
|
63
|
+
// Resolved here, not as a default parameter: hand-rolled tools that only
|
|
64
|
+
// ever project `fields` are tested against a mock without the formatter.
|
|
65
|
+
item.summary = (summaryFn ?? formatEntitySummary)(entity);
|
|
61
66
|
}
|
|
62
67
|
return item;
|
|
63
68
|
});
|
|
@@ -68,7 +73,7 @@ export function buildListStructured(response, fields) {
|
|
|
68
73
|
items,
|
|
69
74
|
};
|
|
70
75
|
}
|
|
71
|
-
function entityRef(response) {
|
|
76
|
+
export function entityRef(response) {
|
|
72
77
|
const entity = Array.isArray(response.data) ? response.data[0] : response.data;
|
|
73
78
|
const ref = {};
|
|
74
79
|
if (entity?.id !== undefined)
|
|
@@ -80,7 +85,7 @@ function entityRef(response) {
|
|
|
80
85
|
// ---- Delete confirmation via MCP elicitation ----
|
|
81
86
|
/** `BOOND_MCP_CONFIRM_DELETE=0|false|no|off` opts out of the confirmation prompt. */
|
|
82
87
|
function deleteConfirmationDisabled() {
|
|
83
|
-
return isFeatureDisabled(
|
|
88
|
+
return isFeatureDisabled(readString("BOOND_MCP_CONFIRM_DELETE"));
|
|
84
89
|
}
|
|
85
90
|
/**
|
|
86
91
|
* Ask the end user to confirm a destructive delete through MCP elicitation
|
|
@@ -123,12 +128,24 @@ const CANCEL_DELETE_VALUE = "cancel";
|
|
|
123
128
|
function isElicitationResponseRejected(error) {
|
|
124
129
|
if (!(error instanceof McpError))
|
|
125
130
|
return false;
|
|
131
|
+
// `McpError.code` is typed `number` by the SDK while `ErrorCode` is an enum:
|
|
132
|
+
// the comparison is what the SDK itself documents.
|
|
133
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
|
|
126
134
|
if (error.code === ErrorCode.InvalidParams)
|
|
127
135
|
return true;
|
|
136
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
|
|
128
137
|
return error.code === ErrorCode.InternalError && /elicitation response/i.test(error.message);
|
|
129
138
|
}
|
|
130
|
-
|
|
131
|
-
|
|
139
|
+
/**
|
|
140
|
+
* Generic titled single-select confirmation (the mechanics documented on
|
|
141
|
+
* `confirmDeletion`, which is its first caller). Issue #251 reuses it for the
|
|
142
|
+
* rejection of a validation: "reject" is not destructive in the delete sense,
|
|
143
|
+
* but it is a decision the workflow does not undo by itself, so it gets the
|
|
144
|
+
* same safe-default prompt. The confirm value is always `"delete"` on the wire
|
|
145
|
+
* so a client built against the delete schema keeps answering correctly.
|
|
146
|
+
*/
|
|
147
|
+
export async function confirmChoice(server, options) {
|
|
148
|
+
if (options.disabled)
|
|
132
149
|
return { confirmed: true };
|
|
133
150
|
let supportsElicitation;
|
|
134
151
|
try {
|
|
@@ -141,16 +158,16 @@ export async function confirmDeletion(server, entityName, id) {
|
|
|
141
158
|
return { confirmed: true };
|
|
142
159
|
try {
|
|
143
160
|
const result = await server.server.elicitInput({
|
|
144
|
-
message:
|
|
161
|
+
message: options.message,
|
|
145
162
|
requestedSchema: {
|
|
146
163
|
type: "object",
|
|
147
164
|
properties: {
|
|
148
165
|
confirmation: {
|
|
149
166
|
type: "string",
|
|
150
|
-
title:
|
|
151
|
-
description:
|
|
167
|
+
title: options.title,
|
|
168
|
+
description: options.description,
|
|
152
169
|
oneOf: [
|
|
153
|
-
{ const: CONFIRM_DELETE_VALUE, title:
|
|
170
|
+
{ const: CONFIRM_DELETE_VALUE, title: options.confirmTitle },
|
|
154
171
|
{ const: CANCEL_DELETE_VALUE, title: "Annuler" },
|
|
155
172
|
],
|
|
156
173
|
default: CANCEL_DELETE_VALUE,
|
|
@@ -172,13 +189,22 @@ export async function confirmDeletion(server, entityName, id) {
|
|
|
172
189
|
};
|
|
173
190
|
}
|
|
174
191
|
catch (error) {
|
|
175
|
-
// An off-schema answer is a refusal, not a broken round-trip: never
|
|
192
|
+
// An off-schema answer is a refusal, not a broken round-trip: never proceed.
|
|
176
193
|
if (isElicitationResponseRejected(error)) {
|
|
177
194
|
return { confirmed: false, reason: "invalid-confirmation-response" };
|
|
178
195
|
}
|
|
179
196
|
return { confirmed: true };
|
|
180
197
|
}
|
|
181
198
|
}
|
|
199
|
+
export async function confirmDeletion(server, entityName, id) {
|
|
200
|
+
return confirmChoice(server, {
|
|
201
|
+
disabled: deleteConfirmationDisabled(),
|
|
202
|
+
message: `Confirmer la suppression définitive de ${entityName} #${id} dans BoondManager ? Cette action est irréversible.`,
|
|
203
|
+
title: `Suppression de ${entityName} #${id}`,
|
|
204
|
+
description: "Choisir « Supprimer définitivement » pour confirmer, sinon rien ne sera supprimé.",
|
|
205
|
+
confirmTitle: "Supprimer définitivement",
|
|
206
|
+
});
|
|
207
|
+
}
|
|
182
208
|
export function registerSearchTool(server, opts, overrides = {}) {
|
|
183
209
|
const schema = overrides.schema ?? SearchSchema;
|
|
184
210
|
const title = overrides.title ?? `Rechercher des ${opts.entityNamePlural}`;
|
|
@@ -200,16 +226,18 @@ export function registerSearchTool(server, opts, overrides = {}) {
|
|
|
200
226
|
},
|
|
201
227
|
}, async (params, extra) => {
|
|
202
228
|
const p = params;
|
|
203
|
-
|
|
229
|
+
// Linked-entity `*Id` filters become `keywords` references: the API has
|
|
230
|
+
// no such query parameters and ignores them silently (#247).
|
|
231
|
+
const query = buildSearchQuery(toKeywordReferences(p));
|
|
204
232
|
// apiSearch respects BoondManager's per-route maxResults ceiling,
|
|
205
233
|
// chunking large requests transparently (see ROUTE_MAX_RESULTS). The
|
|
206
234
|
// reporter is a no-op unless the client sent a progressToken, and
|
|
207
235
|
// apiSearch only uses it on the chunked path.
|
|
208
236
|
const response = await apiSearch(opts.apiPath, query, progressReporterFrom(extra));
|
|
209
|
-
const text = formatListResponse(response, opts.entityName, p.fields);
|
|
237
|
+
const text = formatListResponse(response, opts.entityName, p.fields, overrides.summaryFn);
|
|
210
238
|
return {
|
|
211
239
|
content: [{ type: "text", text }],
|
|
212
|
-
structuredContent: buildListStructured(response, p.fields),
|
|
240
|
+
structuredContent: buildListStructured(response, p.fields, overrides.summaryFn),
|
|
213
241
|
};
|
|
214
242
|
});
|
|
215
243
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crud-factory.js","sourceRoot":"","sources":["../../src/tools/crud-factory.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"crud-factory.js","sourceRoot":"","sources":["../../src/tools/crud-factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
export declare function buildDeliveryBody(params: Record<string, unknown>): unknown;
|
|
3
|
+
/** PUT /deliveries/{id}: attributes only — the project / resource attachment is never moved by an update (issue #252). */
|
|
4
|
+
export declare function buildDeliveryUpdateBody(params: Record<string, unknown>): unknown;
|
|
2
5
|
export declare function registerDeliveryTools(server: McpServer): void;
|
|
3
6
|
//# sourceMappingURL=deliveries.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deliveries.d.ts","sourceRoot":"","sources":["../../src/tools/deliveries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"deliveries.d.ts","sourceRoot":"","sources":["../../src/tools/deliveries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAmCzE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAM1E;AAED,0HAA0H;AAC1H,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAGhF;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAuC7D"}
|