@stratta/mcp 0.13.1 → 0.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/README.md +47 -28
- package/dist/confirm.d.ts +10 -1
- package/dist/confirm.js +46 -24
- package/dist/errors.js +40 -0
- package/dist/tools/catalog.gen.js +380 -2
- package/dist/tools/dossier.d.ts +136 -0
- package/dist/tools/dossier.js +282 -0
- package/dist/tools/ingest.d.ts +4 -0
- package/dist/tools/ingest.js +12 -3
- package/dist/tools/site.d.ts +46 -0
- package/dist/tools/site.js +121 -1
- package/package.json +1 -1
- package/skills/consult-stratta/SKILL.md +1 -1
|
@@ -252,6 +252,136 @@ export const CATALOG = [
|
|
|
252
252
|
"siteId": "Site id returned by scan_site."
|
|
253
253
|
}
|
|
254
254
|
},
|
|
255
|
+
{
|
|
256
|
+
"name": "list_sites",
|
|
257
|
+
"title": "Site sheets",
|
|
258
|
+
"description": "List the site sheets of the organization, most recently touched first, each with the dossier it belongs to, the municipality and canton, the search radius and the status of its current scan. Call it when the user names a site or an address rather than a dossier, or to find the siteId of a sheet opened from the app; a dossier row from list_dossiers also carries its siteId.",
|
|
259
|
+
"annotations": {
|
|
260
|
+
"readOnlyHint": true,
|
|
261
|
+
"destructiveHint": false,
|
|
262
|
+
"idempotentHint": true,
|
|
263
|
+
"openWorldHint": false
|
|
264
|
+
},
|
|
265
|
+
"transports": [
|
|
266
|
+
"stdio",
|
|
267
|
+
"remote"
|
|
268
|
+
],
|
|
269
|
+
"params": {
|
|
270
|
+
"limit": "How many sites to return, 1 to 200. Default 50; truncated says when more exist."
|
|
271
|
+
}
|
|
272
|
+
},
|
|
273
|
+
{
|
|
274
|
+
"name": "get_site",
|
|
275
|
+
"title": "Read a site sheet",
|
|
276
|
+
"description": "Read a site sheet as the app shows it: every fact with its stable key, its status (established, indicative, absent, uncovered), its source with the date the data was current, the official notice and attribution when the source carries one, and the scan with each source and whether it answered. get_site_context is the summary shaped for an answer; call this when you need to quote a source line, cite a fact key in save_finding, or tell the user which source failed. Facts are registers, never a geotechnical study.",
|
|
277
|
+
"annotations": {
|
|
278
|
+
"readOnlyHint": true,
|
|
279
|
+
"destructiveHint": false,
|
|
280
|
+
"idempotentHint": true,
|
|
281
|
+
"openWorldHint": false
|
|
282
|
+
},
|
|
283
|
+
"transports": [
|
|
284
|
+
"stdio",
|
|
285
|
+
"remote"
|
|
286
|
+
],
|
|
287
|
+
"params": {
|
|
288
|
+
"siteId": "Site id from scan_site, list_sites or a dossier row."
|
|
289
|
+
}
|
|
290
|
+
},
|
|
291
|
+
{
|
|
292
|
+
"name": "get_site_section",
|
|
293
|
+
"title": "Read the section",
|
|
294
|
+
"description": "Read the geological section drawn on a site sheet: the axis from A to B, the corridor width, the measured terrain line, the modelled bedrock top, the geology bands sampled along the axis, and the boreholes inside the corridor with their logged strata, projected on the axis. Call it when the question is about what lies along a line rather than at a point. Without an axis drawn in the app, it says so and returns no lines. Nothing is interpolated between boreholes.",
|
|
295
|
+
"annotations": {
|
|
296
|
+
"readOnlyHint": true,
|
|
297
|
+
"destructiveHint": false,
|
|
298
|
+
"idempotentHint": true,
|
|
299
|
+
"openWorldHint": false
|
|
300
|
+
},
|
|
301
|
+
"transports": [
|
|
302
|
+
"stdio",
|
|
303
|
+
"remote"
|
|
304
|
+
],
|
|
305
|
+
"params": {
|
|
306
|
+
"siteId": "Site id from scan_site, list_sites or a dossier row.",
|
|
307
|
+
"maxPoints": "How many points of the terrain and bedrock lines to return, evenly spaced, 2 to 200. Default 60."
|
|
308
|
+
}
|
|
309
|
+
},
|
|
310
|
+
{
|
|
311
|
+
"name": "list_site_overlays",
|
|
312
|
+
"title": "Map areas around a site",
|
|
313
|
+
"description": "List the areas the site map draws around the point: polluted sites, natural hazard zones and water protection sectors read from the canton, each with whether it covers the site point or how many metres away it stops, its area and its layer. Coordinates are left out unless asked for. Call it after get_site_context when a constraint is near and the user asks how near; the sheet answers at the point, this answers in the radius.",
|
|
314
|
+
"annotations": {
|
|
315
|
+
"readOnlyHint": true,
|
|
316
|
+
"destructiveHint": false,
|
|
317
|
+
"idempotentHint": true,
|
|
318
|
+
"openWorldHint": false
|
|
319
|
+
},
|
|
320
|
+
"transports": [
|
|
321
|
+
"stdio",
|
|
322
|
+
"remote"
|
|
323
|
+
],
|
|
324
|
+
"params": {
|
|
325
|
+
"siteId": "Site id from scan_site, list_sites or a dossier row.",
|
|
326
|
+
"includeGeometry": "Return the polygon rings in LV95 as well. Default false: rings run to hundreds of points."
|
|
327
|
+
}
|
|
328
|
+
},
|
|
329
|
+
{
|
|
330
|
+
"name": "get_groundwater_contours",
|
|
331
|
+
"title": "Piezometric contours",
|
|
332
|
+
"description": "Read the cantonal piezometric contours the scan stored around a site: for each contour the aquifer name, the water table elevation in metres above sea level and the source layer. Cantons that publish none return an empty list and say whether the reading happened. A contour is the canton's interpretation of an aquifer, not a measurement at the site: prefer a water table logged in a nearby borehole (get_boreholes) when one exists, and quote a contour with its name.",
|
|
333
|
+
"annotations": {
|
|
334
|
+
"readOnlyHint": true,
|
|
335
|
+
"destructiveHint": false,
|
|
336
|
+
"idempotentHint": true,
|
|
337
|
+
"openWorldHint": false
|
|
338
|
+
},
|
|
339
|
+
"transports": [
|
|
340
|
+
"stdio",
|
|
341
|
+
"remote"
|
|
342
|
+
],
|
|
343
|
+
"params": {
|
|
344
|
+
"siteId": "Site id from scan_site, list_sites or a dossier row.",
|
|
345
|
+
"includeGeometry": "Return the contour vertices in LV95 as well. Default false."
|
|
346
|
+
}
|
|
347
|
+
},
|
|
348
|
+
{
|
|
349
|
+
"name": "list_site_photos",
|
|
350
|
+
"title": "Site photos",
|
|
351
|
+
"description": "List the photos the engineer uploaded on a site sheet: name, position in LV95 when the photo carries one (from its EXIF data or placed by hand), shooting direction, the instant the camera recorded, and the note written on it. No image is returned and no link: the photo is looked at in the app. Call it to know what was observed on site and when, before writing an observation.",
|
|
352
|
+
"annotations": {
|
|
353
|
+
"readOnlyHint": true,
|
|
354
|
+
"destructiveHint": false,
|
|
355
|
+
"idempotentHint": true,
|
|
356
|
+
"openWorldHint": false
|
|
357
|
+
},
|
|
358
|
+
"transports": [
|
|
359
|
+
"stdio",
|
|
360
|
+
"remote"
|
|
361
|
+
],
|
|
362
|
+
"params": {
|
|
363
|
+
"siteId": "Site id from scan_site, list_sites or a dossier row."
|
|
364
|
+
}
|
|
365
|
+
},
|
|
366
|
+
{
|
|
367
|
+
"name": "list_site_neighbours",
|
|
368
|
+
"title": "Neighbouring projects",
|
|
369
|
+
"description": "List the other site sheets of the organization within a radius of this one, nearest first, with the distance, the geological unit their own scan established and whether it is the same as here, and the dossier that carries them with its counts of open and decided questions. This is what the public registers cannot say: the office already worked three hundred metres away. Nothing is interpolated: these are links to dossiers to reload, not values.",
|
|
370
|
+
"annotations": {
|
|
371
|
+
"readOnlyHint": true,
|
|
372
|
+
"destructiveHint": false,
|
|
373
|
+
"idempotentHint": true,
|
|
374
|
+
"openWorldHint": false
|
|
375
|
+
},
|
|
376
|
+
"transports": [
|
|
377
|
+
"stdio",
|
|
378
|
+
"remote"
|
|
379
|
+
],
|
|
380
|
+
"params": {
|
|
381
|
+
"siteId": "Site id from scan_site, list_sites or a dossier row.",
|
|
382
|
+
"radius": "How far to look, in metres, 50 to 5000. Default 500. At most twelve neighbours are returned."
|
|
383
|
+
}
|
|
384
|
+
},
|
|
255
385
|
{
|
|
256
386
|
"name": "list_dossiers",
|
|
257
387
|
"title": "Project dossiers",
|
|
@@ -517,6 +647,253 @@ export const CATALOG = [
|
|
|
517
647
|
"templateId": "The template, from list_templates."
|
|
518
648
|
}
|
|
519
649
|
},
|
|
650
|
+
{
|
|
651
|
+
"name": "list_questions",
|
|
652
|
+
"title": "Questions of a dossier",
|
|
653
|
+
"description": "List the questions of one dossier, one page at a time, with what the dossier page shows and load_dossier leaves out: status, assignee, due date, author, dates, the options with their ids and the title of the decision when there is one. Filter by status to read only what is still open. Use load_dossier to resume a project; use this to work through the questions one by one, then get_question on the one that matters. When nextCursor is present, call again with it as cursor.",
|
|
654
|
+
"annotations": {
|
|
655
|
+
"readOnlyHint": true,
|
|
656
|
+
"destructiveHint": false,
|
|
657
|
+
"idempotentHint": true,
|
|
658
|
+
"openWorldHint": false
|
|
659
|
+
},
|
|
660
|
+
"transports": [
|
|
661
|
+
"stdio",
|
|
662
|
+
"remote"
|
|
663
|
+
],
|
|
664
|
+
"params": {
|
|
665
|
+
"dossierId": "Dossier id from list_dossiers, open_dossier or load_dossier.",
|
|
666
|
+
"status": "open, decided or closed. Omit for all.",
|
|
667
|
+
"limit": "Questions per page, 1 to 200. Default 50.",
|
|
668
|
+
"cursor": "The nextCursor of the previous page."
|
|
669
|
+
}
|
|
670
|
+
},
|
|
671
|
+
{
|
|
672
|
+
"name": "get_question",
|
|
673
|
+
"title": "Read a question",
|
|
674
|
+
"description": "Read one question in full: its wording, status, assignee and due date, its options with their ids and descriptions, its decision, its evidence with every citation field (norm, section path, page, edition, attachment and page) and the option each piece argues for, and the comments left on the question and on those entries, each with its author. Evidence comes one page at a time; when nextCursor is present, call again with it as cursor. Call it before adding to a question, so nothing already filed is filed twice.",
|
|
675
|
+
"annotations": {
|
|
676
|
+
"readOnlyHint": true,
|
|
677
|
+
"destructiveHint": false,
|
|
678
|
+
"idempotentHint": true,
|
|
679
|
+
"openWorldHint": false
|
|
680
|
+
},
|
|
681
|
+
"transports": [
|
|
682
|
+
"stdio",
|
|
683
|
+
"remote"
|
|
684
|
+
],
|
|
685
|
+
"params": {
|
|
686
|
+
"questionId": "Question id from list_questions, load_dossier or open_question.",
|
|
687
|
+
"limit": "Evidence entries per page, 1 to 200. Default 50.",
|
|
688
|
+
"cursor": "The nextCursor of the previous page."
|
|
689
|
+
}
|
|
690
|
+
},
|
|
691
|
+
{
|
|
692
|
+
"name": "get_dossier_activity",
|
|
693
|
+
"title": "Dossier history",
|
|
694
|
+
"description": "Read the history of a dossier, most recent first: who did what and when, from the app or from an agent, each line with the question or the entry it concerns. Call it when the user asks what changed since they last looked, or who took a decision. One page at a time; when nextCursor is present, call again with it as cursor. Lines are written in French at the time of the act, as the app shows them.",
|
|
695
|
+
"annotations": {
|
|
696
|
+
"readOnlyHint": true,
|
|
697
|
+
"destructiveHint": false,
|
|
698
|
+
"idempotentHint": true,
|
|
699
|
+
"openWorldHint": false
|
|
700
|
+
},
|
|
701
|
+
"transports": [
|
|
702
|
+
"stdio",
|
|
703
|
+
"remote"
|
|
704
|
+
],
|
|
705
|
+
"params": {
|
|
706
|
+
"dossierId": "Dossier id from list_dossiers, open_dossier or load_dossier.",
|
|
707
|
+
"limit": "Lines per page, 1 to 200. Default 50.",
|
|
708
|
+
"cursor": "The nextCursor of the previous page."
|
|
709
|
+
}
|
|
710
|
+
},
|
|
711
|
+
{
|
|
712
|
+
"name": "list_exports",
|
|
713
|
+
"title": "Dossier exports",
|
|
714
|
+
"description": "List the verification notes and journals exported from a dossier, most recent first, each with its kind, its SHA-256 hash, its size, the trusted timestamp when one was obtained, the methodology version in force and who exported it. The file itself is downloaded from the dossier page; this tells the user whether a note exists and lets them check a hash they were sent.",
|
|
715
|
+
"annotations": {
|
|
716
|
+
"readOnlyHint": true,
|
|
717
|
+
"destructiveHint": false,
|
|
718
|
+
"idempotentHint": true,
|
|
719
|
+
"openWorldHint": false
|
|
720
|
+
},
|
|
721
|
+
"transports": [
|
|
722
|
+
"stdio",
|
|
723
|
+
"remote"
|
|
724
|
+
],
|
|
725
|
+
"params": {
|
|
726
|
+
"dossierId": "Dossier id from list_dossiers, open_dossier or load_dossier."
|
|
727
|
+
}
|
|
728
|
+
},
|
|
729
|
+
{
|
|
730
|
+
"name": "update_question",
|
|
731
|
+
"title": "Edit a question",
|
|
732
|
+
"description": "Reword a question, rewrite what is at stake, assign it to a member of the organization by e-mail address, or set its due date. Pass only the fields to change; pass null to clear the assignee or the due date. Status changes go through record_decision and resolve_question, not here. Only when the user asked for the change.",
|
|
733
|
+
"annotations": {
|
|
734
|
+
"readOnlyHint": false,
|
|
735
|
+
"destructiveHint": false,
|
|
736
|
+
"idempotentHint": true,
|
|
737
|
+
"openWorldHint": false
|
|
738
|
+
},
|
|
739
|
+
"transports": [
|
|
740
|
+
"stdio",
|
|
741
|
+
"remote"
|
|
742
|
+
],
|
|
743
|
+
"params": {
|
|
744
|
+
"questionId": "Question id from list_questions, load_dossier or open_question.",
|
|
745
|
+
"title": "The new wording, in one line, phrased as a question.",
|
|
746
|
+
"body": "What is at stake and why it is not settled, in two or three sentences.",
|
|
747
|
+
"assigneeEmail": "E-mail address of the member to assign the question to. null removes the assignee.",
|
|
748
|
+
"dueAt": "Due date as an ISO day, e.g. \"2026-10-15\". null removes it."
|
|
749
|
+
}
|
|
750
|
+
},
|
|
751
|
+
{
|
|
752
|
+
"name": "add_option",
|
|
753
|
+
"title": "Add an option",
|
|
754
|
+
"description": "Add one way of settling a question, when a new variant comes up after the question was opened: \"keep the pile and test it\", \"redistribute on P37 and P39\". Idempotent on the name: the same words return the option already listed. Ten options per question at most. Returns optionId and created; the option is retained later by record_decision or update_option.",
|
|
755
|
+
"annotations": {
|
|
756
|
+
"readOnlyHint": false,
|
|
757
|
+
"destructiveHint": false,
|
|
758
|
+
"idempotentHint": true,
|
|
759
|
+
"openWorldHint": false
|
|
760
|
+
},
|
|
761
|
+
"transports": [
|
|
762
|
+
"stdio",
|
|
763
|
+
"remote"
|
|
764
|
+
],
|
|
765
|
+
"params": {
|
|
766
|
+
"questionId": "Question id from list_questions, load_dossier or open_question.",
|
|
767
|
+
"name": "The option in a few words, as it will be listed.",
|
|
768
|
+
"description": "What the option implies, in one or two sentences, when the name is not enough."
|
|
769
|
+
}
|
|
770
|
+
},
|
|
771
|
+
{
|
|
772
|
+
"name": "update_option",
|
|
773
|
+
"title": "Edit an option",
|
|
774
|
+
"description": "Rename or describe an option of a question, or mark it as the one retained. Retaining one option releases the others: a choice has one answer. Retaining here does not settle the question; call record_decision for that, which names the retained option itself. Pass only the fields to change. Only when the user asked for it.",
|
|
775
|
+
"annotations": {
|
|
776
|
+
"readOnlyHint": false,
|
|
777
|
+
"destructiveHint": false,
|
|
778
|
+
"idempotentHint": true,
|
|
779
|
+
"openWorldHint": false
|
|
780
|
+
},
|
|
781
|
+
"transports": [
|
|
782
|
+
"stdio",
|
|
783
|
+
"remote"
|
|
784
|
+
],
|
|
785
|
+
"params": {
|
|
786
|
+
"optionId": "Option id from get_question, list_questions or load_dossier.",
|
|
787
|
+
"name": "The new name of the option.",
|
|
788
|
+
"description": "The new description.",
|
|
789
|
+
"retained": "true to mark this option as retained (the others are released), false to release it."
|
|
790
|
+
}
|
|
791
|
+
},
|
|
792
|
+
{
|
|
793
|
+
"name": "delete_option",
|
|
794
|
+
"title": "Remove an option",
|
|
795
|
+
"description": "Remove an option from a question. The evidence filed under it stays on the question, unfiled from the option. Irreversible: the user is asked to confirm through the client before anything is removed, unless confirmed is true because they already did in the conversation. Only when the user asked for it.",
|
|
796
|
+
"annotations": {
|
|
797
|
+
"readOnlyHint": false,
|
|
798
|
+
"destructiveHint": true,
|
|
799
|
+
"idempotentHint": false,
|
|
800
|
+
"openWorldHint": false
|
|
801
|
+
},
|
|
802
|
+
"transports": [
|
|
803
|
+
"stdio",
|
|
804
|
+
"remote"
|
|
805
|
+
],
|
|
806
|
+
"params": {
|
|
807
|
+
"optionId": "Option id from get_question, list_questions or load_dossier.",
|
|
808
|
+
"confirmed": "true when the user already confirmed the removal in the conversation. Otherwise the user is asked through the client first."
|
|
809
|
+
}
|
|
810
|
+
},
|
|
811
|
+
{
|
|
812
|
+
"name": "delete_question",
|
|
813
|
+
"title": "Delete a question",
|
|
814
|
+
"description": "Delete a question from a dossier. Its evidence stays in the dossier, unfiled; its options, its comments and its decision entry go with it. Irreversible: the user is asked to confirm through the client before anything is deleted, unless confirmed is true because they already did in the conversation. A question that stopped mattering is closed with resolve_question, not deleted; delete only a question opened by mistake, and only when the user says so.",
|
|
815
|
+
"annotations": {
|
|
816
|
+
"readOnlyHint": false,
|
|
817
|
+
"destructiveHint": true,
|
|
818
|
+
"idempotentHint": false,
|
|
819
|
+
"openWorldHint": false
|
|
820
|
+
},
|
|
821
|
+
"transports": [
|
|
822
|
+
"stdio",
|
|
823
|
+
"remote"
|
|
824
|
+
],
|
|
825
|
+
"params": {
|
|
826
|
+
"questionId": "Question id from list_questions, load_dossier or open_question.",
|
|
827
|
+
"confirmed": "true when the user already confirmed the deletion in the conversation. Otherwise the user is asked through the client first."
|
|
828
|
+
}
|
|
829
|
+
},
|
|
830
|
+
{
|
|
831
|
+
"name": "add_comment",
|
|
832
|
+
"title": "Leave a comment",
|
|
833
|
+
"description": "Leave a remark on a dossier, on one of its questions or on one entry: a doubt about a value, a note for a colleague, the reason a piece of evidence was set aside. A comment is signed by the connected user and is not evidence: what the norm says goes through save_finding. A signed-off dossier still takes comments. Write it in the user's own words, only when they asked to leave one.",
|
|
834
|
+
"annotations": {
|
|
835
|
+
"readOnlyHint": false,
|
|
836
|
+
"destructiveHint": false,
|
|
837
|
+
"idempotentHint": false,
|
|
838
|
+
"openWorldHint": false
|
|
839
|
+
},
|
|
840
|
+
"transports": [
|
|
841
|
+
"stdio",
|
|
842
|
+
"remote"
|
|
843
|
+
],
|
|
844
|
+
"params": {
|
|
845
|
+
"dossierId": "Dossier id from list_dossiers, open_dossier or load_dossier.",
|
|
846
|
+
"body": "The comment, one to a few sentences.",
|
|
847
|
+
"questionId": "The question the comment is about, when it is about one.",
|
|
848
|
+
"entryId": "The entry the comment is about, when it is about one."
|
|
849
|
+
}
|
|
850
|
+
},
|
|
851
|
+
{
|
|
852
|
+
"name": "update_entry",
|
|
853
|
+
"title": "Correct an entry",
|
|
854
|
+
"description": "Correct a piece of evidence or a decision in place: its wording, its value, its confidence, or the citation (norm, section path, page, edition) when the wrong clause was cited. Pass only the fields to change; pass page null to clear it. The kind and the question do not change here (attach_entry moves an entry). Only when the user asked for the correction; never rewrite what a colleague wrote without saying so.",
|
|
855
|
+
"annotations": {
|
|
856
|
+
"readOnlyHint": false,
|
|
857
|
+
"destructiveHint": false,
|
|
858
|
+
"idempotentHint": true,
|
|
859
|
+
"openWorldHint": false
|
|
860
|
+
},
|
|
861
|
+
"transports": [
|
|
862
|
+
"stdio",
|
|
863
|
+
"remote"
|
|
864
|
+
],
|
|
865
|
+
"params": {
|
|
866
|
+
"entryId": "Entry id from get_question or load_dossier.",
|
|
867
|
+
"title": "The fact in one line, as an engineer would write it in a report.",
|
|
868
|
+
"detail": "The reasoning in one or two sentences.",
|
|
869
|
+
"value": "The retained value with its unit, e.g. \"30 deg\".",
|
|
870
|
+
"confidence": "established, judgement or to_confirm.",
|
|
871
|
+
"normCode": "Norm the entry comes from, e.g. \"SIA 267\".",
|
|
872
|
+
"sectionPath": "Exact section path, e.g. \"9.5.2.1\".",
|
|
873
|
+
"page": "Page in the norm. null clears it.",
|
|
874
|
+
"normEdition": "The edition cited, e.g. \"2013\"."
|
|
875
|
+
}
|
|
876
|
+
},
|
|
877
|
+
{
|
|
878
|
+
"name": "attach_entry",
|
|
879
|
+
"title": "File an entry under a question",
|
|
880
|
+
"description": "File a piece of evidence under a question, and optionally under one of its options, or take it out with questionId null. This is how the unclassified evidence of load_dossier gets sorted: read it, find the question it answers, file it. A decision cannot be moved: it belongs to its question. Filing where it already is changes nothing.",
|
|
881
|
+
"annotations": {
|
|
882
|
+
"readOnlyHint": false,
|
|
883
|
+
"destructiveHint": false,
|
|
884
|
+
"idempotentHint": true,
|
|
885
|
+
"openWorldHint": false
|
|
886
|
+
},
|
|
887
|
+
"transports": [
|
|
888
|
+
"stdio",
|
|
889
|
+
"remote"
|
|
890
|
+
],
|
|
891
|
+
"params": {
|
|
892
|
+
"entryId": "Entry id from get_question or load_dossier.",
|
|
893
|
+
"questionId": "The question to file the entry under, or null to leave it unfiled.",
|
|
894
|
+
"optionId": "The option of that question the entry argues for, or null for none."
|
|
895
|
+
}
|
|
896
|
+
},
|
|
520
897
|
{
|
|
521
898
|
"name": "ingest_status",
|
|
522
899
|
"title": "Check ingestion status",
|
|
@@ -704,7 +1081,7 @@ export const CATALOG = [
|
|
|
704
1081
|
{
|
|
705
1082
|
"name": "ingest_delete",
|
|
706
1083
|
"title": "Delete document",
|
|
707
|
-
"description": "Delete a document with all its sections, figures, tables, formulas and cross-references. Irreversible; use it before re-ingesting a norm.",
|
|
1084
|
+
"description": "Delete a document of your own organization with all its sections, figures, tables, formulas and cross-references. Irreversible; use it before re-ingesting a norm. The user is asked to confirm through the client before anything is deleted, unless confirmed is true because they already did in the conversation. Reserved to owners and administrators.",
|
|
708
1085
|
"annotations": {
|
|
709
1086
|
"readOnlyHint": false,
|
|
710
1087
|
"destructiveHint": true,
|
|
@@ -716,7 +1093,8 @@ export const CATALOG = [
|
|
|
716
1093
|
"remote"
|
|
717
1094
|
],
|
|
718
1095
|
"params": {
|
|
719
|
-
"documentId": "Document id from ingest_create_document."
|
|
1096
|
+
"documentId": "Document id from ingest_create_document.",
|
|
1097
|
+
"confirmed": "true when the user already confirmed the deletion in the conversation. Otherwise the user is asked through the client first."
|
|
720
1098
|
}
|
|
721
1099
|
}
|
|
722
1100
|
];
|
package/dist/tools/dossier.d.ts
CHANGED
|
@@ -82,6 +82,81 @@ export declare const applyTemplate: import("./define.js").ToolDef<{
|
|
|
82
82
|
dossierId: z.ZodString;
|
|
83
83
|
templateId: z.ZodString;
|
|
84
84
|
}>;
|
|
85
|
+
export declare const listQuestions: import("./define.js").ToolDef<{
|
|
86
|
+
dossierId: z.ZodString;
|
|
87
|
+
status: z.ZodOptional<z.ZodEnum<{
|
|
88
|
+
open: "open";
|
|
89
|
+
decided: "decided";
|
|
90
|
+
closed: "closed";
|
|
91
|
+
}>>;
|
|
92
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
93
|
+
cursor: z.ZodOptional<z.ZodString>;
|
|
94
|
+
}>;
|
|
95
|
+
export declare const getQuestion: import("./define.js").ToolDef<{
|
|
96
|
+
questionId: z.ZodString;
|
|
97
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
98
|
+
cursor: z.ZodOptional<z.ZodString>;
|
|
99
|
+
}>;
|
|
100
|
+
export declare const getDossierActivity: import("./define.js").ToolDef<{
|
|
101
|
+
dossierId: z.ZodString;
|
|
102
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
103
|
+
cursor: z.ZodOptional<z.ZodString>;
|
|
104
|
+
}>;
|
|
105
|
+
export declare const listExports: import("./define.js").ToolDef<{
|
|
106
|
+
dossierId: z.ZodString;
|
|
107
|
+
}>;
|
|
108
|
+
export declare const updateQuestion: import("./define.js").ToolDef<{
|
|
109
|
+
questionId: z.ZodString;
|
|
110
|
+
title: z.ZodOptional<z.ZodString>;
|
|
111
|
+
body: z.ZodOptional<z.ZodString>;
|
|
112
|
+
assigneeEmail: z.ZodOptional<z.ZodNullable<z.ZodEmail>>;
|
|
113
|
+
dueAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
114
|
+
}>;
|
|
115
|
+
export declare const addOption: import("./define.js").ToolDef<{
|
|
116
|
+
questionId: z.ZodString;
|
|
117
|
+
name: z.ZodString;
|
|
118
|
+
description: z.ZodOptional<z.ZodString>;
|
|
119
|
+
}>;
|
|
120
|
+
export declare const updateOption: import("./define.js").ToolDef<{
|
|
121
|
+
optionId: z.ZodString;
|
|
122
|
+
name: z.ZodOptional<z.ZodString>;
|
|
123
|
+
description: z.ZodOptional<z.ZodString>;
|
|
124
|
+
retained: z.ZodOptional<z.ZodBoolean>;
|
|
125
|
+
}>;
|
|
126
|
+
export declare const deleteOption: import("./define.js").ToolDef<{
|
|
127
|
+
optionId: z.ZodString;
|
|
128
|
+
confirmed: z.ZodOptional<z.ZodBoolean>;
|
|
129
|
+
}>;
|
|
130
|
+
export declare const deleteQuestion: import("./define.js").ToolDef<{
|
|
131
|
+
questionId: z.ZodString;
|
|
132
|
+
confirmed: z.ZodOptional<z.ZodBoolean>;
|
|
133
|
+
}>;
|
|
134
|
+
export declare const addComment: import("./define.js").ToolDef<{
|
|
135
|
+
dossierId: z.ZodString;
|
|
136
|
+
body: z.ZodString;
|
|
137
|
+
questionId: z.ZodOptional<z.ZodString>;
|
|
138
|
+
entryId: z.ZodOptional<z.ZodString>;
|
|
139
|
+
}>;
|
|
140
|
+
export declare const updateEntry: import("./define.js").ToolDef<{
|
|
141
|
+
entryId: z.ZodString;
|
|
142
|
+
title: z.ZodOptional<z.ZodString>;
|
|
143
|
+
detail: z.ZodOptional<z.ZodString>;
|
|
144
|
+
value: z.ZodOptional<z.ZodString>;
|
|
145
|
+
confidence: z.ZodOptional<z.ZodEnum<{
|
|
146
|
+
established: "established";
|
|
147
|
+
judgement: "judgement";
|
|
148
|
+
to_confirm: "to_confirm";
|
|
149
|
+
}>>;
|
|
150
|
+
normCode: z.ZodOptional<z.ZodString>;
|
|
151
|
+
sectionPath: z.ZodOptional<z.ZodString>;
|
|
152
|
+
page: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
153
|
+
normEdition: z.ZodOptional<z.ZodString>;
|
|
154
|
+
}>;
|
|
155
|
+
export declare const attachEntry: import("./define.js").ToolDef<{
|
|
156
|
+
entryId: z.ZodString;
|
|
157
|
+
questionId: z.ZodNullable<z.ZodString>;
|
|
158
|
+
optionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
159
|
+
}>;
|
|
85
160
|
export declare const dossierTools: (import("./define.js").ToolDef<{}> | import("./define.js").ToolDef<{
|
|
86
161
|
name: z.ZodString;
|
|
87
162
|
reference: z.ZodOptional<z.ZodString>;
|
|
@@ -152,4 +227,65 @@ export declare const dossierTools: (import("./define.js").ToolDef<{}> | import("
|
|
|
152
227
|
}> | import("./define.js").ToolDef<{
|
|
153
228
|
dossierId: z.ZodString;
|
|
154
229
|
templateId: z.ZodString;
|
|
230
|
+
}> | import("./define.js").ToolDef<{
|
|
231
|
+
dossierId: z.ZodString;
|
|
232
|
+
status: z.ZodOptional<z.ZodEnum<{
|
|
233
|
+
open: "open";
|
|
234
|
+
decided: "decided";
|
|
235
|
+
closed: "closed";
|
|
236
|
+
}>>;
|
|
237
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
238
|
+
cursor: z.ZodOptional<z.ZodString>;
|
|
239
|
+
}> | import("./define.js").ToolDef<{
|
|
240
|
+
questionId: z.ZodString;
|
|
241
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
242
|
+
cursor: z.ZodOptional<z.ZodString>;
|
|
243
|
+
}> | import("./define.js").ToolDef<{
|
|
244
|
+
dossierId: z.ZodString;
|
|
245
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
246
|
+
cursor: z.ZodOptional<z.ZodString>;
|
|
247
|
+
}> | import("./define.js").ToolDef<{
|
|
248
|
+
questionId: z.ZodString;
|
|
249
|
+
title: z.ZodOptional<z.ZodString>;
|
|
250
|
+
body: z.ZodOptional<z.ZodString>;
|
|
251
|
+
assigneeEmail: z.ZodOptional<z.ZodNullable<z.ZodEmail>>;
|
|
252
|
+
dueAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
253
|
+
}> | import("./define.js").ToolDef<{
|
|
254
|
+
questionId: z.ZodString;
|
|
255
|
+
name: z.ZodString;
|
|
256
|
+
description: z.ZodOptional<z.ZodString>;
|
|
257
|
+
}> | import("./define.js").ToolDef<{
|
|
258
|
+
optionId: z.ZodString;
|
|
259
|
+
name: z.ZodOptional<z.ZodString>;
|
|
260
|
+
description: z.ZodOptional<z.ZodString>;
|
|
261
|
+
retained: z.ZodOptional<z.ZodBoolean>;
|
|
262
|
+
}> | import("./define.js").ToolDef<{
|
|
263
|
+
optionId: z.ZodString;
|
|
264
|
+
confirmed: z.ZodOptional<z.ZodBoolean>;
|
|
265
|
+
}> | import("./define.js").ToolDef<{
|
|
266
|
+
questionId: z.ZodString;
|
|
267
|
+
confirmed: z.ZodOptional<z.ZodBoolean>;
|
|
268
|
+
}> | import("./define.js").ToolDef<{
|
|
269
|
+
dossierId: z.ZodString;
|
|
270
|
+
body: z.ZodString;
|
|
271
|
+
questionId: z.ZodOptional<z.ZodString>;
|
|
272
|
+
entryId: z.ZodOptional<z.ZodString>;
|
|
273
|
+
}> | import("./define.js").ToolDef<{
|
|
274
|
+
entryId: z.ZodString;
|
|
275
|
+
title: z.ZodOptional<z.ZodString>;
|
|
276
|
+
detail: z.ZodOptional<z.ZodString>;
|
|
277
|
+
value: z.ZodOptional<z.ZodString>;
|
|
278
|
+
confidence: z.ZodOptional<z.ZodEnum<{
|
|
279
|
+
established: "established";
|
|
280
|
+
judgement: "judgement";
|
|
281
|
+
to_confirm: "to_confirm";
|
|
282
|
+
}>>;
|
|
283
|
+
normCode: z.ZodOptional<z.ZodString>;
|
|
284
|
+
sectionPath: z.ZodOptional<z.ZodString>;
|
|
285
|
+
page: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
286
|
+
normEdition: z.ZodOptional<z.ZodString>;
|
|
287
|
+
}> | import("./define.js").ToolDef<{
|
|
288
|
+
entryId: z.ZodString;
|
|
289
|
+
questionId: z.ZodNullable<z.ZodString>;
|
|
290
|
+
optionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
155
291
|
}>)[];
|