boondmanager-mcp-server 2.14.0 → 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/schemas/index.d.ts +11 -11
- package/dist/schemas/index.d.ts.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 +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deliveries.js","sourceRoot":"","sources":["../../src/tools/deliveries.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACrE,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,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"deliveries.js","sourceRoot":"","sources":["../../src/tools/deliveries.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool-description composition.
|
|
3
|
+
*
|
|
4
|
+
* A tool description is read by a model that has never seen this API, in a
|
|
5
|
+
* `tools/list` payload holding 181 siblings. What it has to answer, in order:
|
|
6
|
+
* *what does this do*, *should I call it or a neighbour*, *what will happen*,
|
|
7
|
+
* *what comes back*. Nothing else earns its bytes — a paraphrase of a schema
|
|
8
|
+
* the client already received costs context and buys nothing, so the builders
|
|
9
|
+
* below never restate `.describe()`-d parameters. The one exception is
|
|
10
|
+
* search-filter guidance, where the *vocabulary* (which of `states` /
|
|
11
|
+
* `candidateStates` / `resourceStates` this endpoint accepts) is the whole
|
|
12
|
+
* difficulty and lives per-endpoint in `src/schemas/index.ts`.
|
|
13
|
+
*
|
|
14
|
+
* Why a builder rather than 182 hand-written strings: the weak half of the
|
|
15
|
+
* catalogue is the reference/admin domains, which are registered through
|
|
16
|
+
* `crud-factory.ts` and therefore share five templates. Fixing the templates
|
|
17
|
+
* fixes ~120 tools at once and keeps them consistent, which is exactly what a
|
|
18
|
+
* model needs to tell siblings apart. The facts that MUST NOT drift
|
|
19
|
+
* (pagination ceilings, `fields` semantics) are interpolated from
|
|
20
|
+
* `constants.ts`, not retyped — the previous hand-written template announced
|
|
21
|
+
* `pageSize (défaut: 20, max: 100)` against a schema enforcing
|
|
22
|
+
* 30/500 and shipped that contradiction to 11 domains.
|
|
23
|
+
*/
|
|
24
|
+
export interface ToolDescriptionSpec {
|
|
25
|
+
/**
|
|
26
|
+
* Front-loaded purpose: verb + resource + scope, one sentence. This is the
|
|
27
|
+
* only part guaranteed to be read when the catalogue is long, so it must be
|
|
28
|
+
* enough to shortlist or discard the tool on its own.
|
|
29
|
+
*/
|
|
30
|
+
purpose: string;
|
|
31
|
+
/** When this tool is the right call. */
|
|
32
|
+
when?: string;
|
|
33
|
+
/**
|
|
34
|
+
* When it is NOT, naming the tool to use instead. Omit only for a tool with
|
|
35
|
+
* genuinely no neighbour — a vague "see other tools" is worse than silence.
|
|
36
|
+
*/
|
|
37
|
+
instead?: string;
|
|
38
|
+
/**
|
|
39
|
+
* Behaviour a caller cannot infer from the schema or the annotations:
|
|
40
|
+
* side effects, replace-vs-merge semantics, server-side clamping,
|
|
41
|
+
* confirmation prompts, silently ignored fields.
|
|
42
|
+
*/
|
|
43
|
+
behaviour?: string[];
|
|
44
|
+
/** Endpoint-specific filter vocabulary / usage detail (search tools). */
|
|
45
|
+
details?: string;
|
|
46
|
+
/** What the call returns, in the shape the caller will actually receive. */
|
|
47
|
+
returns: string;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Render a spec into the catalogue's uniform layout. Sections are omitted when
|
|
51
|
+
* empty rather than emitted blank, so a two-line reference tool stays two
|
|
52
|
+
* lines.
|
|
53
|
+
*/
|
|
54
|
+
export declare function composeDescription(spec: ToolDescriptionSpec): string;
|
|
55
|
+
/**
|
|
56
|
+
* The pagination contract, worded from `constants.ts`. `page` is capped rather
|
|
57
|
+
* than clamped — the schema *rejects* a higher page so the model refines its
|
|
58
|
+
* filters instead of walking 50 000 records (see `MAX_SEARCH_PAGE`).
|
|
59
|
+
*/
|
|
60
|
+
export declare const PAGINATION_DISCLOSURE: string;
|
|
61
|
+
/**
|
|
62
|
+
* The opposite contract, for the reference routes that accept `maxResults` and
|
|
63
|
+
* discard it (see `TOOLS_IGNORING_PAGINATION`, measured against the live API).
|
|
64
|
+
* Says the two things a caller acts on: asking for fewer rows changes nothing,
|
|
65
|
+
* and there is no second page to fetch.
|
|
66
|
+
*
|
|
67
|
+
* Stating the ceiling on these tools would be the same defect the catalogue
|
|
68
|
+
* just removed — a description promising behaviour the endpoint does not have.
|
|
69
|
+
*/
|
|
70
|
+
export declare const PAGINATION_INERT_DISCLOSURE: string;
|
|
71
|
+
/**
|
|
72
|
+
* `fields` is the catalogue's main token-economy lever and is invisible in the
|
|
73
|
+
* schema alone: the name list is applied *client-side* to the response, is
|
|
74
|
+
* never forwarded to BoondManager, and silently ignores names the entity does
|
|
75
|
+
* not carry. A model that does not know this either never uses it or expects
|
|
76
|
+
* it to filter server-side.
|
|
77
|
+
*
|
|
78
|
+
* Kept deliberately terse. `SERVER_INSTRUCTIONS` already states the rule once
|
|
79
|
+
* for the whole session, and this repeats it on 32 tools — a duplication the
|
|
80
|
+
* project otherwise avoids on purpose (see `fieldsField` in
|
|
81
|
+
* `src/schemas/index.ts`, terse for the same reason). It is here because a
|
|
82
|
+
* tool-definition scorer, and a client that lists tools without ever reading
|
|
83
|
+
* `instructions`, both see the tool in isolation; every word is therefore paid
|
|
84
|
+
* 32 times, so it stays at the shortest form that still says *client-side*,
|
|
85
|
+
* *never sent*, and *silently ignored*.
|
|
86
|
+
*/
|
|
87
|
+
export declare const FIELDS_DISCLOSURE: string;
|
|
88
|
+
export interface EntityWording {
|
|
89
|
+
/** Singular, lowercase — "candidat", "compte utilisateur". */
|
|
90
|
+
entityName: string;
|
|
91
|
+
/** Plural, lowercase — "candidats", "comptes utilisateurs". */
|
|
92
|
+
entityNamePlural: string;
|
|
93
|
+
/** Tool-name prefix — "boond_candidates". */
|
|
94
|
+
prefix: string;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Default search description for a reference/admin domain: no endpoint-specific
|
|
98
|
+
* filter vocabulary, so the value it adds over the schema is the pointer to the
|
|
99
|
+
* matching `_get` and the shape of what comes back.
|
|
100
|
+
*
|
|
101
|
+
* It deliberately does **not** state the pagination or `fields` contracts.
|
|
102
|
+
* Those are appended by `withParameterDisclosure`, which is the single source
|
|
103
|
+
* for both — and has to be, because the right pagination sentence depends on
|
|
104
|
+
* the *route*: four reference endpoints accept `maxResults` and discard it
|
|
105
|
+
* (`TOOLS_IGNORING_PAGINATION`), so a template that hard-coded the ceiling
|
|
106
|
+
* would make a promise the endpoint breaks, and would suppress the correct
|
|
107
|
+
* wording by having already mentioned `pageSize`.
|
|
108
|
+
*/
|
|
109
|
+
export declare function defaultSearchDescription(opts: EntityWording): string;
|
|
110
|
+
/** Default detail description; `withTab` mirrors `registerGetTool`. */
|
|
111
|
+
export declare function defaultGetDescription(opts: EntityWording & {
|
|
112
|
+
withTab: boolean;
|
|
113
|
+
}): string;
|
|
114
|
+
export declare function defaultCreateDescription(opts: EntityWording): string;
|
|
115
|
+
export declare function defaultUpdateDescription(opts: EntityWording): string;
|
|
116
|
+
export declare function defaultDeleteDescription(opts: EntityWording): string;
|
|
117
|
+
export interface TabDescriptionSpec extends EntityWording {
|
|
118
|
+
/** Human name of the tab's content — "profil technique", "actions". */
|
|
119
|
+
subject: string;
|
|
120
|
+
/** What the tab actually holds, parenthetical-style detail. Omit when the subject already says it. */
|
|
121
|
+
content?: string;
|
|
122
|
+
/** What comes back. */
|
|
123
|
+
returns: string;
|
|
124
|
+
/** Extra behavioural facts, if any. */
|
|
125
|
+
behaviour?: string[];
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Tab tools are the catalogue's biggest disambiguation risk: 48 of them, all
|
|
129
|
+
* taking a bare `id`, all returning "some fields of one entity". The
|
|
130
|
+
* description therefore has to state which slice this one holds *and* that the
|
|
131
|
+
* generic `_get` with `tab` reaches the same data — otherwise a model picks by
|
|
132
|
+
* name similarity.
|
|
133
|
+
*/
|
|
134
|
+
export declare function tabDescription(spec: TabDescriptionSpec): string;
|
|
135
|
+
//# sourceMappingURL=description-builders.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"description-builders.d.ts","sourceRoot":"","sources":["../../src/tools/description-builders.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4EAA4E;IAC5E,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,CAgBpE;AAID;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,QAEuC,CAAC;AAE1E;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B,QAE+C,CAAC;AAExF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,iBAAiB,QAEiD,CAAC;AAIhF,MAAM,WAAW,aAAa;IAC5B,8DAA8D;IAC9D,UAAU,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,gBAAgB,EAAE,MAAM,CAAC;IACzB,6CAA6C;IAC7C,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAOpE;AAED,uEAAuE;AACvE,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,aAAa,GAAG;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAiBxF;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAWpE;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAWpE;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAWpE;AAID,MAAM,WAAW,kBAAmB,SAAQ,aAAa;IACvD,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC;IAChB,sGAAsG;IACtG,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uBAAuB;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAS/D"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { DEFAULT_PAGE_SIZE, MAX_PAGE_SIZE, MAX_SEARCH_PAGE } from "../constants.js";
|
|
2
|
+
/**
|
|
3
|
+
* Render a spec into the catalogue's uniform layout. Sections are omitted when
|
|
4
|
+
* empty rather than emitted blank, so a two-line reference tool stays two
|
|
5
|
+
* lines.
|
|
6
|
+
*/
|
|
7
|
+
export function composeDescription(spec) {
|
|
8
|
+
const blocks = [spec.purpose.trim()];
|
|
9
|
+
const guidance = [];
|
|
10
|
+
if (spec.when)
|
|
11
|
+
guidance.push(`Quand : ${spec.when.trim()}`);
|
|
12
|
+
if (spec.instead)
|
|
13
|
+
guidance.push(`Plutôt que : ${spec.instead.trim()}`);
|
|
14
|
+
if (guidance.length > 0)
|
|
15
|
+
blocks.push(guidance.join("\n"));
|
|
16
|
+
if (spec.details)
|
|
17
|
+
blocks.push(spec.details.trim());
|
|
18
|
+
const behaviour = (spec.behaviour ?? []).map((b) => b.trim()).filter((b) => b.length > 0);
|
|
19
|
+
if (behaviour.length > 0)
|
|
20
|
+
blocks.push(behaviour.map((b) => `- ${b}`).join("\n"));
|
|
21
|
+
blocks.push(`Returns : ${spec.returns.trim()}`);
|
|
22
|
+
return blocks.join("\n\n");
|
|
23
|
+
}
|
|
24
|
+
// ---- Facts that must never drift out of sync with the schemas -------------
|
|
25
|
+
/**
|
|
26
|
+
* The pagination contract, worded from `constants.ts`. `page` is capped rather
|
|
27
|
+
* than clamped — the schema *rejects* a higher page so the model refines its
|
|
28
|
+
* filters instead of walking 50 000 records (see `MAX_SEARCH_PAGE`).
|
|
29
|
+
*/
|
|
30
|
+
export const PAGINATION_DISCLOSURE = `Pagination : \`pageSize\` 1–${MAX_PAGE_SIZE} (défaut ${DEFAULT_PAGE_SIZE}), ` +
|
|
31
|
+
`\`page\` 1–${MAX_SEARCH_PAGE} — au-delà : refus, affiner les filtres.`;
|
|
32
|
+
/**
|
|
33
|
+
* The opposite contract, for the reference routes that accept `maxResults` and
|
|
34
|
+
* discard it (see `TOOLS_IGNORING_PAGINATION`, measured against the live API).
|
|
35
|
+
* Says the two things a caller acts on: asking for fewer rows changes nothing,
|
|
36
|
+
* and there is no second page to fetch.
|
|
37
|
+
*
|
|
38
|
+
* Stating the ceiling on these tools would be the same defect the catalogue
|
|
39
|
+
* just removed — a description promising behaviour the endpoint does not have.
|
|
40
|
+
*/
|
|
41
|
+
export const PAGINATION_INERT_DISCLOSURE = "Pagination sans effet : cette route renvoie toujours la table complète, " +
|
|
42
|
+
"`pageSize` et `page` sont ignorés par l'API — inutile de paginer, tout est déjà là.";
|
|
43
|
+
/**
|
|
44
|
+
* `fields` is the catalogue's main token-economy lever and is invisible in the
|
|
45
|
+
* schema alone: the name list is applied *client-side* to the response, is
|
|
46
|
+
* never forwarded to BoondManager, and silently ignores names the entity does
|
|
47
|
+
* not carry. A model that does not know this either never uses it or expects
|
|
48
|
+
* it to filter server-side.
|
|
49
|
+
*
|
|
50
|
+
* Kept deliberately terse. `SERVER_INSTRUCTIONS` already states the rule once
|
|
51
|
+
* for the whole session, and this repeats it on 32 tools — a duplication the
|
|
52
|
+
* project otherwise avoids on purpose (see `fieldsField` in
|
|
53
|
+
* `src/schemas/index.ts`, terse for the same reason). It is here because a
|
|
54
|
+
* tool-definition scorer, and a client that lists tools without ever reading
|
|
55
|
+
* `instructions`, both see the tool in isolation; every word is therefore paid
|
|
56
|
+
* 32 times, so it stays at the shortest form that still says *client-side*,
|
|
57
|
+
* *never sent*, and *silently ignored*.
|
|
58
|
+
*/
|
|
59
|
+
export const FIELDS_DISCLOSURE = "`fields` : projection côté MCP, jamais transmise à l'API — remplace le résumé par les seuls " +
|
|
60
|
+
"attributs listés (noms inconnus ignorés). À utiliser sur les grosses pages.";
|
|
61
|
+
/**
|
|
62
|
+
* Default search description for a reference/admin domain: no endpoint-specific
|
|
63
|
+
* filter vocabulary, so the value it adds over the schema is the pointer to the
|
|
64
|
+
* matching `_get` and the shape of what comes back.
|
|
65
|
+
*
|
|
66
|
+
* It deliberately does **not** state the pagination or `fields` contracts.
|
|
67
|
+
* Those are appended by `withParameterDisclosure`, which is the single source
|
|
68
|
+
* for both — and has to be, because the right pagination sentence depends on
|
|
69
|
+
* the *route*: four reference endpoints accept `maxResults` and discard it
|
|
70
|
+
* (`TOOLS_IGNORING_PAGINATION`), so a template that hard-coded the ceiling
|
|
71
|
+
* would make a promise the endpoint breaks, and would suppress the correct
|
|
72
|
+
* wording by having already mentioned `pageSize`.
|
|
73
|
+
*/
|
|
74
|
+
export function defaultSearchDescription(opts) {
|
|
75
|
+
return composeDescription({
|
|
76
|
+
purpose: `Liste et recherche les ${opts.entityNamePlural} de BoondManager, par mots-clés et pagination.`,
|
|
77
|
+
when: `pour retrouver l'ID d'un(e) ${opts.entityName} à partir de son nom, ou pour énumérer les ${opts.entityNamePlural} existant(e)s.`,
|
|
78
|
+
instead: `\`${opts.prefix}_get\` si l'ID est déjà connu — la recherche ne renvoie qu'un résumé d'une ligne par ${opts.entityName}.`,
|
|
79
|
+
returns: `page de résumés (ID + libellé principal), plus \`structuredContent.total\` = nombre total côté BoondManager. Lecture seule.`,
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
/** Default detail description; `withTab` mirrors `registerGetTool`. */
|
|
83
|
+
export function defaultGetDescription(opts) {
|
|
84
|
+
const behaviour = [
|
|
85
|
+
`Un ID inconnu remonte l'erreur BoondManager telle quelle — l'ID doit venir de \`${opts.prefix}_search\`, jamais d'une supposition.`,
|
|
86
|
+
];
|
|
87
|
+
if (opts.withTab) {
|
|
88
|
+
behaviour.unshift("`tab` cible un onglet précis (`information`, `technical-data`, `administrative`, `actions`…) ; " +
|
|
89
|
+
"sans `tab`, seule la fiche de base est renvoyée, pas la réunion des onglets.");
|
|
90
|
+
}
|
|
91
|
+
return composeDescription({
|
|
92
|
+
purpose: `Récupère la fiche complète d'un(e) ${opts.entityName} par son ID numérique.`,
|
|
93
|
+
when: `après un \`${opts.prefix}_search\`, pour obtenir les attributs qui n'apparaissent pas dans le résumé de liste.`,
|
|
94
|
+
instead: `\`${opts.prefix}_search\` si l'ID n'est pas connu (cet outil n'accepte pas de nom).`,
|
|
95
|
+
behaviour,
|
|
96
|
+
returns: `JSON de l'entité (attributs + relations) tel que renvoyé par l'API. Lecture seule.`,
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
export function defaultCreateDescription(opts) {
|
|
100
|
+
return composeDescription({
|
|
101
|
+
purpose: `Crée un(e) ${opts.entityName} dans BoondManager.`,
|
|
102
|
+
when: `pour ajouter un(e) ${opts.entityName} inexistant(e).`,
|
|
103
|
+
instead: `\`${opts.prefix}_update\` pour modifier un enregistrement existant, et \`${opts.prefix}_search\` d'abord pour vérifier qu'il n'existe pas déjà.`,
|
|
104
|
+
behaviour: [
|
|
105
|
+
"Écriture réelle et non idempotente : deux appels identiques créent deux enregistrements (l'API ne déduplique pas).",
|
|
106
|
+
"Les ID de relations et les états/types sont des ID numériques BoondManager, à résoudre au préalable (recherches d'entités, `boond://dictionary/*`).",
|
|
107
|
+
],
|
|
108
|
+
returns: `confirmation, ID créé, et la fiche complète. \`structuredContent.id\` est réutilisable directement pour chaîner un appel.`,
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
export function defaultUpdateDescription(opts) {
|
|
112
|
+
return composeDescription({
|
|
113
|
+
purpose: `Met à jour un(e) ${opts.entityName} existant(e), identifié(e) par son ID.`,
|
|
114
|
+
when: `pour modifier quelques champs d'un enregistrement déjà en base.`,
|
|
115
|
+
instead: `\`${opts.prefix}_create\` si l'enregistrement n'existe pas encore.`,
|
|
116
|
+
behaviour: [
|
|
117
|
+
"Mise à jour partielle : seuls les champs fournis sont écrits, les autres sont laissés en place.",
|
|
118
|
+
"Attention aux champs de type tableau, qui sont **remplacés** et non fusionnés.",
|
|
119
|
+
],
|
|
120
|
+
returns: `confirmation et fiche mise à jour.`,
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
export function defaultDeleteDescription(opts) {
|
|
124
|
+
return composeDescription({
|
|
125
|
+
purpose: `Supprime définitivement un(e) ${opts.entityName} de BoondManager.`,
|
|
126
|
+
when: `uniquement sur demande explicite de l'utilisateur, et après avoir vérifié l'ID avec \`${opts.prefix}_get\`.`,
|
|
127
|
+
instead: `\`${opts.prefix}_update\` pour désactiver ou changer l'état d'un enregistrement sans le détruire — c'est presque toujours l'intention réelle.`,
|
|
128
|
+
behaviour: [
|
|
129
|
+
"⚠️ Irréversible, sans corbeille côté API.",
|
|
130
|
+
"Si le client MCP annonce la capacité `elicitation`, une confirmation est demandée à l'utilisateur final et un refus annule l'appel (`structuredContent.deleted: false` + `reason`) ; sinon la suppression part directement.",
|
|
131
|
+
],
|
|
132
|
+
returns: `\`{ id, deleted, reason? }\` — vérifier \`deleted\`, qui vaut \`false\` en cas de refus utilisateur.`,
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Tab tools are the catalogue's biggest disambiguation risk: 48 of them, all
|
|
137
|
+
* taking a bare `id`, all returning "some fields of one entity". The
|
|
138
|
+
* description therefore has to state which slice this one holds *and* that the
|
|
139
|
+
* generic `_get` with `tab` reaches the same data — otherwise a model picks by
|
|
140
|
+
* name similarity.
|
|
141
|
+
*/
|
|
142
|
+
export function tabDescription(spec) {
|
|
143
|
+
const scope = spec.content ? `${spec.subject} (${spec.content})` : spec.subject;
|
|
144
|
+
return composeDescription({
|
|
145
|
+
purpose: `Récupère ${scope} d'un(e) ${spec.entityName}, par son ID.`,
|
|
146
|
+
when: `pour ne charger que cette section, sans le reste de la fiche.`,
|
|
147
|
+
instead: `\`${spec.prefix}_get\` pour la fiche de base, ou \`${spec.prefix}_search\` si l'ID est inconnu.`,
|
|
148
|
+
behaviour: spec.behaviour,
|
|
149
|
+
returns: `${spec.returns} Lecture seule.`,
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=description-builders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"description-builders.js","sourceRoot":"","sources":["../../src/tools/description-builders.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../src/tools/documents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAazE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../src/tools/documents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAazE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAgI7D"}
|
package/dist/tools/documents.js
CHANGED
|
@@ -17,8 +17,8 @@ Où trouver les IDs de documents : dans les onglets des entités — ex. boond_c
|
|
|
17
17
|
|
|
18
18
|
Le contenu est retourné en ressource MCP embarquée (base64 pour les binaires type PDF/DOCX, texte brut pour les fichiers texte). Taille max: ${Math.round(MAX_DOCUMENT_BYTES / 1024 / 1024)} Mo — à n'utiliser que lorsque le contenu du fichier est réellement nécessaire (un CV en base64 occupe beaucoup de contexte).
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
Returns : le fichier en ressource MCP embarquée — \`blob\` base64 pour un binaire, \`text\` pour un mime texte.
|
|
21
|
+
Un ID inconnu est rejeté explicitement plutôt que de renvoyer la page d'accueil BoondManager, que l'API sert en HTTP 200 à la place d'un 404.`,
|
|
22
22
|
inputSchema: DocumentIdSchema,
|
|
23
23
|
annotations: {
|
|
24
24
|
readOnlyHint: true,
|
|
@@ -115,7 +115,11 @@ Returns: Métadonnées du document créé (ID).`,
|
|
|
115
115
|
// Delete a document — factory: élicitation de confirmation + structuredContent
|
|
116
116
|
registerDeleteTool(server, { entityName: "document", entityNamePlural: "documents", apiPath: "/documents", prefix: "boond_documents" }, {
|
|
117
117
|
title: "Supprimer un document",
|
|
118
|
-
description: `Supprime un document
|
|
118
|
+
description: `Supprime définitivement un document (CV, justificatif, pièce jointe) de BoondManager.
|
|
119
|
+
|
|
120
|
+
⚠️ Irréversible, sans corbeille côté API. Si le client MCP annonce la capacité \`elicitation\`, une confirmation est demandée à l'utilisateur final et un refus annule l'appel.
|
|
121
|
+
|
|
122
|
+
Returns : \`{ id, deleted, reason? }\` — vérifier \`deleted\`, qui vaut \`false\` en cas de refus utilisateur.`,
|
|
119
123
|
});
|
|
120
124
|
}
|
|
121
125
|
//# sourceMappingURL=documents.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documents.js","sourceRoot":"","sources":["../../src/tools/documents.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAC/F,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE7E,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE7E,kEAAkE;AAClE,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,+CAA+C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChG,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAiB;IACrD,qDAAqD;IACrD,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,KAAK,EAAE,yBAAyB;QAChC,WAAW,EAAE;;;;+IAI4H,IAAI,CAAC,KAAK,CAAC,kBAAkB,GAAG,IAAI,GAAG,IAAI,CAAC;;;
|
|
1
|
+
{"version":3,"file":"documents.js","sourceRoot":"","sources":["../../src/tools/documents.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expenses.d.ts","sourceRoot":"","sources":["../../src/tools/expenses.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"expenses.d.ts","sourceRoot":"","sources":["../../src/tools/expenses.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAkKzE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAuE5D"}
|
package/dist/tools/expenses.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ExpenseSearchSchema, ExpenseCreateSchema, ExpenseUpdateSchema, ExpenseDefaultSchema, } from "../schemas/index.js";
|
|
2
2
|
import { apiRequest } from "../services/boond-client.js";
|
|
3
3
|
import { buildJsonApiBody, registerSearchTool, registerGetTool, registerCreateTool, registerUpdateTool, registerDeleteTool, } from "./crud-factory.js";
|
|
4
|
+
import { defaultDeleteDescription } from "./description-builders.js";
|
|
4
5
|
// Expense reports are searched on /expenses but read/written on /expenses-reports.
|
|
5
6
|
const SEARCH_OPTS = {
|
|
6
7
|
entityName: "note de frais",
|
|
@@ -181,7 +182,11 @@ Returns: Données de la note de frais créée avec son ID.`,
|
|
|
181
182
|
registerUpdateTool(server, REPORT_OPTS, ExpenseUpdateSchema, buildExpenseBody, { method: "PUT" });
|
|
182
183
|
registerDeleteTool(server, REPORT_OPTS, {
|
|
183
184
|
title: "Supprimer une note de frais",
|
|
184
|
-
description:
|
|
185
|
+
description: defaultDeleteDescription({
|
|
186
|
+
entityName: "note de frais",
|
|
187
|
+
entityNamePlural: "notes de frais",
|
|
188
|
+
prefix: "boond_expenses",
|
|
189
|
+
}),
|
|
185
190
|
});
|
|
186
191
|
}
|
|
187
192
|
//# sourceMappingURL=expenses.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expenses.js","sourceRoot":"","sources":["../../src/tools/expenses.ts"],"names":[],"mappings":"AACA,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAEzD,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"expenses.js","sourceRoot":"","sources":["../../src/tools/expenses.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invoices.d.ts","sourceRoot":"","sources":["../../src/tools/invoices.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"invoices.d.ts","sourceRoot":"","sources":["../../src/tools/invoices.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA8DzE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiD5D"}
|
package/dist/tools/invoices.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { InvoiceSearchSchema, InvoiceCreateSchema, InvoiceUpdateSchema } from "../schemas/index.js";
|
|
2
2
|
import { apiRequest, buildSearchQuery, formatListResponse } from "../services/boond-client.js";
|
|
3
3
|
import { buildJsonApiBody, buildListStructured, SearchOutputSchema, registerGetTool, registerCreateTool, registerUpdateTool, registerDeleteTool, } from "./crud-factory.js";
|
|
4
|
+
import { defaultDeleteDescription } from "./description-builders.js";
|
|
4
5
|
const OPTS = {
|
|
5
6
|
entityName: "facture",
|
|
6
7
|
entityNamePlural: "factures",
|
|
@@ -47,7 +48,9 @@ export function registerInvoiceTools(server) {
|
|
|
47
48
|
// search does not model.
|
|
48
49
|
server.registerTool("boond_invoices_search", {
|
|
49
50
|
title: "Rechercher des factures",
|
|
50
|
-
description:
|
|
51
|
+
description: `Liste et recherche les factures client, par société, projet, état ou période.
|
|
52
|
+
|
|
53
|
+
Returns : page de résumés (référence, date, montants HT/TTC, état). Lecture seule.`,
|
|
51
54
|
inputSchema: InvoiceSearchSchema,
|
|
52
55
|
outputSchema: SearchOutputSchema,
|
|
53
56
|
annotations: {
|
|
@@ -79,7 +82,11 @@ export function registerInvoiceTools(server) {
|
|
|
79
82
|
});
|
|
80
83
|
registerDeleteTool(server, OPTS, {
|
|
81
84
|
title: "Supprimer une facture",
|
|
82
|
-
description:
|
|
85
|
+
description: defaultDeleteDescription({
|
|
86
|
+
entityName: "facture",
|
|
87
|
+
entityNamePlural: "factures",
|
|
88
|
+
prefix: "boond_invoices",
|
|
89
|
+
}),
|
|
83
90
|
});
|
|
84
91
|
}
|
|
85
92
|
//# sourceMappingURL=invoices.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invoices.js","sourceRoot":"","sources":["../../src/tools/invoices.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACpG,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC/F,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"invoices.js","sourceRoot":"","sources":["../../src/tools/invoices.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../src/tools/notifications.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../src/tools/notifications.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAYzE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAuDjE"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { IdSchema, NotificationSearchSchema } from "../schemas/index.js";
|
|
2
2
|
import { apiRequest, apiSearch, buildSearchQuery, formatListResponse, formatDetailResponse, } from "../services/boond-client.js";
|
|
3
3
|
import { progressReporterFrom } from "../services/progress.js";
|
|
4
|
+
import { defaultGetDescription } from "./description-builders.js";
|
|
4
5
|
export function registerNotificationTools(server) {
|
|
5
6
|
server.registerTool("boond_notifications_search", {
|
|
6
7
|
title: "Rechercher des notifications",
|
|
@@ -30,7 +31,10 @@ Returns: Liste des notifications correspondantes.`,
|
|
|
30
31
|
});
|
|
31
32
|
server.registerTool("boond_notifications_get", {
|
|
32
33
|
title: "Détails d'une notification",
|
|
33
|
-
description:
|
|
34
|
+
description: defaultGetDescription({
|
|
35
|
+
...{ entityName: "notification", entityNamePlural: "notifications", prefix: "boond_notifications" },
|
|
36
|
+
withTab: false,
|
|
37
|
+
}),
|
|
34
38
|
inputSchema: IdSchema,
|
|
35
39
|
annotations: {
|
|
36
40
|
readOnlyHint: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifications.js","sourceRoot":"","sources":["../../src/tools/notifications.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EACL,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"notifications.js","sourceRoot":"","sources":["../../src/tools/notifications.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EACL,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAElE,MAAM,UAAU,yBAAyB,CAAC,MAAiB;IACzD,MAAM,CAAC,YAAY,CACjB,4BAA4B,EAC5B;QACE,KAAK,EAAE,8BAA8B;QACrC,WAAW,EAAE;;;;;;;;;kDAS+B;QAC5C,WAAW,EAAE,wBAAwB;QACrC,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;SACpB;KACF,EACD,KAAK,EAAE,MAAM,EAAE,KAAc,EAAE,EAAE;QAC/B,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,gBAAgB,EAAE,KAAK,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC;QACvF,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,kBAAkB,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;SACxG,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,yBAAyB,EACzB;QACE,KAAK,EAAE,4BAA4B;QACnC,WAAW,EAAE,qBAAqB,CAAC;YACjC,GAAG,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,EAAE,qBAAqB,EAAE;YACnG,OAAO,EAAE,KAAK;SACf,CAAC;QACF,WAAW,EAAE,QAAQ;QACrB,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,kBAAkB,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QACjE,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAAC;SAC3E,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opportunities.d.ts","sourceRoot":"","sources":["../../src/tools/opportunities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"opportunities.d.ts","sourceRoot":"","sources":["../../src/tools/opportunities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA+GzE,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAoBhE"}
|