boondmanager-mcp-server 2.14.1 → 2.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/constants.d.ts +1 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +33 -0
- package/dist/constants.js.map +1 -1
- package/dist/tools/absences.d.ts.map +1 -1
- package/dist/tools/absences.js +31 -4
- package/dist/tools/absences.js.map +1 -1
- package/dist/tools/actions.d.ts.map +1 -1
- package/dist/tools/actions.js +10 -2
- package/dist/tools/actions.js.map +1 -1
- package/dist/tools/advantages.d.ts.map +1 -1
- package/dist/tools/advantages.js +5 -1
- package/dist/tools/advantages.js.map +1 -1
- package/dist/tools/application.js +1 -1
- package/dist/tools/application.js.map +1 -1
- package/dist/tools/candidates.d.ts.map +1 -1
- package/dist/tools/candidates.js +18 -53
- package/dist/tools/candidates.js.map +1 -1
- package/dist/tools/companies.d.ts.map +1 -1
- package/dist/tools/companies.js +26 -78
- package/dist/tools/companies.js.map +1 -1
- package/dist/tools/contacts.d.ts.map +1 -1
- package/dist/tools/contacts.js +18 -59
- package/dist/tools/contacts.js.map +1 -1
- package/dist/tools/contracts.d.ts.map +1 -1
- package/dist/tools/contracts.js +23 -6
- package/dist/tools/contracts.js.map +1 -1
- package/dist/tools/crud-factory.d.ts +3 -0
- package/dist/tools/crud-factory.d.ts.map +1 -1
- package/dist/tools/crud-factory.js +11 -32
- package/dist/tools/crud-factory.js.map +1 -1
- package/dist/tools/deliveries.d.ts.map +1 -1
- package/dist/tools/deliveries.js +16 -2
- package/dist/tools/deliveries.js.map +1 -1
- package/dist/tools/description-builders.d.ts +135 -0
- package/dist/tools/description-builders.d.ts.map +1 -0
- package/dist/tools/description-builders.js +152 -0
- package/dist/tools/description-builders.js.map +1 -0
- package/dist/tools/documents.d.ts.map +1 -1
- package/dist/tools/documents.js +7 -3
- package/dist/tools/documents.js.map +1 -1
- package/dist/tools/expenses.d.ts.map +1 -1
- package/dist/tools/expenses.js +6 -1
- package/dist/tools/expenses.js.map +1 -1
- package/dist/tools/invoices.d.ts.map +1 -1
- package/dist/tools/invoices.js +9 -2
- package/dist/tools/invoices.js.map +1 -1
- package/dist/tools/notifications.d.ts.map +1 -1
- package/dist/tools/notifications.js +5 -1
- package/dist/tools/notifications.js.map +1 -1
- package/dist/tools/opportunities.d.ts.map +1 -1
- package/dist/tools/opportunities.js +20 -55
- package/dist/tools/opportunities.js.map +1 -1
- package/dist/tools/orders.d.ts.map +1 -1
- package/dist/tools/orders.js +6 -1
- package/dist/tools/orders.js.map +1 -1
- package/dist/tools/parameter-disclosure.d.ts +5 -0
- package/dist/tools/parameter-disclosure.d.ts.map +1 -0
- package/dist/tools/parameter-disclosure.js +71 -0
- package/dist/tools/parameter-disclosure.js.map +1 -0
- package/dist/tools/payments.d.ts.map +1 -1
- package/dist/tools/payments.js +15 -2
- package/dist/tools/payments.js.map +1 -1
- package/dist/tools/positionings.d.ts.map +1 -1
- package/dist/tools/positionings.js +20 -3
- package/dist/tools/positionings.js.map +1 -1
- package/dist/tools/projects.d.ts.map +1 -1
- package/dist/tools/projects.js +24 -67
- package/dist/tools/projects.js.map +1 -1
- package/dist/tools/provider-invoices.d.ts.map +1 -1
- package/dist/tools/provider-invoices.js +25 -3
- package/dist/tools/provider-invoices.js.map +1 -1
- package/dist/tools/purchases.d.ts.map +1 -1
- package/dist/tools/purchases.js +20 -3
- package/dist/tools/purchases.js.map +1 -1
- package/dist/tools/registration-decorators.d.ts +6 -1
- package/dist/tools/registration-decorators.d.ts.map +1 -1
- package/dist/tools/registration-decorators.js +8 -1
- package/dist/tools/registration-decorators.js.map +1 -1
- package/dist/tools/reporting.d.ts.map +1 -1
- package/dist/tools/reporting.js +25 -7
- package/dist/tools/reporting.js.map +1 -1
- package/dist/tools/resources.d.ts.map +1 -1
- package/dist/tools/resources.js +44 -87
- package/dist/tools/resources.js.map +1 -1
- package/dist/tools/tab-tools.d.ts +23 -0
- package/dist/tools/tab-tools.d.ts.map +1 -0
- package/dist/tools/tab-tools.js +48 -0
- package/dist/tools/tab-tools.js.map +1 -0
- package/dist/tools/timesheets.d.ts.map +1 -1
- package/dist/tools/timesheets.js +11 -1
- package/dist/tools/timesheets.js.map +1 -1
- package/dist/tools/usage-guidance.d.ts +45 -0
- package/dist/tools/usage-guidance.d.ts.map +1 -0
- package/dist/tools/usage-guidance.js +235 -0
- package/dist/tools/usage-guidance.js.map +1 -0
- package/dist/tools/validations.d.ts.map +1 -1
- package/dist/tools/validations.js +5 -1
- package/dist/tools/validations.js.map +1 -1
- package/dist/tools/workflows.d.ts.map +1 -1
- package/dist/tools/workflows.js +13 -4
- package/dist/tools/workflows.js.map +1 -1
- package/manifest.json +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { FIELDS_DISCLOSURE, PAGINATION_DISCLOSURE, PAGINATION_INERT_DISCLOSURE } from "./description-builders.js";
|
|
2
|
+
import { TOOLS_IGNORING_PAGINATION } from "../constants.js";
|
|
3
|
+
/**
|
|
4
|
+
* Central, drift-proof disclosure of the two parameters whose *semantics* live
|
|
5
|
+
* outside their schema entry.
|
|
6
|
+
*
|
|
7
|
+
* `fields` is applied client-side and never forwarded to BoondManager;
|
|
8
|
+
* `page` / `pageSize` are **rejected** past their ceilings rather than clamped.
|
|
9
|
+
* Neither fact is derivable from the JSON Schema the client receives, and both
|
|
10
|
+
* were missing from ~32 tool descriptions — including the two lowest-scoring
|
|
11
|
+
* tools in the catalogue, whose only real defect was that.
|
|
12
|
+
*
|
|
13
|
+
* Applied from `registration-decorators.ts` for the same reason the filter
|
|
14
|
+
* hints are: 182 tools are registered across 38 files, and a rule that has to
|
|
15
|
+
* be remembered in each of them is a rule that decays. Adding a search tool
|
|
16
|
+
* now discloses `fields` whether or not its author thought about it.
|
|
17
|
+
*
|
|
18
|
+
* Two properties keep this from becoming boilerplate:
|
|
19
|
+
*
|
|
20
|
+
* - it appends **only what the tool actually declares** (a tool with no
|
|
21
|
+
* `fields` key gets no `fields` paragraph), read off the advertised schema
|
|
22
|
+
* shape rather than off the tool name; and
|
|
23
|
+
* - it appends nothing when the description already covers the parameter, so a
|
|
24
|
+
* hand-written description that explains `fields` in its own words is left
|
|
25
|
+
* alone instead of repeating itself. Conciseness is a scored dimension, and
|
|
26
|
+
* a duplicated paragraph is worse than an absent one.
|
|
27
|
+
*/
|
|
28
|
+
/** Zod object schemas expose their keys through `.shape`; raw shapes are plain objects. */
|
|
29
|
+
function declaredKeys(inputSchema) {
|
|
30
|
+
if (inputSchema === null || typeof inputSchema !== "object")
|
|
31
|
+
return new Set();
|
|
32
|
+
const shape = inputSchema.shape ?? inputSchema;
|
|
33
|
+
const resolved = typeof shape === "function" ? shape() : shape;
|
|
34
|
+
if (resolved === null || typeof resolved !== "object")
|
|
35
|
+
return new Set();
|
|
36
|
+
return new Set(Object.keys(resolved));
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Whether the description already says something substantive about `name`.
|
|
40
|
+
* Deliberately a mention test, not an equality test: the point is to avoid
|
|
41
|
+
* saying the same thing twice, and any sentence that names the parameter has
|
|
42
|
+
* already claimed that job.
|
|
43
|
+
*/
|
|
44
|
+
function alreadyDiscloses(description, name) {
|
|
45
|
+
return new RegExp(`\`?\\b${name}\\b`, "i").test(description);
|
|
46
|
+
}
|
|
47
|
+
export function withParameterDisclosure(config, name) {
|
|
48
|
+
const description = config.description;
|
|
49
|
+
if (typeof description !== "string" || description.length === 0)
|
|
50
|
+
return config;
|
|
51
|
+
const keys = declaredKeys(config.inputSchema);
|
|
52
|
+
const additions = [];
|
|
53
|
+
if (keys.has("fields") && !alreadyDiscloses(description, "fields")) {
|
|
54
|
+
additions.push(FIELDS_DISCLOSURE);
|
|
55
|
+
}
|
|
56
|
+
// One paragraph covers both keys; `pageSize` is the one whose ceiling gets
|
|
57
|
+
// exceeded in practice, so it decides. A handful of reference routes accept
|
|
58
|
+
// the parameter and discard it — promising them the ceiling would be a
|
|
59
|
+
// description contradicting the endpoint, so they get the opposite sentence.
|
|
60
|
+
if (keys.has("pageSize") && !alreadyDiscloses(description, "pageSize")) {
|
|
61
|
+
const inert = name !== undefined && TOOLS_IGNORING_PAGINATION.has(name);
|
|
62
|
+
additions.push(inert ? PAGINATION_INERT_DISCLOSURE : PAGINATION_DISCLOSURE);
|
|
63
|
+
}
|
|
64
|
+
if (additions.length === 0)
|
|
65
|
+
return config;
|
|
66
|
+
return {
|
|
67
|
+
...config,
|
|
68
|
+
description: `${description}\n\n${additions.map((a) => `- ${a}`).join("\n")}`,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=parameter-disclosure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parameter-disclosure.js","sourceRoot":"","sources":["../../src/tools/parameter-disclosure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAClH,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,2FAA2F;AAC3F,SAAS,YAAY,CAAC,WAAoB;IACxC,IAAI,WAAW,KAAK,IAAI,IAAI,OAAO,WAAW,KAAK,QAAQ;QAAE,OAAO,IAAI,GAAG,EAAE,CAAC;IAC9E,MAAM,KAAK,GAAI,WAAmC,CAAC,KAAK,IAAI,WAAW,CAAC;IACxE,MAAM,QAAQ,GAAG,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAE,KAAuB,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IAClF,IAAI,QAAQ,KAAK,IAAI,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,IAAI,GAAG,EAAE,CAAC;IACxE,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAmC,CAAC,CAAC,CAAC;AACnE,CAAC;AAED;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,WAAmB,EAAE,IAAY;IACzD,OAAO,IAAI,MAAM,CAAC,SAAS,IAAI,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,MAAS,EACT,IAAa;IAEb,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;IACvC,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAE/E,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,CAAC;QACnE,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACpC,CAAC;IACD,2EAA2E;IAC3E,4EAA4E;IAC5E,uEAAuE;IACvE,6EAA6E;IAC7E,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE,CAAC;QACvE,MAAM,KAAK,GAAG,IAAI,KAAK,SAAS,IAAI,yBAAyB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;IAC9E,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAE1C,OAAO;QACL,GAAG,MAAM;QACT,WAAW,EAAE,GAAG,WAAW,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;KAC9E,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payments.d.ts","sourceRoot":"","sources":["../../src/tools/payments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"payments.d.ts","sourceRoot":"","sources":["../../src/tools/payments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAyBzE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA8G5D"}
|
package/dist/tools/payments.js
CHANGED
|
@@ -2,6 +2,7 @@ import { PaymentSearchSchema, IdSchema } from "../schemas/index.js";
|
|
|
2
2
|
import { apiRequest, buildSearchQuery, formatListResponse, formatDetailResponse } from "../services/boond-client.js";
|
|
3
3
|
import { buildJsonApiBody } from "./crud-factory.js";
|
|
4
4
|
import { z } from "zod";
|
|
5
|
+
import { composeDescription, defaultGetDescription } from "./description-builders.js";
|
|
5
6
|
const PaymentCreateSchema = z
|
|
6
7
|
.object({
|
|
7
8
|
purchaseId: z.string().min(1).describe("ID de l'achat regle"),
|
|
@@ -22,7 +23,16 @@ const PaymentCreateSchema = z
|
|
|
22
23
|
export function registerPaymentTools(server) {
|
|
23
24
|
server.registerTool("boond_payments_create", {
|
|
24
25
|
title: "Creer un paiement",
|
|
25
|
-
description:
|
|
26
|
+
description: composeDescription({
|
|
27
|
+
purpose: "Enregistre un paiement / règlement fournisseur adossé à un achat.",
|
|
28
|
+
when: "pour solder tout ou partie d'un achat existant.",
|
|
29
|
+
instead: "`boond_purchases_create` si l'achat lui-même n'existe pas encore — un paiement ne peut pas être orphelin.",
|
|
30
|
+
behaviour: [
|
|
31
|
+
"L'API `/payments` **exige** une relation `purchase` : sans ID d'achat valide, l'appel est refusé.",
|
|
32
|
+
"Écriture non idempotente : deux appels identiques enregistrent deux règlements.",
|
|
33
|
+
],
|
|
34
|
+
returns: "confirmation et fiche du paiement créé.",
|
|
35
|
+
}),
|
|
26
36
|
inputSchema: PaymentCreateSchema,
|
|
27
37
|
annotations: {
|
|
28
38
|
readOnlyHint: false,
|
|
@@ -93,7 +103,10 @@ Returns: Liste des paiements correspondants.`,
|
|
|
93
103
|
});
|
|
94
104
|
server.registerTool("boond_payments_get", {
|
|
95
105
|
title: "Details d'un paiement",
|
|
96
|
-
description:
|
|
106
|
+
description: defaultGetDescription({
|
|
107
|
+
...{ entityName: "paiement", entityNamePlural: "paiements", prefix: "boond_payments" },
|
|
108
|
+
withTab: false,
|
|
109
|
+
}),
|
|
97
110
|
inputSchema: IdSchema,
|
|
98
111
|
annotations: {
|
|
99
112
|
readOnlyHint: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payments.js","sourceRoot":"","sources":["../../src/tools/payments.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACrH,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"payments.js","sourceRoot":"","sources":["../../src/tools/payments.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"positionings.d.ts","sourceRoot":"","sources":["../../src/tools/positionings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"positionings.d.ts","sourceRoot":"","sources":["../../src/tools/positionings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAWzE,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA6LhE"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { PositioningSearchSchema, PositioningCreateSchema, PositioningUpdateSchema, IdSchema, } from "../schemas/index.js";
|
|
2
2
|
import { apiRequest, buildSearchQuery, formatListResponse, formatDetailResponse } from "../services/boond-client.js";
|
|
3
3
|
import { buildJsonApiBody, registerDeleteTool, MutationOutputSchema } from "./crud-factory.js";
|
|
4
|
+
import { composeDescription, defaultDeleteDescription, defaultGetDescription } from "./description-builders.js";
|
|
4
5
|
export function registerPositioningTools(server) {
|
|
5
6
|
// Search positionings
|
|
6
7
|
server.registerTool("boond_positionings_search", {
|
|
@@ -51,7 +52,10 @@ Returns: Liste des positionnements correspondants.`,
|
|
|
51
52
|
// Get positioning details
|
|
52
53
|
server.registerTool("boond_positionings_get", {
|
|
53
54
|
title: "Détails d'un positionnement",
|
|
54
|
-
description:
|
|
55
|
+
description: defaultGetDescription({
|
|
56
|
+
...{ entityName: "positionnement", entityNamePlural: "positionnements", prefix: "boond_positionings" },
|
|
57
|
+
withTab: false,
|
|
58
|
+
}),
|
|
55
59
|
inputSchema: IdSchema,
|
|
56
60
|
annotations: {
|
|
57
61
|
readOnlyHint: true,
|
|
@@ -68,7 +72,16 @@ Returns: Liste des positionnements correspondants.`,
|
|
|
68
72
|
// Create positioning
|
|
69
73
|
server.registerTool("boond_positionings_create", {
|
|
70
74
|
title: "Créer un positionnement",
|
|
71
|
-
description:
|
|
75
|
+
description: composeDescription({
|
|
76
|
+
purpose: "Crée un positionnement : place un candidat ou une ressource sur une opportunité ou un projet.",
|
|
77
|
+
when: "pour matérialiser une proposition de profil au client.",
|
|
78
|
+
instead: "`boond_positionings_update` pour faire avancer l'état d'un positionnement existant (proposé → retenu → refusé) plutôt que d'en créer un second.",
|
|
79
|
+
behaviour: [
|
|
80
|
+
"Écriture non idempotente : rien n'empêche deux positionnements du même profil sur la même affaire.",
|
|
81
|
+
"L'état est un ID entier du dictionnaire (`boond://dictionary/states/positionings`), pas un libellé.",
|
|
82
|
+
],
|
|
83
|
+
returns: "confirmation et fiche du positionnement créé.",
|
|
84
|
+
}),
|
|
72
85
|
inputSchema: PositioningCreateSchema,
|
|
73
86
|
annotations: {
|
|
74
87
|
readOnlyHint: false,
|
|
@@ -159,7 +172,11 @@ Returns: Données mises à jour du positionnement.`,
|
|
|
159
172
|
prefix: "boond_positionings",
|
|
160
173
|
}, {
|
|
161
174
|
title: "Supprimer un positionnement",
|
|
162
|
-
description:
|
|
175
|
+
description: defaultDeleteDescription({
|
|
176
|
+
entityName: "positionnement",
|
|
177
|
+
entityNamePlural: "positionnements",
|
|
178
|
+
prefix: "boond_positionings",
|
|
179
|
+
}),
|
|
163
180
|
});
|
|
164
181
|
}
|
|
165
182
|
//# sourceMappingURL=positionings.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"positionings.js","sourceRoot":"","sources":["../../src/tools/positionings.ts"],"names":[],"mappings":"AACA,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,QAAQ,GACT,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACrH,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"positionings.js","sourceRoot":"","sources":["../../src/tools/positionings.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/tools/projects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/tools/projects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA4FzE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAuC5D"}
|
package/dist/tools/projects.js
CHANGED
|
@@ -1,95 +1,66 @@
|
|
|
1
|
-
import { ProjectCreateSchema, ProjectUpdateSchema, ProjectSearchSchema
|
|
1
|
+
import { ProjectCreateSchema, ProjectUpdateSchema, ProjectSearchSchema } from "../schemas/index.js";
|
|
2
2
|
import { registerSearchTool, registerGetTool, registerCreateTool, registerUpdateTool, registerDeleteTool, buildJsonApiBody, } from "./crud-factory.js";
|
|
3
|
-
import {
|
|
3
|
+
import { registerTabTools } from "./tab-tools.js";
|
|
4
4
|
const OPTS = {
|
|
5
5
|
entityName: "projet",
|
|
6
6
|
entityNamePlural: "projets",
|
|
7
7
|
apiPath: "/projects",
|
|
8
8
|
prefix: "boond_projects",
|
|
9
9
|
};
|
|
10
|
-
const TAB_TOOL_ANNOTATIONS = {
|
|
11
|
-
readOnlyHint: true,
|
|
12
|
-
destructiveHint: false,
|
|
13
|
-
idempotentHint: true,
|
|
14
|
-
openWorldHint: false,
|
|
15
|
-
};
|
|
16
10
|
const PROJECT_TABS = [
|
|
17
11
|
{
|
|
18
12
|
name: "information",
|
|
19
13
|
tab: "information",
|
|
20
14
|
title: "Informations générales d'un projet",
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
- id (string): ID du projet
|
|
25
|
-
|
|
26
|
-
Returns: Données générales du projet.`,
|
|
15
|
+
subject: "les informations générales",
|
|
16
|
+
content: "client, dates, état, description, responsable",
|
|
17
|
+
returns: "Fiche du projet.",
|
|
27
18
|
},
|
|
28
19
|
{
|
|
29
20
|
name: "actions",
|
|
30
21
|
tab: "actions",
|
|
31
22
|
title: "Actions liées à un projet",
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
- id (string): ID du projet
|
|
36
|
-
|
|
37
|
-
Returns: Liste des actions liées au projet.`,
|
|
23
|
+
subject: "les actions",
|
|
24
|
+
content: "appels, emails, RDV, notes",
|
|
25
|
+
returns: "Liste des actions rattachées au projet.",
|
|
38
26
|
},
|
|
39
27
|
{
|
|
40
28
|
name: "simulation",
|
|
41
29
|
tab: "simulation",
|
|
42
30
|
title: "Simulation financière d'un projet",
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
- id (string): ID du projet
|
|
47
|
-
|
|
48
|
-
Returns: Données de simulation financière du projet.`,
|
|
31
|
+
subject: "la simulation financière",
|
|
32
|
+
content: "marge, CA, coûts, rentabilité",
|
|
33
|
+
returns: "Chiffrage du projet.",
|
|
49
34
|
},
|
|
50
35
|
{
|
|
51
36
|
name: "deliveries_groupments",
|
|
52
37
|
tab: "deliveries-groupments",
|
|
53
|
-
title: "Livraisons d'un projet",
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
- id (string): ID du projet
|
|
58
|
-
|
|
59
|
-
Returns: Liste des livraisons du projet.`,
|
|
38
|
+
title: "Livraisons et groupements d'un projet",
|
|
39
|
+
subject: "les livraisons et leurs groupements",
|
|
40
|
+
content: "lignes de mission facturables du projet",
|
|
41
|
+
returns: "Liste des livraisons du projet. Les ID de livraison qui s'y trouvent sont ceux qu'exige une ligne de note de frais.",
|
|
60
42
|
},
|
|
61
43
|
{
|
|
62
44
|
name: "orders",
|
|
63
45
|
tab: "orders",
|
|
64
46
|
title: "Bons de commande d'un projet",
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
Args:
|
|
68
|
-
- id (string): ID du projet
|
|
69
|
-
|
|
70
|
-
Returns: Liste des bons de commande du projet.`,
|
|
47
|
+
subject: "les bons de commande",
|
|
48
|
+
returns: "Liste des bons de commande adossés au projet.",
|
|
71
49
|
},
|
|
72
50
|
{
|
|
73
51
|
name: "purchases",
|
|
74
52
|
tab: "purchases",
|
|
75
|
-
title: "Achats
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
Args:
|
|
79
|
-
- id (string): ID du projet
|
|
80
|
-
|
|
81
|
-
Returns: Liste des achats du projet.`,
|
|
53
|
+
title: "Achats d'un projet",
|
|
54
|
+
subject: "les achats et la sous-traitance",
|
|
55
|
+
returns: "Liste des achats imputés au projet.",
|
|
82
56
|
},
|
|
83
57
|
{
|
|
84
58
|
name: "productivity",
|
|
85
59
|
tab: "productivity",
|
|
86
60
|
title: "Productivité d'un projet",
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
- id (string): ID du projet
|
|
91
|
-
|
|
92
|
-
Returns: Données de productivité du projet.`,
|
|
61
|
+
subject: "les données de productivité",
|
|
62
|
+
content: "temps passé, jours consommés",
|
|
63
|
+
returns: "Consommé du projet — du réalisé, contrairement à `boond_projects_simulation`.",
|
|
93
64
|
},
|
|
94
65
|
];
|
|
95
66
|
const PROJECT_SEARCH_DESCRIPTION = `Recherche des projets / missions dans BoondManager avec filtres serveur.
|
|
@@ -136,20 +107,6 @@ export function registerProjectTools(server) {
|
|
|
136
107
|
return buildJsonApiBody("project", apiAttrs, id);
|
|
137
108
|
}, { method: "PUT", pathSuffix: "information" });
|
|
138
109
|
registerDeleteTool(server, OPTS);
|
|
139
|
-
|
|
140
|
-
for (const tab of PROJECT_TABS) {
|
|
141
|
-
server.registerTool(`boond_projects_${tab.name}`, {
|
|
142
|
-
title: tab.title,
|
|
143
|
-
description: tab.description,
|
|
144
|
-
inputSchema: IdSchema,
|
|
145
|
-
annotations: TAB_TOOL_ANNOTATIONS,
|
|
146
|
-
}, async (params) => {
|
|
147
|
-
const response = await apiRequest(`/projects/${params.id}/${tab.tab}`);
|
|
148
|
-
const text = formatTabResponse(response);
|
|
149
|
-
return {
|
|
150
|
-
content: [{ type: "text", text }],
|
|
151
|
-
};
|
|
152
|
-
});
|
|
153
|
-
}
|
|
110
|
+
registerTabTools(server, { ...OPTS, prefix: OPTS.prefix }, PROJECT_TABS);
|
|
154
111
|
}
|
|
155
112
|
//# sourceMappingURL=projects.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/tools/projects.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/tools/projects.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-invoices.d.ts","sourceRoot":"","sources":["../../src/tools/provider-invoices.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"provider-invoices.d.ts","sourceRoot":"","sources":["../../src/tools/provider-invoices.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAsCzE,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA0GpE"}
|
|
@@ -3,6 +3,7 @@ import { apiRequest, buildSearchQuery, formatListResponse, formatDetailResponse
|
|
|
3
3
|
import { buildJsonApiBody } from "./crud-factory.js";
|
|
4
4
|
import { z } from "zod";
|
|
5
5
|
import { DEFAULT_PAGE_SIZE, MAX_PAGE_SIZE, MAX_SEARCH_PAGE } from "../constants.js";
|
|
6
|
+
import { composeDescription, defaultGetDescription } from "./description-builders.js";
|
|
6
7
|
const ProviderInvoiceSearchSchema = z
|
|
7
8
|
.object({
|
|
8
9
|
keywords: z.string().optional().describe("Mots-cles de recherche"),
|
|
@@ -34,7 +35,16 @@ const ProviderInvoiceCreateSchema = z
|
|
|
34
35
|
export function registerProviderInvoiceTools(server) {
|
|
35
36
|
server.registerTool("boond_provider_invoices_create", {
|
|
36
37
|
title: "Creer une facture fournisseur",
|
|
37
|
-
description:
|
|
38
|
+
description: composeDescription({
|
|
39
|
+
purpose: "Crée une facture fournisseur (facture reçue d'un prestataire).",
|
|
40
|
+
when: "pour enregistrer la facture émise par un sous-traitant.",
|
|
41
|
+
instead: "`boond_invoices_create` pour une facture de vente adressée à un client — les deux sens ne partagent pas d'endpoint.",
|
|
42
|
+
behaviour: [
|
|
43
|
+
"`resource`, `providerCompany` et `providerContact` sont attendus sous forme d'ID numériques.",
|
|
44
|
+
"Écriture non idempotente.",
|
|
45
|
+
],
|
|
46
|
+
returns: "confirmation et fiche de la facture fournisseur créée.",
|
|
47
|
+
}),
|
|
38
48
|
inputSchema: ProviderInvoiceCreateSchema,
|
|
39
49
|
annotations: {
|
|
40
50
|
readOnlyHint: false,
|
|
@@ -66,7 +76,12 @@ export function registerProviderInvoiceTools(server) {
|
|
|
66
76
|
});
|
|
67
77
|
server.registerTool("boond_provider_invoices_search", {
|
|
68
78
|
title: "Rechercher des factures fournisseur",
|
|
69
|
-
description:
|
|
79
|
+
description: composeDescription({
|
|
80
|
+
purpose: "Liste et recherche les factures fournisseur (factures reçues des prestataires).",
|
|
81
|
+
when: "pour suivre les factures d'achat, par fournisseur, état ou période.",
|
|
82
|
+
instead: "`boond_invoices_search` pour les factures de vente adressées aux clients — sens opposé, endpoint distinct.",
|
|
83
|
+
returns: "page de résumés de factures fournisseur (référence, date, montants). Lecture seule.",
|
|
84
|
+
}),
|
|
70
85
|
inputSchema: ProviderInvoiceSearchSchema,
|
|
71
86
|
annotations: {
|
|
72
87
|
readOnlyHint: true,
|
|
@@ -91,7 +106,14 @@ export function registerProviderInvoiceTools(server) {
|
|
|
91
106
|
});
|
|
92
107
|
server.registerTool("boond_provider_invoices_get", {
|
|
93
108
|
title: "Details d'une facture fournisseur",
|
|
94
|
-
description:
|
|
109
|
+
description: defaultGetDescription({
|
|
110
|
+
...{
|
|
111
|
+
entityName: "facture fournisseur",
|
|
112
|
+
entityNamePlural: "factures fournisseur",
|
|
113
|
+
prefix: "boond_provider_invoices",
|
|
114
|
+
},
|
|
115
|
+
withTab: false,
|
|
116
|
+
}),
|
|
95
117
|
inputSchema: IdSchema,
|
|
96
118
|
annotations: {
|
|
97
119
|
readOnlyHint: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-invoices.js","sourceRoot":"","sources":["../../src/tools/provider-invoices.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACrH,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"provider-invoices.js","sourceRoot":"","sources":["../../src/tools/provider-invoices.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"purchases.d.ts","sourceRoot":"","sources":["../../src/tools/purchases.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"purchases.d.ts","sourceRoot":"","sources":["../../src/tools/purchases.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAuCzE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAgH7D"}
|
package/dist/tools/purchases.js
CHANGED
|
@@ -4,6 +4,7 @@ import { progressReporterFrom } from "../services/progress.js";
|
|
|
4
4
|
import { buildJsonApiBody, registerDeleteTool } from "./crud-factory.js";
|
|
5
5
|
import { z } from "zod";
|
|
6
6
|
import { DEFAULT_PAGE_SIZE, MAX_PAGE_SIZE, MAX_SEARCH_PAGE } from "../constants.js";
|
|
7
|
+
import { composeDescription, defaultDeleteDescription, defaultGetDescription } from "./description-builders.js";
|
|
7
8
|
const PurchaseSearchSchema = z
|
|
8
9
|
.object({
|
|
9
10
|
keywords: z.string().optional().describe("Mots-clés de recherche"),
|
|
@@ -52,7 +53,10 @@ Returns: Liste des achats correspondants.`,
|
|
|
52
53
|
});
|
|
53
54
|
server.registerTool("boond_purchases_get", {
|
|
54
55
|
title: "Détails d'un achat/sous-traitance",
|
|
55
|
-
description:
|
|
56
|
+
description: defaultGetDescription({
|
|
57
|
+
...{ entityName: "achat", entityNamePlural: "achats", prefix: "boond_purchases" },
|
|
58
|
+
withTab: false,
|
|
59
|
+
}),
|
|
56
60
|
inputSchema: IdSchema,
|
|
57
61
|
annotations: {
|
|
58
62
|
readOnlyHint: true,
|
|
@@ -68,7 +72,16 @@ Returns: Liste des achats correspondants.`,
|
|
|
68
72
|
});
|
|
69
73
|
server.registerTool("boond_purchases_create", {
|
|
70
74
|
title: "Créer un achat/sous-traitance",
|
|
71
|
-
description:
|
|
75
|
+
description: composeDescription({
|
|
76
|
+
purpose: "Crée un achat ou une ligne de sous-traitance.",
|
|
77
|
+
when: "pour engager une dépense fournisseur, généralement rattachée à un projet.",
|
|
78
|
+
instead: "`boond_provider_invoices_create` pour la facture reçue du fournisseur — l'achat est l'engagement, la facture fournisseur en est le règlement attendu.",
|
|
79
|
+
behaviour: [
|
|
80
|
+
"Écriture non idempotente.",
|
|
81
|
+
"Les ID de société, contact et projet sont des ID numériques BoondManager, à résoudre au préalable via les recherches correspondantes.",
|
|
82
|
+
],
|
|
83
|
+
returns: "confirmation et fiche de l'achat créé.",
|
|
84
|
+
}),
|
|
72
85
|
inputSchema: PurchaseCreateSchema,
|
|
73
86
|
annotations: {
|
|
74
87
|
readOnlyHint: false,
|
|
@@ -103,7 +116,11 @@ Returns: Liste des achats correspondants.`,
|
|
|
103
116
|
// Delete purchase — via la factory pour l'élicitation de confirmation + structuredContent
|
|
104
117
|
registerDeleteTool(server, { entityName: "achat", entityNamePlural: "achats", apiPath: "/purchases", prefix: "boond_purchases" }, {
|
|
105
118
|
title: "Supprimer un achat/sous-traitance",
|
|
106
|
-
description:
|
|
119
|
+
description: defaultDeleteDescription({
|
|
120
|
+
entityName: "achat",
|
|
121
|
+
entityNamePlural: "achats",
|
|
122
|
+
prefix: "boond_purchases",
|
|
123
|
+
}),
|
|
107
124
|
});
|
|
108
125
|
}
|
|
109
126
|
//# sourceMappingURL=purchases.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"purchases.js","sourceRoot":"","sources":["../../src/tools/purchases.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EACL,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"purchases.js","sourceRoot":"","sources":["../../src/tools/purchases.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,12 @@ import type { DomainName } from "../constants.js";
|
|
|
8
8
|
*
|
|
9
9
|
* 1. enrich `*_search` input schemas with filter-correction messages
|
|
10
10
|
* (`validation-wrapper.ts`);
|
|
11
|
-
* 2.
|
|
11
|
+
* 2. disclose the semantics of `fields` / `page` / `pageSize` on the tools
|
|
12
|
+
* that declare them (`parameter-disclosure.ts`) — facts a JSON Schema
|
|
13
|
+
* cannot carry, on ~32 tools spread over as many files;
|
|
14
|
+
* 3. backfill the "when / rather than" guidance on the hand-rolled tools
|
|
15
|
+
* (`usage-guidance.ts`), which the composed templates already carry;
|
|
16
|
+
* 4. record `tool name → domain` so the icon layer can attach the right
|
|
12
17
|
* domain icon without parsing tool names (`icons.ts`).
|
|
13
18
|
*
|
|
14
19
|
* Deliberately NOT merged into `withPolicy`: that wrapper has a fast path
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registration-decorators.d.ts","sourceRoot":"","sources":["../../src/tools/registration-decorators.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"registration-decorators.d.ts","sourceRoot":"","sources":["../../src/tools/registration-decorators.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAKlD;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,WAAW,iBAAiB;IAChC;;;;;OAKG;IACH,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CACtC;AAED,wBAAgB,uBAAuB,IAAI,iBAAiB,CAE3D;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAyBjH"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { withValidationFeedback } from "./validation-wrapper.js";
|
|
2
|
+
import { withParameterDisclosure } from "./parameter-disclosure.js";
|
|
3
|
+
import { withUsageGuidance } from "./usage-guidance.js";
|
|
2
4
|
export function createRegistrationIndex() {
|
|
3
5
|
return { toolDomains: new Map() };
|
|
4
6
|
}
|
|
@@ -19,7 +21,12 @@ export function decorateRegistrations(server, domain, index) {
|
|
|
19
21
|
const name = args[0];
|
|
20
22
|
const config = args[1];
|
|
21
23
|
index?.toolDomains.set(name, domain);
|
|
22
|
-
|
|
24
|
+
// Order matters: the disclosure reads the schema shape the tool
|
|
25
|
+
// declared, so it must run before `withValidationFeedback` rebuilds
|
|
26
|
+
// that schema with its own error messages.
|
|
27
|
+
const decorated = config === undefined
|
|
28
|
+
? config
|
|
29
|
+
: withValidationFeedback(name, withUsageGuidance(name, withParameterDisclosure(config, name)), domain);
|
|
23
30
|
return value.apply(target, [name, decorated, ...args.slice(2)]);
|
|
24
31
|
};
|
|
25
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registration-decorators.js","sourceRoot":"","sources":["../../src/tools/registration-decorators.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"registration-decorators.js","sourceRoot":"","sources":["../../src/tools/registration-decorators.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAiCxD,MAAM,UAAU,uBAAuB;IACrC,OAAO,EAAE,WAAW,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;AACpC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAiB,EAAE,MAAkB,EAAE,KAAyB;IACpG,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;QACvB,GAAG,CAAC,MAAM,EAAE,IAAI;YACd,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAY,CAAC;YAC3D,IAAI,OAAO,KAAK,KAAK,UAAU;gBAAE,OAAO,KAAK,CAAC;YAE9C,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;gBAC5B,OAAO,CAAC,GAAG,IAAe,EAAE,EAAE;oBAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAW,CAAC;oBAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAgE,CAAC;oBACtF,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;oBACrC,gEAAgE;oBAChE,oEAAoE;oBACpE,2CAA2C;oBAC3C,MAAM,SAAS,GACb,MAAM,KAAK,SAAS;wBAClB,CAAC,CAAC,MAAM;wBACR,CAAC,CAAC,sBAAsB,CAAC,IAAI,EAAE,iBAAiB,CAAC,IAAI,EAAE,uBAAuB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;oBAC3G,OAAQ,KAAsC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpG,CAAC,CAAC;YACJ,CAAC;YAED,OAAQ,KAAsC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9D,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|