@ignfab/geocontext 0.9.6 → 0.9.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/README.md +334 -257
  2. package/dist/gpf/adminexpress.d.ts +17 -8
  3. package/dist/gpf/adminexpress.js +40 -17
  4. package/dist/gpf/adminexpress.js.map +1 -1
  5. package/dist/gpf/altitude.d.ts +21 -9
  6. package/dist/gpf/altitude.js +5 -5
  7. package/dist/gpf/altitude.js.map +1 -1
  8. package/dist/gpf/geocode.d.ts +25 -4
  9. package/dist/gpf/geocode.js +5 -5
  10. package/dist/gpf/geocode.js.map +1 -1
  11. package/dist/gpf/parcellaire-express.d.ts +19 -9
  12. package/dist/gpf/parcellaire-express.js +59 -26
  13. package/dist/gpf/parcellaire-express.js.map +1 -1
  14. package/dist/gpf/urbanisme.d.ts +24 -16
  15. package/dist/gpf/urbanisme.js +81 -33
  16. package/dist/gpf/urbanisme.js.map +1 -1
  17. package/dist/gpf/{wfs.js → wfs-schema-catalog.js} +1 -1
  18. package/dist/gpf/wfs-schema-catalog.js.map +1 -0
  19. package/dist/helpers/RateLimiter.d.ts +44 -0
  20. package/dist/helpers/RateLimiter.js +52 -0
  21. package/dist/helpers/RateLimiter.js.map +1 -0
  22. package/dist/helpers/distance.d.ts +2 -1
  23. package/dist/helpers/distance.js +2 -1
  24. package/dist/helpers/distance.js.map +1 -1
  25. package/dist/helpers/errors/toolError.d.ts +30 -0
  26. package/dist/helpers/errors/toolError.js +193 -0
  27. package/dist/helpers/errors/toolError.js.map +1 -0
  28. package/dist/helpers/errors/zodErrorMapFr.d.ts +20 -0
  29. package/dist/helpers/errors/zodErrorMapFr.js +191 -0
  30. package/dist/helpers/errors/zodErrorMapFr.js.map +1 -0
  31. package/dist/helpers/http.d.ts +67 -7
  32. package/dist/helpers/http.js +458 -84
  33. package/dist/helpers/http.js.map +1 -1
  34. package/dist/helpers/jsonSchema.d.ts +16 -4
  35. package/dist/helpers/jsonSchema.js +7 -1
  36. package/dist/helpers/jsonSchema.js.map +1 -1
  37. package/dist/helpers/schemas.d.ts +4 -4
  38. package/dist/helpers/wfs_engine/attributeFilter.d.ts +51 -0
  39. package/dist/helpers/wfs_engine/attributeFilter.js +258 -0
  40. package/dist/helpers/wfs_engine/attributeFilter.js.map +1 -0
  41. package/dist/helpers/wfs_engine/byId.d.ts +76 -0
  42. package/dist/helpers/wfs_engine/byId.js +106 -0
  43. package/dist/helpers/wfs_engine/byId.js.map +1 -0
  44. package/dist/helpers/wfs_engine/execution.d.ts +72 -0
  45. package/dist/helpers/wfs_engine/execution.js +95 -0
  46. package/dist/helpers/wfs_engine/execution.js.map +1 -0
  47. package/dist/helpers/wfs_engine/features.d.ts +64 -0
  48. package/dist/helpers/wfs_engine/features.js +138 -0
  49. package/dist/helpers/wfs_engine/features.js.map +1 -0
  50. package/dist/helpers/wfs_engine/geometry.d.ts +16 -0
  51. package/dist/helpers/wfs_engine/geometry.js +44 -0
  52. package/dist/helpers/wfs_engine/geometry.js.map +1 -0
  53. package/dist/helpers/wfs_engine/properties.d.ts +51 -0
  54. package/dist/helpers/wfs_engine/properties.js +128 -0
  55. package/dist/helpers/wfs_engine/properties.js.map +1 -0
  56. package/dist/helpers/wfs_engine/queryPreparation.d.ts +32 -0
  57. package/dist/helpers/wfs_engine/queryPreparation.js +149 -0
  58. package/dist/helpers/wfs_engine/queryPreparation.js.map +1 -0
  59. package/dist/helpers/{wfs_internal → wfs_engine}/request.d.ts +49 -2
  60. package/dist/helpers/{wfs_internal → wfs_engine}/request.js +77 -1
  61. package/dist/helpers/wfs_engine/request.js.map +1 -0
  62. package/dist/helpers/wfs_engine/response.d.ts +80 -0
  63. package/dist/helpers/wfs_engine/response.js +135 -0
  64. package/dist/helpers/wfs_engine/response.js.map +1 -0
  65. package/dist/helpers/wfs_engine/schema.d.ts +209 -0
  66. package/dist/helpers/{wfs_internal → wfs_engine}/schema.js +50 -10
  67. package/dist/helpers/wfs_engine/schema.js.map +1 -0
  68. package/dist/helpers/wfs_engine/spatialCql.d.ts +46 -0
  69. package/dist/helpers/wfs_engine/spatialCql.js +54 -0
  70. package/dist/helpers/wfs_engine/spatialCql.js.map +1 -0
  71. package/dist/helpers/wfs_engine/spatialFilter.d.ts +14 -0
  72. package/dist/helpers/wfs_engine/spatialFilter.js +131 -0
  73. package/dist/helpers/wfs_engine/spatialFilter.js.map +1 -0
  74. package/dist/index.js +65 -23
  75. package/dist/index.js.map +1 -1
  76. package/dist/logger.d.ts +1 -1
  77. package/dist/logger.js +4 -1
  78. package/dist/logger.js.map +1 -1
  79. package/dist/tools/AdminexpressTool.d.ts +42 -33
  80. package/dist/tools/AdminexpressTool.js +17 -2
  81. package/dist/tools/AdminexpressTool.js.map +1 -1
  82. package/dist/tools/AltitudeTool.d.ts +35 -44
  83. package/dist/tools/AltitudeTool.js +19 -8
  84. package/dist/tools/AltitudeTool.js.map +1 -1
  85. package/dist/tools/AssietteSupTool.d.ts +51 -34
  86. package/dist/tools/AssietteSupTool.js +17 -2
  87. package/dist/tools/AssietteSupTool.js.map +1 -1
  88. package/dist/tools/BaseTool.d.ts +17 -0
  89. package/dist/tools/BaseTool.js +41 -0
  90. package/dist/tools/BaseTool.js.map +1 -0
  91. package/dist/tools/CadastreTool.d.ts +53 -33
  92. package/dist/tools/CadastreTool.js +17 -2
  93. package/dist/tools/CadastreTool.js.map +1 -1
  94. package/dist/tools/GeocodeTool.d.ts +53 -37
  95. package/dist/tools/GeocodeTool.js +17 -2
  96. package/dist/tools/GeocodeTool.js.map +1 -1
  97. package/dist/tools/GpfWfsDescribeTypeTool.d.ts +66 -94
  98. package/dist/tools/GpfWfsDescribeTypeTool.js +25 -14
  99. package/dist/tools/GpfWfsDescribeTypeTool.js.map +1 -1
  100. package/dist/tools/GpfWfsGetFeatureByIdTool.d.ts +52 -73
  101. package/dist/tools/GpfWfsGetFeatureByIdTool.js +50 -107
  102. package/dist/tools/GpfWfsGetFeatureByIdTool.js.map +1 -1
  103. package/dist/tools/GpfWfsGetFeaturesTool.d.ts +89 -114
  104. package/dist/tools/GpfWfsGetFeaturesTool.js +29 -120
  105. package/dist/tools/GpfWfsGetFeaturesTool.js.map +1 -1
  106. package/dist/tools/GpfWfsSearchTypesTool.d.ts +41 -32
  107. package/dist/tools/GpfWfsSearchTypesTool.js +18 -3
  108. package/dist/tools/GpfWfsSearchTypesTool.js.map +1 -1
  109. package/dist/tools/UrbanismeTool.d.ts +42 -33
  110. package/dist/tools/UrbanismeTool.js +17 -2
  111. package/dist/tools/UrbanismeTool.js.map +1 -1
  112. package/package.json +51 -24
  113. package/dist/gpf/wfs.js.map +0 -1
  114. package/dist/helpers/wfs.d.ts +0 -27
  115. package/dist/helpers/wfs.js +0 -55
  116. package/dist/helpers/wfs.js.map +0 -1
  117. package/dist/helpers/wfs_internal/compile.d.ts +0 -55
  118. package/dist/helpers/wfs_internal/compile.js +0 -596
  119. package/dist/helpers/wfs_internal/compile.js.map +0 -1
  120. package/dist/helpers/wfs_internal/request.js.map +0 -1
  121. package/dist/helpers/wfs_internal/response.d.ts +0 -29
  122. package/dist/helpers/wfs_internal/response.js +0 -59
  123. package/dist/helpers/wfs_internal/response.js.map +0 -1
  124. package/dist/helpers/wfs_internal/schema.d.ts +0 -167
  125. package/dist/helpers/wfs_internal/schema.js.map +0 -1
  126. /package/dist/gpf/{wfs.d.ts → wfs-schema-catalog.d.ts} +0 -0
@@ -1,15 +1,17 @@
1
- import { MCPTool } from "mcp-framework";
1
+ /**
2
+ * MCP tool exposing detailed schema inspection for a single WFS type.
3
+ */
4
+ import BaseTool from "./BaseTool.js";
2
5
  import { z } from "zod";
3
- import type { Collection } from "@ignfab/gpf-schema-store";
4
6
  declare const gpfWfsDescribeTypeInputSchema: z.ZodObject<{
5
7
  typename: z.ZodString;
6
8
  }, "strict", z.ZodTypeAny, {
7
- typename?: string;
9
+ typename: string;
8
10
  }, {
9
- typename?: string;
11
+ typename: string;
10
12
  }>;
11
13
  type GpfWfsDescribeTypeInput = z.infer<typeof gpfWfsDescribeTypeInputSchema>;
12
- declare class GpfWfsDescribeTypeTool extends MCPTool<GpfWfsDescribeTypeInput> {
14
+ declare class GpfWfsDescribeTypeTool extends BaseTool<GpfWfsDescribeTypeInput> {
13
15
  name: string;
14
16
  title: string;
15
17
  annotations: {
@@ -20,105 +22,75 @@ declare class GpfWfsDescribeTypeTool extends MCPTool<GpfWfsDescribeTypeInput> {
20
22
  };
21
23
  description: string;
22
24
  protected outputSchemaShape: z.ZodObject<{
23
- result: z.ZodObject<{
24
- id: z.ZodString;
25
- namespace: z.ZodString;
25
+ id: z.ZodString;
26
+ namespace: z.ZodString;
27
+ name: z.ZodString;
28
+ title: z.ZodString;
29
+ description: z.ZodString;
30
+ properties: z.ZodArray<z.ZodObject<{
26
31
  name: z.ZodString;
27
- title: z.ZodString;
28
- description: z.ZodString;
29
- properties: z.ZodArray<z.ZodObject<{
30
- name: z.ZodString;
31
- type: z.ZodString;
32
- title: z.ZodOptional<z.ZodString>;
33
- description: z.ZodOptional<z.ZodString>;
34
- enum: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
35
- defaultCrs: z.ZodOptional<z.ZodString>;
36
- }, "strip", z.ZodTypeAny, {
37
- type?: string;
38
- name?: string;
39
- title?: string;
40
- description?: string;
41
- enum?: string[];
42
- defaultCrs?: string;
43
- }, {
44
- type?: string;
45
- name?: string;
46
- title?: string;
47
- description?: string;
48
- enum?: string[];
49
- defaultCrs?: string;
50
- }>, "many">;
32
+ type: z.ZodString;
33
+ title: z.ZodOptional<z.ZodString>;
34
+ description: z.ZodOptional<z.ZodString>;
35
+ enum: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
36
+ defaultCrs: z.ZodOptional<z.ZodString>;
51
37
  }, "strip", z.ZodTypeAny, {
52
- id?: string;
53
- properties?: {
54
- type?: string;
55
- name?: string;
56
- title?: string;
57
- description?: string;
58
- enum?: string[];
59
- defaultCrs?: string;
60
- }[];
61
- namespace?: string;
62
- name?: string;
63
- title?: string;
64
- description?: string;
38
+ name: string;
39
+ type: string;
40
+ title?: string | undefined;
41
+ description?: string | undefined;
42
+ enum?: string[] | undefined;
43
+ defaultCrs?: string | undefined;
65
44
  }, {
66
- id?: string;
67
- properties?: {
68
- type?: string;
69
- name?: string;
70
- title?: string;
71
- description?: string;
72
- enum?: string[];
73
- defaultCrs?: string;
74
- }[];
75
- namespace?: string;
76
- name?: string;
77
- title?: string;
78
- description?: string;
79
- }>;
45
+ name: string;
46
+ type: string;
47
+ title?: string | undefined;
48
+ description?: string | undefined;
49
+ enum?: string[] | undefined;
50
+ defaultCrs?: string | undefined;
51
+ }>, "many">;
80
52
  }, "strip", z.ZodTypeAny, {
81
- result?: {
82
- id?: string;
83
- properties?: {
84
- type?: string;
85
- name?: string;
86
- title?: string;
87
- description?: string;
88
- enum?: string[];
89
- defaultCrs?: string;
90
- }[];
91
- namespace?: string;
92
- name?: string;
93
- title?: string;
94
- description?: string;
95
- };
53
+ name: string;
54
+ namespace: string;
55
+ title: string;
56
+ description: string;
57
+ properties: {
58
+ name: string;
59
+ type: string;
60
+ title?: string | undefined;
61
+ description?: string | undefined;
62
+ enum?: string[] | undefined;
63
+ defaultCrs?: string | undefined;
64
+ }[];
65
+ id: string;
96
66
  }, {
97
- result?: {
98
- id?: string;
99
- properties?: {
100
- type?: string;
101
- name?: string;
102
- title?: string;
103
- description?: string;
104
- enum?: string[];
105
- defaultCrs?: string;
106
- }[];
107
- namespace?: string;
108
- name?: string;
109
- title?: string;
110
- description?: string;
111
- };
67
+ name: string;
68
+ namespace: string;
69
+ title: string;
70
+ description: string;
71
+ properties: {
72
+ name: string;
73
+ type: string;
74
+ title?: string | undefined;
75
+ description?: string | undefined;
76
+ enum?: string[] | undefined;
77
+ defaultCrs?: string | undefined;
78
+ }[];
79
+ id: string;
112
80
  }>;
113
81
  schema: z.ZodObject<{
114
82
  typename: z.ZodString;
115
83
  }, "strict", z.ZodTypeAny, {
116
- typename?: string;
84
+ typename: string;
117
85
  }, {
118
- typename?: string;
119
- }>;
120
- execute(input: GpfWfsDescribeTypeInput): Promise<{
121
- result: Collection;
86
+ typename: string;
122
87
  }>;
88
+ /**
89
+ * Loads the detailed schema description for one WFS typename.
90
+ *
91
+ * @param input Normalized tool input.
92
+ * @returns The detailed feature type description from the embedded catalog.
93
+ */
94
+ execute(input: GpfWfsDescribeTypeInput): Promise<Collection>;
123
95
  }
124
96
  export default GpfWfsDescribeTypeTool;
@@ -1,7 +1,12 @@
1
- import { MCPTool } from "mcp-framework";
1
+ /**
2
+ * MCP tool exposing detailed schema inspection for a single WFS type.
3
+ */
4
+ import BaseTool from "./BaseTool.js";
2
5
  import { z } from "zod";
3
- import { wfsClient } from "../gpf/wfs.js";
6
+ import { wfsClient } from "../gpf/wfs-schema-catalog.js";
4
7
  import { READ_ONLY_OPEN_WORLD_TOOL_ANNOTATIONS } from "../helpers/toolAnnotations.js";
8
+ import logger from "../logger.js";
9
+ // --- Schema ---
5
10
  const gpfWfsDescribeTypeInputSchema = z.object({
6
11
  typename: z
7
12
  .string()
@@ -18,16 +23,15 @@ const gpfWfsPropertySchema = z.object({
18
23
  defaultCrs: z.string().describe("Le système de coordonnées par défaut si la propriété est géométrique.").optional(),
19
24
  });
20
25
  const gpfWfsDescribeTypeOutputSchema = z.object({
21
- result: z.object({
22
- id: z.string().describe("L'identifiant complet du type WFS."),
23
- namespace: z.string().describe("L'espace de nommage du type WFS."),
24
- name: z.string().describe("Le nom court du type WFS."),
25
- title: z.string().describe("Le titre lisible du type WFS."),
26
- description: z.string().describe("La description du type WFS."),
27
- properties: z.array(gpfWfsPropertySchema).describe("La liste des propriétés du type WFS."),
28
- }).describe("La description détaillée du type WFS."),
26
+ id: z.string().describe("L'identifiant complet du type WFS."),
27
+ namespace: z.string().describe("L'espace de nommage du type WFS."),
28
+ name: z.string().describe("Le nom court du type WFS."),
29
+ title: z.string().describe("Le titre lisible du type WFS."),
30
+ description: z.string().describe("La description du type WFS."),
31
+ properties: z.array(gpfWfsPropertySchema).describe("La liste des propriétés du type WFS."),
29
32
  });
30
- class GpfWfsDescribeTypeTool extends MCPTool {
33
+ // --- Tool ---
34
+ class GpfWfsDescribeTypeTool extends BaseTool {
31
35
  name = "gpf_wfs_describe_type";
32
36
  title = "Description d’un type WFS";
33
37
  annotations = READ_ONLY_OPEN_WORLD_TOOL_ANNOTATIONS;
@@ -39,12 +43,19 @@ class GpfWfsDescribeTypeTool extends MCPTool {
39
43
  ].join("\n");
40
44
  outputSchemaShape = gpfWfsDescribeTypeOutputSchema;
41
45
  schema = gpfWfsDescribeTypeInputSchema;
46
+ /**
47
+ * Loads the detailed schema description for one WFS typename.
48
+ *
49
+ * @param input Normalized tool input.
50
+ * @returns The detailed feature type description from the embedded catalog.
51
+ */
42
52
  async execute(input) {
53
+ logger.info(`[tool] execute ${this.name} ...`, {
54
+ input: input
55
+ });
43
56
  try {
44
57
  const featureType = await wfsClient.getFeatureType(input.typename);
45
- return {
46
- result: featureType,
47
- };
58
+ return featureType;
48
59
  }
49
60
  catch (e) {
50
61
  const message = e instanceof Error ? e.message : String(e);
@@ -1 +1 @@
1
- {"version":3,"file":"GpfWfsDescribeTypeTool.js","sourceRoot":"","sources":["../../src/tools/GpfWfsDescribeTypeTool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GpfWfsDescribeTypeTool.js","sourceRoot":"","sources":["../../src/tools/GpfWfsDescribeTypeTool.ts"],"names":[],"mappings":"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"}
@@ -1,30 +1,13 @@
1
- import { MCPTool } from "mcp-framework";
2
- import type { Collection } from "@ignfab/gpf-schema-store";
3
- import { z } from "zod";
4
- import { type CompiledRequest } from "../helpers/wfs_internal/request.js";
5
- declare const gpfWfsGetFeatureByIdInputSchema: z.ZodObject<{
6
- typename: z.ZodString;
7
- feature_id: z.ZodString;
8
- result_type: z.ZodDefault<z.ZodEnum<["results", "request"]>>;
9
- select: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
10
- }, "strict", z.ZodTypeAny, {
11
- typename?: string;
12
- feature_id?: string;
13
- result_type?: "request" | "results";
14
- select?: string[];
15
- }, {
16
- typename?: string;
17
- feature_id?: string;
18
- result_type?: "request" | "results";
19
- select?: string[];
20
- }>;
21
- type GpfWfsGetFeatureByIdInput = z.infer<typeof gpfWfsGetFeatureByIdInputSchema>;
22
- type PublishedInputSchema = {
23
- type: "object";
24
- properties?: Record<string, object>;
25
- required?: string[];
26
- };
27
- declare class GpfWfsGetFeatureByIdTool extends MCPTool<GpfWfsGetFeatureByIdInput> {
1
+ /**
2
+ * MCP tool exposing exact WFS feature lookup by `feature_id`.
3
+ *
4
+ * The tool keeps MCP-facing concerns such as schema exposure, compact response
5
+ * formatting, and request-preview output. The `results` execution flow itself
6
+ * is delegated to the structured WFS engine.
7
+ */
8
+ import BaseTool from "./BaseTool.js";
9
+ import { type GpfWfsGetFeatureByIdInput } from "../helpers/wfs_engine/schema.js";
10
+ declare class GpfWfsGetFeatureByIdTool extends BaseTool<GpfWfsGetFeatureByIdInput> {
28
11
  name: string;
29
12
  title: string;
30
13
  annotations: {
@@ -34,70 +17,59 @@ declare class GpfWfsGetFeatureByIdTool extends MCPTool<GpfWfsGetFeatureByIdInput
34
17
  openWorldHint: boolean;
35
18
  };
36
19
  description: string;
37
- schema: z.ZodObject<{
38
- typename: z.ZodString;
39
- feature_id: z.ZodString;
40
- result_type: z.ZodDefault<z.ZodEnum<["results", "request"]>>;
41
- select: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
42
- }, "strict", z.ZodTypeAny, {
43
- typename?: string;
44
- feature_id?: string;
45
- result_type?: "request" | "results";
46
- select?: string[];
20
+ schema: import("zod").ZodObject<{
21
+ typename: import("zod").ZodString;
22
+ feature_id: import("zod").ZodString;
23
+ result_type: import("zod").ZodDefault<import("zod").ZodEnum<["results", "request"]>>;
24
+ select: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString, "many">>;
25
+ }, "strict", import("zod").ZodTypeAny, {
26
+ typename: string;
27
+ feature_id: string;
28
+ result_type: "request" | "results";
29
+ select?: string[] | undefined;
47
30
  }, {
48
- typename?: string;
49
- feature_id?: string;
50
- result_type?: "request" | "results";
51
- select?: string[];
31
+ typename: string;
32
+ feature_id: string;
33
+ result_type?: "request" | "results" | undefined;
34
+ select?: string[] | undefined;
52
35
  }>;
53
36
  /**
54
37
  * Exposes an input schema variant that stays compatible with most MCP integrations.
55
38
  *
56
39
  * @returns The published input schema exposed through the MCP tool definition.
57
40
  */
58
- get inputSchema(): PublishedInputSchema;
41
+ get inputSchema(): import("../helpers/jsonSchema.js").PublishedInputSchema;
59
42
  /**
60
- * Formats compact responses (`request`) into `structuredContent`.
43
+ * Formats compact responses (`request`, `results`) into `structuredContent`.
44
+ *
45
+ * We intentionally do not expose a single `outputSchemaShape` for the tool as
46
+ * a whole: the `results` path returns a generic FeatureCollection whose
47
+ * feature properties depend on the queried WFS layer, while `request` has a
48
+ * compact, closed shape that is worth validating explicitly.
61
49
  *
62
50
  * @param data Raw execution result returned by the tool implementation.
63
51
  * @returns An MCP success response, optionally enriched with structured content.
64
52
  */
65
- protected createSuccessResponse(data: unknown): import("mcp-framework").ToolResponse | {
53
+ protected createSuccessResponse(data: unknown): {
66
54
  content: {
67
55
  type: "text";
68
56
  text: string;
69
57
  }[];
70
58
  structuredContent: {
71
- body?: string;
72
- result_type?: "request";
73
- method?: "POST";
74
- url?: string;
75
- query?: Record<string, string>;
76
- get_url?: string;
59
+ url: string;
60
+ result_type: "request";
61
+ method: "POST";
62
+ query: Record<string, string>;
63
+ body: string;
64
+ get_url?: string | null | undefined;
77
65
  };
66
+ } | {
67
+ content: {
68
+ type: "text";
69
+ text: string;
70
+ }[];
71
+ structuredContent: Record<string, unknown>;
78
72
  };
79
- /**
80
- * Loads a WFS feature type description from the embedded catalog.
81
- *
82
- * @param typename Exact WFS typename to load from the embedded schema store.
83
- * @returns The matching feature type description.
84
- */
85
- protected getFeatureType(typename: string): Promise<Collection>;
86
- /**
87
- * Executes a compiled WFS request as POST and returns the JSON FeatureCollection.
88
- *
89
- * @param request Compiled request split into query-string parameters and POST body.
90
- * @returns The parsed JSON response returned by the WFS endpoint.
91
- */
92
- protected fetchFeatureCollection(request: CompiledRequest): Promise<any>;
93
- /**
94
- * Builds the optional `propertyName` request parameter from `select`.
95
- *
96
- * @param featureType Feature type definition loaded from the embedded catalog.
97
- * @param input Normalized tool input.
98
- * @returns A comma-separated property list, or `undefined` when all properties should be returned.
99
- */
100
- protected buildPropertyName(featureType: Collection, input: GpfWfsGetFeatureByIdInput): string;
101
73
  /**
102
74
  * Orchestrates the by-id execution flow:
103
75
  * schema lookup -> request compilation -> optional request output -> WFS execution -> cardinality validation.
@@ -105,6 +77,13 @@ declare class GpfWfsGetFeatureByIdTool extends MCPTool<GpfWfsGetFeatureByIdInput
105
77
  * @param input Normalized tool input.
106
78
  * @returns Either a compiled request or a transformed FeatureCollection containing one feature.
107
79
  */
108
- execute(input: GpfWfsGetFeatureByIdInput): Promise<Record<string, unknown>>;
80
+ execute(input: GpfWfsGetFeatureByIdInput): Promise<import("../helpers/wfs_engine/request.js").WfsRequestPayload | (Record<string, unknown> & {
81
+ features?: (Record<string, unknown> & {
82
+ feature_ref?: {
83
+ typename: string | null;
84
+ feature_id: string;
85
+ };
86
+ })[];
87
+ })>;
109
88
  }
110
89
  export default GpfWfsGetFeatureByIdTool;
@@ -1,36 +1,19 @@
1
- import { MCPTool } from "mcp-framework";
2
- import { z } from "zod";
3
- import { wfsClient } from "../gpf/wfs.js";
4
- import { fetchJSONPost } from "../helpers/http.js";
1
+ /**
2
+ * MCP tool exposing exact WFS feature lookup by `feature_id`.
3
+ *
4
+ * The tool keeps MCP-facing concerns such as schema exposure, compact response
5
+ * formatting, and request-preview output. The `results` execution flow itself
6
+ * is delegated to the structured WFS engine.
7
+ */
8
+ import BaseTool from "./BaseTool.js";
5
9
  import { READ_ONLY_OPEN_WORLD_TOOL_ANNOTATIONS } from "../helpers/toolAnnotations.js";
6
- import { generatePublishedInputSchema } from "../helpers/jsonSchema.js";
7
- import { compileSelectProperty, getGeometryProperty } from "../helpers/wfs_internal/compile.js";
8
- import { buildGetFeatureByIdRequest } from "../helpers/wfs_internal/request.js";
9
- import { attachFeatureRefs } from "../helpers/wfs_internal/response.js";
10
- import { gpfWfsGetFeaturesRequestOutputSchema } from "../helpers/wfs_internal/schema.js";
11
- const gpfWfsGetFeatureByIdInputSchema = z.object({
12
- typename: z
13
- .string()
14
- .trim()
15
- .min(1, "le nom du type ne doit pas être vide")
16
- .describe("Nom exact du type WFS à interroger, par exemple `ADMINEXPRESS-COG.LATEST:commune`."),
17
- feature_id: z
18
- .string()
19
- .trim()
20
- .min(1, "le feature_id ne doit pas être vide")
21
- .describe("Identifiant WFS exact de l'objet à récupérer, par exemple `commune.8952`."),
22
- result_type: z
23
- .enum(["results", "request"])
24
- .default("results")
25
- .describe("`results` renvoie une FeatureCollection normalisée avec exactement un objet. `request` renvoie la requête WFS compilée (`get_url`) à destination de `create_map` via `geojson_url`, ou pour déboguer."),
26
- select: z
27
- .array(z.string().trim().min(1))
28
- .min(1)
29
- .optional()
30
- .describe("Liste des propriétés non géométriques à renvoyer. Quand `result_type=\"request\"`, la géométrie est automatiquement ajoutée."),
31
- }).strict();
32
- const gpfWfsGetFeatureByIdPublishedInputSchema = generatePublishedInputSchema(gpfWfsGetFeatureByIdInputSchema);
33
- class GpfWfsGetFeatureByIdTool extends MCPTool {
10
+ import { buildPropertyName, executeGetFeatureById } from "../helpers/wfs_engine/byId.js";
11
+ import { getFeatureType } from "../helpers/wfs_engine/execution.js";
12
+ import { buildGetFeatureByIdRequest, toWfsRequestPayload, } from "../helpers/wfs_engine/request.js";
13
+ import { gpfWfsGetFeatureByIdInputSchema, gpfWfsGetFeatureByIdPublishedInputSchema, gpfWfsGetFeatureByIdRequestOutputSchema, } from "../helpers/wfs_engine/schema.js";
14
+ import logger from "../logger.js";
15
+ // --- Tool ---
16
+ class GpfWfsGetFeatureByIdTool extends BaseTool {
34
17
  name = "gpf_wfs_get_feature_by_id";
35
18
  title = "Lecture d’un objet WFS par identifiant";
36
19
  annotations = READ_ONLY_OPEN_WORLD_TOOL_ANNOTATIONS;
@@ -40,6 +23,8 @@ class GpfWfsGetFeatureByIdTool extends MCPTool {
40
23
  "Le contrat garantit une cardinalité stricte : 0 résultat ou plusieurs résultats provoquent une erreur explicite.",
41
24
  "Utiliser `result_type=\"request\"` pour récupérer la requête WFS compilée (avec `get_url`) et l'utiliser ou la visualiser ailleurs."
42
25
  ].join("\n");
26
+ // `schema` remains the runtime validation source, while `inputSchema`
27
+ // publishes the MCP-facing variant expected by clients.
43
28
  schema = gpfWfsGetFeatureByIdInputSchema;
44
29
  /**
45
30
  * Exposes an input schema variant that stays compatible with most MCP integrations.
@@ -50,7 +35,12 @@ class GpfWfsGetFeatureByIdTool extends MCPTool {
50
35
  return gpfWfsGetFeatureByIdPublishedInputSchema;
51
36
  }
52
37
  /**
53
- * Formats compact responses (`request`) into `structuredContent`.
38
+ * Formats compact responses (`request`, `results`) into `structuredContent`.
39
+ *
40
+ * We intentionally do not expose a single `outputSchemaShape` for the tool as
41
+ * a whole: the `results` path returns a generic FeatureCollection whose
42
+ * feature properties depend on the queried WFS layer, while `request` has a
43
+ * compact, closed shape that is worth validating explicitly.
54
44
  *
55
45
  * @param data Raw execution result returned by the tool implementation.
56
46
  * @returns An MCP success response, optionally enriched with structured content.
@@ -62,50 +52,19 @@ class GpfWfsGetFeatureByIdTool extends MCPTool {
62
52
  data.result_type === "request") {
63
53
  return {
64
54
  content: [{ type: "text", text: JSON.stringify(data) }],
65
- structuredContent: gpfWfsGetFeaturesRequestOutputSchema.parse(data),
55
+ structuredContent: gpfWfsGetFeatureByIdRequestOutputSchema.parse(data),
66
56
  };
67
57
  }
68
- return super.createSuccessResponse(data);
69
- }
70
- /**
71
- * Loads a WFS feature type description from the embedded catalog.
72
- *
73
- * @param typename Exact WFS typename to load from the embedded schema store.
74
- * @returns The matching feature type description.
75
- */
76
- async getFeatureType(typename) {
77
- return wfsClient.getFeatureType(typename);
78
- }
79
- /**
80
- * Executes a compiled WFS request as POST and returns the JSON FeatureCollection.
81
- *
82
- * @param request Compiled request split into query-string parameters and POST body.
83
- * @returns The parsed JSON response returned by the WFS endpoint.
84
- */
85
- async fetchFeatureCollection(request) {
86
- const url = `${request.url}?${new URLSearchParams(request.query).toString()}`;
87
- return fetchJSONPost(url, request.body, {
88
- "Content-Type": "application/x-www-form-urlencoded",
89
- "Accept": "application/json",
90
- });
91
- }
92
- /**
93
- * Builds the optional `propertyName` request parameter from `select`.
94
- *
95
- * @param featureType Feature type definition loaded from the embedded catalog.
96
- * @param input Normalized tool input.
97
- * @returns A comma-separated property list, or `undefined` when all properties should be returned.
98
- */
99
- buildPropertyName(featureType, input) {
100
- if (!input.select || input.select.length === 0) {
101
- return undefined;
102
- }
103
- const geometryProperty = getGeometryProperty(featureType);
104
- const selectedProperties = input.select.map((propertyName) => compileSelectProperty(featureType, geometryProperty, propertyName));
105
- if (input.result_type === "request") {
106
- return [...selectedProperties, geometryProperty.name].join(",");
58
+ if (typeof data === "object" &&
59
+ data !== null &&
60
+ "type" in data &&
61
+ data.type === "FeatureCollection") {
62
+ return {
63
+ content: [{ type: "text", text: JSON.stringify(data) }],
64
+ structuredContent: data,
65
+ };
107
66
  }
108
- return selectedProperties.join(",");
67
+ throw new Error("Réponse interne inattendue pour gpf_wfs_get_feature_by_id : le résultat devrait être une requête WFS ou une FeatureCollection.");
109
68
  }
110
69
  /**
111
70
  * Orchestrates the by-id execution flow:
@@ -115,41 +74,25 @@ class GpfWfsGetFeatureByIdTool extends MCPTool {
115
74
  * @returns Either a compiled request or a transformed FeatureCollection containing one feature.
116
75
  */
117
76
  async execute(input) {
118
- const featureType = await this.getFeatureType(input.typename);
119
- const propertyName = this.buildPropertyName(featureType, input);
120
- const request = buildGetFeatureByIdRequest(input.typename, input.feature_id, propertyName);
77
+ logger.info(`[tool] execute ${this.name} ...`, {
78
+ input: input
79
+ });
121
80
  if (input.result_type === "request") {
122
- return {
123
- result_type: "request",
124
- method: request.method,
125
- url: request.url,
126
- query: request.query,
127
- body: request.body,
128
- get_url: request.get_url ?? null,
129
- };
130
- }
131
- const featureCollection = await this.fetchFeatureCollection(request);
132
- if (!Array.isArray(featureCollection?.features)) {
133
- throw new Error("Le service WFS n'a pas retourné de collection d'objets exploitable.");
134
- }
135
- if (featureCollection.features.length === 0) {
136
- throw new Error(`Le feature '${input.feature_id}' est introuvable dans '${input.typename}'.`);
81
+ // The `request` mode is handled here because it returns a preview payload,
82
+ // not the actual by-id WFS result.
83
+ const featureType = await getFeatureType(input.typename);
84
+ const propertyName = buildPropertyName(featureType, {
85
+ includeGeometry: true,
86
+ select: input.select,
87
+ });
88
+ const request = buildGetFeatureByIdRequest(input.typename, input.feature_id, propertyName);
89
+ return toWfsRequestPayload(request);
137
90
  }
138
- if (featureCollection.features.length > 1) {
139
- throw new Error(`Le feature '${input.feature_id}' dans '${input.typename}' devrait être unique, mais ${featureCollection.features.length} objets ont été retournés.`);
140
- }
141
- const [firstFeature] = featureCollection.features;
142
- if (firstFeature?.id !== input.feature_id) {
143
- throw new Error(`Le service WFS a retourné l'identifiant '${String(firstFeature?.id)}' au lieu de '${input.feature_id}'.`);
144
- }
145
- const singleFeatureCollection = {
146
- ...featureCollection,
147
- features: [firstFeature],
148
- totalFeatures: 1,
149
- numberReturned: 1,
150
- numberMatched: 1,
151
- };
152
- return attachFeatureRefs(singleFeatureCollection, input.typename);
91
+ return executeGetFeatureById({
92
+ typename: input.typename,
93
+ feature_id: input.feature_id,
94
+ select: input.select,
95
+ });
153
96
  }
154
97
  }
155
98
  export default GpfWfsGetFeatureByIdTool;
@@ -1 +1 @@
1
- {"version":3,"file":"GpfWfsGetFeatureByIdTool.js","sourceRoot":"","sources":["../../src/tools/GpfWfsGetFeatureByIdTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,qCAAqC,EAAE,MAAM,+BAA+B,CAAC;AACtF,OAAO,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAChG,OAAO,EAAE,0BAA0B,EAAwB,MAAM,oCAAoC,CAAC;AACtG,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,oCAAoC,EAAE,MAAM,mCAAmC,CAAC;AAEzF,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,EAAE,sCAAsC,CAAC;SAC9C,QAAQ,CAAC,oFAAoF,CAAC;IACjG,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,EAAE,qCAAqC,CAAC;SAC7C,QAAQ,CAAC,2EAA2E,CAAC;IACxF,WAAW,EAAE,CAAC;SACX,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;SAC5B,OAAO,CAAC,SAAS,CAAC;SAClB,QAAQ,CAAC,uMAAuM,CAAC;IACpN,MAAM,EAAE,CAAC;SACN,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SAC/B,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,8HAA8H,CAAC;CAC5I,CAAC,CAAC,MAAM,EAAE,CAAC;AAUZ,MAAM,wCAAwC,GAAG,4BAA4B,CAAC,+BAA+B,CAAyB,CAAC;AAEvI,MAAM,wBAAyB,SAAQ,OAAkC;IACvE,IAAI,GAAG,2BAA2B,CAAC;IACnC,KAAK,GAAG,wCAAwC,CAAC;IACjD,WAAW,GAAG,qCAAqC,CAAC;IACpD,WAAW,GAAG;QACZ,+GAA+G;QAC/G,8MAA8M;QAC9M,kHAAkH;QAClH,qIAAqI;KACtI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,MAAM,GAAG,+BAA+B,CAAC;IAEzC;;;;OAIG;IACH,IAAI,WAAW;QACb,OAAO,wCAAwC,CAAC;IAClD,CAAC;IAED;;;;;OAKG;IACO,qBAAqB,CAAC,IAAa;QAC3C,IACE,OAAO,IAAI,KAAK,QAAQ;YACxB,IAAI,KAAK,IAAI;YACb,aAAa,IAAI,IAAI;YACrB,IAAI,CAAC,WAAW,KAAK,SAAS,EAC9B,CAAC;YACD,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChE,iBAAiB,EAAE,oCAAoC,CAAC,KAAK,CAAC,IAAI,CAAC;aACpE,CAAC;QACJ,CAAC;QAED,OAAO,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;OAKG;IACO,KAAK,CAAC,cAAc,CAAC,QAAgB;QAC7C,OAAO,SAAS,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED;;;;;OAKG;IACO,KAAK,CAAC,sBAAsB,CAAC,OAAwB;QAC7D,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC9E,OAAO,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE;YACtC,cAAc,EAAE,mCAAmC;YACnD,QAAQ,EAAE,kBAAkB;SAC7B,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACO,iBAAiB,CAAC,WAAuB,EAAE,KAAgC;QACnF,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/C,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAC1D,MAAM,kBAAkB,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,qBAAqB,CAAC,WAAW,EAAE,gBAAgB,EAAE,YAAY,CAAC,CAAC,CAAC;QAElI,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,kBAAkB,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClE,CAAC;QAED,OAAO,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,OAAO,CAAC,KAAgC;QAC5C,MAAM,WAAW,GAAe,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC1E,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAChE,MAAM,OAAO,GAAG,0BAA0B,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QAE3F,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACpC,OAAO;gBACL,WAAW,EAAE,SAAkB;gBAC/B,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;aACjC,CAAC;QACJ,CAAC;QAED,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;QACrE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,QAAQ,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;QACzF,CAAC;QAED,IAAI,iBAAiB,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,eAAe,KAAK,CAAC,UAAU,2BAA2B,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;QAChG,CAAC;QAED,IAAI,iBAAiB,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,eAAe,KAAK,CAAC,UAAU,WAAW,KAAK,CAAC,QAAQ,+BAA+B,iBAAiB,CAAC,QAAQ,CAAC,MAAM,4BAA4B,CAAC,CAAC;QACxK,CAAC;QAED,MAAM,CAAC,YAAY,CAAC,GAAG,iBAAiB,CAAC,QAAQ,CAAC;QAClD,IAAI,YAAY,EAAE,EAAE,KAAK,KAAK,CAAC,UAAU,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,4CAA4C,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC,iBAAiB,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC;QAC7H,CAAC;QAED,MAAM,uBAAuB,GAAG;YAC9B,GAAG,iBAAiB;YACpB,QAAQ,EAAE,CAAC,YAAY,CAAC;YACxB,aAAa,EAAE,CAAC;YAChB,cAAc,EAAE,CAAC;YACjB,aAAa,EAAE,CAAC;SACjB,CAAC;QAEF,OAAO,iBAAiB,CAAC,uBAAuB,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACpE,CAAC;CACF;AAED,eAAe,wBAAwB,CAAC"}
1
+ {"version":3,"file":"GpfWfsGetFeatureByIdTool.js","sourceRoot":"","sources":["../../src/tools/GpfWfsGetFeatureByIdTool.ts"],"names":[],"mappings":"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"}