kaax-mcp 0.1.7 → 0.1.9

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/gdal.d.ts ADDED
@@ -0,0 +1,76 @@
1
+ /**
2
+ * GDAL bridge — detect a local GDAL install and shell out to `ogr2ogr`
3
+ * for PDF / GeoPDF generation. GDAL is the only realistic way to produce
4
+ * a print-ready PDF map from vector layers in pure-JS-adjacent land; we
5
+ * don't bundle it (multi-hundred-MB native binary), we detect what the
6
+ * user has and give clear install instructions otherwise.
7
+ *
8
+ * Security:
9
+ * - `execFile` (not `exec`) — no shell, no argv interpolation, no
10
+ * command injection.
11
+ * - User-supplied paths are passed as separate argv entries.
12
+ * - `--version` calls run with a 5 s timeout. Generation runs with a
13
+ * 90 s timeout per layer (PDF generation for large polygons can
14
+ * legitimately take ~20 s).
15
+ * - We refuse to spawn anything that isn't on the PATH; the user's
16
+ * local PATH is the trust boundary.
17
+ */
18
+ export interface ToolInfo {
19
+ available: boolean;
20
+ /** First line of `--version` output when present, normalised. */
21
+ version?: string;
22
+ }
23
+ export interface GdalCheckResult {
24
+ /** True if any of the canonical GDAL CLIs is on PATH. */
25
+ available: boolean;
26
+ ogr2ogr: ToolInfo;
27
+ gdalinfo: ToolInfo;
28
+ gdal_translate: ToolInfo;
29
+ /** Per-OS install instructions to show when nothing is found. */
30
+ installHint: string;
31
+ }
32
+ /**
33
+ * Probe the user's PATH for the GDAL CLIs we lean on. Each tool runs
34
+ * its `--version`; failure to spawn (ENOENT) means the binary isn't on
35
+ * PATH, which is the canonical "not installed" signal.
36
+ */
37
+ export declare function checkGdal(): Promise<GdalCheckResult>;
38
+ export interface GeoPdfLayer {
39
+ path: string;
40
+ /** Layer name shown in the PDF's layer panel. Defaults to filename. */
41
+ name?: string;
42
+ }
43
+ export interface GeoPdfOptions {
44
+ /** Document title metadata. */
45
+ title?: string;
46
+ /** Document author metadata. Default: "kaax-mcp". */
47
+ author?: string;
48
+ /** Render DPI — affects vector sharpness on print. Default 150. */
49
+ dpi?: number;
50
+ /**
51
+ * If true, request georeferenced PDF output (so Acrobat / Avenza Maps
52
+ * can show coordinates and measure distances). Defaults to true.
53
+ */
54
+ georeferenced?: boolean;
55
+ }
56
+ export interface GeoPdfResult {
57
+ outputPath: string;
58
+ layers: number;
59
+ /** Captured stderr from ogr2ogr — useful when GDAL emitted warnings. */
60
+ warnings: string[];
61
+ }
62
+ /**
63
+ * Generate a multi-layer PDF / GeoPDF from one or more vector inputs.
64
+ *
65
+ * - Strategy: the first layer creates the PDF (`-f PDF`); each
66
+ * subsequent layer is appended with `-update -append` so they show
67
+ * up as separate toggleable layers in the PDF's layer panel.
68
+ * - `WRITE_USERUNIT=YES` emits a georef block by default (GeoPDF
69
+ * spec). Open the output in Avenza Maps to confirm.
70
+ * - This is a vector overlay PDF. It does NOT include a satellite
71
+ * basemap — adding one would need a raster input (e.g. via
72
+ * `gdal_translate` of a GeoTIFF) and a layer-stack rewrite. Today
73
+ * the user gets a clean vector mapsheet they can open in QGIS,
74
+ * Acrobat or Avenza for printing.
75
+ */
76
+ export declare function generateGeoPdf(layers: GeoPdfLayer[], outputPath: string, options?: GeoPdfOptions): Promise<GeoPdfResult>;
package/dist/gdal.js ADDED
@@ -0,0 +1,160 @@
1
+ /**
2
+ * GDAL bridge — detect a local GDAL install and shell out to `ogr2ogr`
3
+ * for PDF / GeoPDF generation. GDAL is the only realistic way to produce
4
+ * a print-ready PDF map from vector layers in pure-JS-adjacent land; we
5
+ * don't bundle it (multi-hundred-MB native binary), we detect what the
6
+ * user has and give clear install instructions otherwise.
7
+ *
8
+ * Security:
9
+ * - `execFile` (not `exec`) — no shell, no argv interpolation, no
10
+ * command injection.
11
+ * - User-supplied paths are passed as separate argv entries.
12
+ * - `--version` calls run with a 5 s timeout. Generation runs with a
13
+ * 90 s timeout per layer (PDF generation for large polygons can
14
+ * legitimately take ~20 s).
15
+ * - We refuse to spawn anything that isn't on the PATH; the user's
16
+ * local PATH is the trust boundary.
17
+ */
18
+ import { execFile } from "child_process";
19
+ import { promisify } from "util";
20
+ import { existsSync } from "fs";
21
+ const execFileP = promisify(execFile);
22
+ const TIMEOUTS = {
23
+ version: 5_000,
24
+ generate: 90_000,
25
+ };
26
+ /**
27
+ * Probe the user's PATH for the GDAL CLIs we lean on. Each tool runs
28
+ * its `--version`; failure to spawn (ENOENT) means the binary isn't on
29
+ * PATH, which is the canonical "not installed" signal.
30
+ */
31
+ export async function checkGdal() {
32
+ const tools = ["ogr2ogr", "gdalinfo", "gdal_translate"];
33
+ const result = {
34
+ available: false,
35
+ ogr2ogr: { available: false },
36
+ gdalinfo: { available: false },
37
+ gdal_translate: { available: false },
38
+ installHint: buildInstallHint(),
39
+ };
40
+ for (const t of tools) {
41
+ try {
42
+ const { stdout } = await execFileP(t, ["--version"], {
43
+ timeout: TIMEOUTS.version,
44
+ });
45
+ const firstLine = stdout.split("\n")[0]?.trim() ?? "";
46
+ result[t] = { available: true, version: firstLine };
47
+ result.available = true;
48
+ }
49
+ catch {
50
+ result[t] = { available: false };
51
+ }
52
+ }
53
+ return result;
54
+ }
55
+ function buildInstallHint() {
56
+ const os = process.platform;
57
+ if (os === "win32") {
58
+ return [
59
+ "Windows install: download the OSGeo4W installer from",
60
+ " https://trac.osgeo.org/osgeo4w/",
61
+ "Choose 'Express Desktop Install' and tick 'GDAL'. After it",
62
+ "finishes, open a new PowerShell so the OSGeo4W shims appear on",
63
+ "your PATH, then re-run kaax_check_gdal.",
64
+ ].join("\n");
65
+ }
66
+ if (os === "darwin") {
67
+ return [
68
+ "macOS install: with Homebrew (https://brew.sh/):",
69
+ " brew install gdal",
70
+ "Restart your shell after install so the PATH refreshes.",
71
+ ].join("\n");
72
+ }
73
+ return [
74
+ "Linux install:",
75
+ " Debian / Ubuntu: sudo apt install gdal-bin",
76
+ " Fedora: sudo dnf install gdal",
77
+ " Arch: sudo pacman -S gdal",
78
+ ].join("\n");
79
+ }
80
+ /**
81
+ * Generate a multi-layer PDF / GeoPDF from one or more vector inputs.
82
+ *
83
+ * - Strategy: the first layer creates the PDF (`-f PDF`); each
84
+ * subsequent layer is appended with `-update -append` so they show
85
+ * up as separate toggleable layers in the PDF's layer panel.
86
+ * - `WRITE_USERUNIT=YES` emits a georef block by default (GeoPDF
87
+ * spec). Open the output in Avenza Maps to confirm.
88
+ * - This is a vector overlay PDF. It does NOT include a satellite
89
+ * basemap — adding one would need a raster input (e.g. via
90
+ * `gdal_translate` of a GeoTIFF) and a layer-stack rewrite. Today
91
+ * the user gets a clean vector mapsheet they can open in QGIS,
92
+ * Acrobat or Avenza for printing.
93
+ */
94
+ export async function generateGeoPdf(layers, outputPath, options = {}) {
95
+ if (layers.length === 0) {
96
+ throw new Error("Need at least one layer to write a GeoPDF.");
97
+ }
98
+ const check = await checkGdal();
99
+ if (!check.ogr2ogr.available) {
100
+ throw new Error("ogr2ogr is not installed (or not on PATH).\n" + check.installHint);
101
+ }
102
+ // Validate inputs exist before we hand them to GDAL — gives a much
103
+ // clearer error than ogr2ogr's "couldn't open" output.
104
+ for (const l of layers) {
105
+ if (!existsSync(l.path)) {
106
+ throw new Error(`Layer source not found: ${l.path}`);
107
+ }
108
+ }
109
+ const warnings = [];
110
+ // First layer → creates the PDF.
111
+ const first = layers[0];
112
+ const baseArgs = ["-f", "PDF"];
113
+ if (options.dpi)
114
+ baseArgs.push("-dsco", `DPI=${options.dpi}`);
115
+ if (options.title)
116
+ baseArgs.push("-dsco", `TITLE=${options.title}`);
117
+ baseArgs.push("-dsco", `AUTHOR=${options.author ?? "kaax-mcp"}`);
118
+ baseArgs.push("-dsco", "CREATOR=kaax-mcp");
119
+ baseArgs.push("-dsco", "PRODUCER=kaax-mcp");
120
+ if (options.georeferenced !== false) {
121
+ baseArgs.push("-dsco", "WRITE_USERUNIT=YES");
122
+ }
123
+ if (first.name) {
124
+ baseArgs.push("-nln", first.name);
125
+ }
126
+ baseArgs.push(outputPath, first.path);
127
+ await runOgr2ogr(baseArgs, warnings);
128
+ // Remaining layers — append into the existing PDF as separate layers.
129
+ for (let i = 1; i < layers.length; i++) {
130
+ const l = layers[i];
131
+ const appendArgs = [
132
+ "-f",
133
+ "PDF",
134
+ "-update",
135
+ "-append",
136
+ ];
137
+ if (l.name)
138
+ appendArgs.push("-nln", l.name);
139
+ appendArgs.push(outputPath, l.path);
140
+ await runOgr2ogr(appendArgs, warnings);
141
+ }
142
+ return { outputPath, layers: layers.length, warnings };
143
+ }
144
+ async function runOgr2ogr(args, warnings) {
145
+ try {
146
+ const { stderr } = await execFileP("ogr2ogr", args, {
147
+ timeout: TIMEOUTS.generate,
148
+ maxBuffer: 4 * 1024 * 1024,
149
+ });
150
+ if (stderr && stderr.trim().length > 0) {
151
+ warnings.push(stderr.trim());
152
+ }
153
+ }
154
+ catch (err) {
155
+ const e = err;
156
+ const detail = e.stderr?.trim() || e.message || String(err);
157
+ throw new Error(`ogr2ogr failed: ${detail.split("\n").slice(0, 5).join(" | ")}`);
158
+ }
159
+ }
160
+ //# sourceMappingURL=gdal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gdal.js","sourceRoot":"","sources":["../src/gdal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAEhC,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAkBtC,MAAM,QAAQ,GAAG;IACf,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,MAAM;CACjB,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,MAAM,KAAK,GACT,CAAC,SAAS,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAoB;QAC9B,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;QAC7B,QAAQ,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;QAC9B,cAAc,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;QACpC,WAAW,EAAE,gBAAgB,EAAE;KAChC,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE;gBACnD,OAAO,EAAE,QAAQ,CAAC,OAAO;aAC1B,CAAC,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YACtD,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;YACpD,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QACnC,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,gBAAgB;IACvB,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC;IAC5B,IAAI,EAAE,KAAK,OAAO,EAAE,CAAC;QACnB,OAAO;YACL,sDAAsD;YACtD,mCAAmC;YACnC,4DAA4D;YAC5D,gEAAgE;YAChE,yCAAyC;SAC1C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IACD,IAAI,EAAE,KAAK,QAAQ,EAAE,CAAC;QACpB,OAAO;YACL,kDAAkD;YAClD,qBAAqB;YACrB,yDAAyD;SAC1D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IACD,OAAO;QACL,gBAAgB;QAChB,+CAA+C;QAC/C,4CAA4C;QAC5C,0CAA0C;KAC3C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAiCD;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAqB,EACrB,UAAkB,EAClB,UAAyB,EAAE;IAE3B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,SAAS,EAAE,CAAC;IAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,8CAA8C,GAAG,KAAK,CAAC,WAAW,CACnE,CAAC;IACJ,CAAC;IAED,mEAAmE;IACnE,uDAAuD;IACvD,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,iCAAiC;IACjC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;IACzB,MAAM,QAAQ,GAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACzC,IAAI,OAAO,CAAC,GAAG;QAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC9D,IAAI,OAAO,CAAC,KAAK;QAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IACpE,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,OAAO,CAAC,MAAM,IAAI,UAAU,EAAE,CAAC,CAAC;IACjE,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IAC3C,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;IAC5C,IAAI,OAAO,CAAC,aAAa,KAAK,KAAK,EAAE,CAAC;QACpC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;IAC/C,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACf,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IACD,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAEtC,MAAM,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAErC,sEAAsE;IACtE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;QACrB,MAAM,UAAU,GAAa;YAC3B,IAAI;YACJ,KAAK;YACL,SAAS;YACT,SAAS;SACV,CAAC;QACF,IAAI,CAAC,CAAC,IAAI;YAAE,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC5C,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,UAAU,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;AACzD,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,IAAc,EAAE,QAAkB;IAC1D,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE;YAClD,OAAO,EAAE,QAAQ,CAAC,QAAQ;YAC1B,SAAS,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;SAC3B,CAAC,CAAC;QACH,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,GAAG,GAA4C,CAAC;QACvD,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;QAC5D,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACnF,CAAC;AACH,CAAC"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Reports — turn one or several layers into formats the user can actually
3
+ * share with their team: Excel spreadsheets for the office and a single
4
+ * markdown summary for the agent / chat.
5
+ *
6
+ * Excel: every layer becomes a worksheet. Each feature is one row,
7
+ * columns are the union of every property name seen, plus columns for
8
+ * geometry type / WKT (Polygon, LineString, etc.) or lon/lat (Point).
9
+ * A first "Summary" sheet gives the agronomic totals (counts, area in
10
+ * hectares, length in kilometres, distinct row_ids if present).
11
+ *
12
+ * Markdown: a print-ready human-readable digest with one section per
13
+ * layer + a final comparison table. Stays small enough to paste into
14
+ * Slack or a PDF, and the agent reading it can extract numbers without
15
+ * a second tool call.
16
+ */
17
+ import { type AnyFeatureCollection } from "./gis-io.js";
18
+ export interface ExcelExportOptions {
19
+ /** Limit the number of features written — defaults to no limit. */
20
+ limit?: number;
21
+ /**
22
+ * If true, add a `geometry_wkt` column with WKT for non-Point geometries.
23
+ * Off by default because WKT for big polygons blows up cell size.
24
+ */
25
+ includeWkt?: boolean;
26
+ /** Override the sheet name; default 'Features'. */
27
+ sheetName?: string;
28
+ }
29
+ /**
30
+ * Write one or several FeatureCollections to a single XLSX file. The
31
+ * first sheet is `Summary`; the following sheets carry the features of
32
+ * each layer, one feature per row.
33
+ */
34
+ export declare function exportLayersToExcel(layers: Array<{
35
+ name: string;
36
+ fc: AnyFeatureCollection;
37
+ }>, outputPath: string, options?: ExcelExportOptions): Promise<{
38
+ outputPath: string;
39
+ sheets: number;
40
+ totalRows: number;
41
+ }>;
42
+ export interface SummaryReportOptions {
43
+ /** Optional title for the report. */
44
+ title?: string;
45
+ /** Add a Kaax footer link at the bottom. */
46
+ footer?: boolean;
47
+ }
48
+ /**
49
+ * Generate a markdown digest summarising every input layer. Lands on
50
+ * disk as a single .md file; small enough to paste into Slack / a PR
51
+ * description or attach to a PDF for the field crew.
52
+ */
53
+ export declare function generateMarkdownSummary(inputs: Array<{
54
+ name: string;
55
+ path: string;
56
+ }>, outputPath: string, options?: SummaryReportOptions): Promise<{
57
+ outputPath: string;
58
+ layers: number;
59
+ }>;
60
+ /** Build a friendly default name from a path. */
61
+ export declare function defaultLayerName(path: string): string;
@@ -0,0 +1,293 @@
1
+ /**
2
+ * Reports — turn one or several layers into formats the user can actually
3
+ * share with their team: Excel spreadsheets for the office and a single
4
+ * markdown summary for the agent / chat.
5
+ *
6
+ * Excel: every layer becomes a worksheet. Each feature is one row,
7
+ * columns are the union of every property name seen, plus columns for
8
+ * geometry type / WKT (Polygon, LineString, etc.) or lon/lat (Point).
9
+ * A first "Summary" sheet gives the agronomic totals (counts, area in
10
+ * hectares, length in kilometres, distinct row_ids if present).
11
+ *
12
+ * Markdown: a print-ready human-readable digest with one section per
13
+ * layer + a final comparison table. Stays small enough to paste into
14
+ * Slack or a PDF, and the agent reading it can extract numbers without
15
+ * a second tool call.
16
+ */
17
+ import ExcelJS from "exceljs";
18
+ import { writeFile } from "fs/promises";
19
+ import { basename } from "path";
20
+ import * as turf from "@turf/turf";
21
+ import { readAny } from "./gis-io.js";
22
+ import { summariseLayer } from "./gis-ops.js";
23
+ /**
24
+ * Write one or several FeatureCollections to a single XLSX file. The
25
+ * first sheet is `Summary`; the following sheets carry the features of
26
+ * each layer, one feature per row.
27
+ */
28
+ export async function exportLayersToExcel(layers, outputPath, options = {}) {
29
+ const workbook = new ExcelJS.Workbook();
30
+ workbook.creator = "kaax-mcp";
31
+ workbook.created = new Date();
32
+ // Summary sheet — populate after we count, so leave a placeholder.
33
+ // exceljs accepts Partial<Column> shapes at runtime but the TS type
34
+ // for `worksheet.columns` is the full `Column[]`. Cast at the boundary
35
+ // rather than fill in every property we don't use.
36
+ const summary = workbook.addWorksheet("Summary");
37
+ summary.columns = [
38
+ { header: "Layer", key: "layer", width: 28 },
39
+ { header: "Features", key: "count", width: 11 },
40
+ { header: "Geometry types", key: "kinds", width: 24 },
41
+ { header: "Area (ha)", key: "areaHa", width: 12 },
42
+ { header: "Length (km)", key: "lengthKm", width: 13 },
43
+ { header: "Distinct row_ids", key: "rows", width: 16 },
44
+ ];
45
+ summary.getRow(1).font = { bold: true };
46
+ let totalRows = 0;
47
+ for (const { name, fc } of layers) {
48
+ const sheet = workbook.addWorksheet(safeSheetName(name));
49
+ writeFeatureSheet(sheet, fc, options);
50
+ const stats = layerStats(fc);
51
+ summary.addRow({
52
+ layer: name,
53
+ count: stats.count,
54
+ kinds: Object.entries(stats.byGeometry)
55
+ .map(([k, v]) => `${k}:${v}`)
56
+ .join(", "),
57
+ areaHa: stats.totalAreaHa ? Number(stats.totalAreaHa.toFixed(3)) : null,
58
+ lengthKm: stats.totalLengthM
59
+ ? Number((stats.totalLengthM / 1000).toFixed(3))
60
+ : null,
61
+ rows: stats.distinctRows ?? null,
62
+ });
63
+ totalRows += stats.count;
64
+ }
65
+ // Tidy the summary header style.
66
+ summary.getRow(1).alignment = { vertical: "middle", horizontal: "left" };
67
+ await workbook.xlsx.writeFile(outputPath);
68
+ return { outputPath, sheets: layers.length, totalRows };
69
+ }
70
+ function writeFeatureSheet(sheet, fc, options) {
71
+ const limit = options.limit ?? fc.features.length;
72
+ const features = fc.features.slice(0, limit);
73
+ // Collect the union of property names across all features (sorted).
74
+ const propNames = new Set();
75
+ for (const f of features) {
76
+ for (const k of Object.keys(f.properties ?? {}))
77
+ propNames.add(k);
78
+ }
79
+ const sortedProps = [...propNames].sort();
80
+ // Columns: properties + geometry summary. Same Partial-vs-full Column
81
+ // shrug as the Summary sheet — cast at the boundary.
82
+ const columns = [
83
+ { header: "feature_index", key: "feature_index", width: 14 },
84
+ { header: "geometry_type", key: "geometry_type", width: 16 },
85
+ { header: "lon", key: "lon", width: 12 },
86
+ { header: "lat", key: "lat", width: 12 },
87
+ ...sortedProps.map((p) => ({ header: p, key: `p_${p}`, width: 18 })),
88
+ ];
89
+ if (options.includeWkt) {
90
+ columns.push({ header: "geometry_wkt", key: "wkt", width: 80 });
91
+ }
92
+ sheet.columns = columns;
93
+ sheet.getRow(1).font = { bold: true };
94
+ features.forEach((f, idx) => {
95
+ const row = {
96
+ feature_index: idx,
97
+ geometry_type: f.geometry?.type ?? "(none)",
98
+ };
99
+ const centroid = geometryRepresentativePoint(f);
100
+ if (centroid) {
101
+ row.lon = centroid[0];
102
+ row.lat = centroid[1];
103
+ }
104
+ for (const p of sortedProps) {
105
+ const v = f.properties?.[p];
106
+ // Excel can store strings / numbers / booleans / Date. Coerce
107
+ // everything else to JSON so the cell never carries [Object].
108
+ row[`p_${p}`] =
109
+ v === null || v === undefined
110
+ ? null
111
+ : typeof v === "object"
112
+ ? JSON.stringify(v)
113
+ : v;
114
+ }
115
+ if (options.includeWkt && f.geometry) {
116
+ row.wkt = geometryToWKT(f.geometry);
117
+ }
118
+ sheet.addRow(row);
119
+ });
120
+ // Freeze the header row.
121
+ sheet.views = [{ state: "frozen", ySplit: 1 }];
122
+ }
123
+ /** Produce a small representative point (lon, lat) for a feature. */
124
+ function geometryRepresentativePoint(f) {
125
+ if (!f.geometry)
126
+ return null;
127
+ try {
128
+ if (f.geometry.type === "Point") {
129
+ const c = f.geometry.coordinates;
130
+ return [c[0], c[1]];
131
+ }
132
+ const ctr = turf.pointOnFeature(f);
133
+ const c = ctr.geometry.coordinates;
134
+ return [c[0], c[1]];
135
+ }
136
+ catch {
137
+ return null;
138
+ }
139
+ }
140
+ /**
141
+ * Minimal WKT serialiser — enough for QGIS-style import / paste-into-
142
+ * PostGIS. Skips Z values; Kaax data is 2-D.
143
+ */
144
+ function geometryToWKT(g) {
145
+ const ring = (coords) => `(${coords.map((c) => `${c[0]} ${c[1]}`).join(", ")})`;
146
+ const poly = (rings) => `(${rings.map((r) => ring(r)).join(", ")})`;
147
+ switch (g.type) {
148
+ case "Point": {
149
+ const c = g.coordinates;
150
+ return `POINT (${c[0]} ${c[1]})`;
151
+ }
152
+ case "MultiPoint":
153
+ return `MULTIPOINT (${g.coordinates
154
+ .map((c) => `${c[0]} ${c[1]}`)
155
+ .join(", ")})`;
156
+ case "LineString":
157
+ return `LINESTRING ${ring(g.coordinates)}`;
158
+ case "MultiLineString":
159
+ return `MULTILINESTRING (${g.coordinates
160
+ .map((ls) => ring(ls))
161
+ .join(", ")})`;
162
+ case "Polygon":
163
+ return `POLYGON ${poly(g.coordinates)}`;
164
+ case "MultiPolygon":
165
+ return `MULTIPOLYGON (${g.coordinates
166
+ .map((p) => poly(p))
167
+ .join(", ")})`;
168
+ default:
169
+ return `(${g.type})`;
170
+ }
171
+ }
172
+ function safeSheetName(raw) {
173
+ // Excel sheet names: max 31 chars, no : \ / ? * [ ]
174
+ let s = raw.replace(/[:\\/?*[\]]/g, "_").slice(0, 31);
175
+ if (!s)
176
+ s = "Sheet";
177
+ return s;
178
+ }
179
+ function layerStats(fc) {
180
+ const base = summariseLayer(fc);
181
+ const rowIds = new Set();
182
+ let hasRowId = false;
183
+ for (const f of fc.features) {
184
+ const rid = f.properties?.row_id;
185
+ if (typeof rid === "number") {
186
+ hasRowId = true;
187
+ rowIds.add(rid);
188
+ }
189
+ }
190
+ let bbox;
191
+ try {
192
+ const b = turf.bbox(fc);
193
+ bbox = [b[0], b[1], b[2], b[3]];
194
+ }
195
+ catch {
196
+ /* skip — empty or bad geometry */
197
+ }
198
+ return {
199
+ ...base,
200
+ ...(hasRowId ? { distinctRows: rowIds.size } : {}),
201
+ ...(bbox ? { bbox } : {}),
202
+ };
203
+ }
204
+ /**
205
+ * Generate a markdown digest summarising every input layer. Lands on
206
+ * disk as a single .md file; small enough to paste into Slack / a PR
207
+ * description or attach to a PDF for the field crew.
208
+ */
209
+ export async function generateMarkdownSummary(inputs, outputPath, options = {}) {
210
+ const sections = [];
211
+ sections.push(`# ${options.title ?? "Kaax MCP — Layer Report"}`);
212
+ sections.push("");
213
+ sections.push(`Generated ${new Date().toISOString()}`);
214
+ sections.push("");
215
+ sections.push(`Layers analysed: **${inputs.length}**`);
216
+ sections.push("");
217
+ // Per-layer detail
218
+ const allStats = [];
219
+ for (const inp of inputs) {
220
+ sections.push(`## ${inp.name}`);
221
+ sections.push("");
222
+ sections.push(`Source: \`${inp.path}\``);
223
+ try {
224
+ const fc = await readAny(inp.path);
225
+ const s = layerStats(fc);
226
+ allStats.push({ name: inp.name, stats: s, path: inp.path });
227
+ sections.push("");
228
+ sections.push(`- **Features**: ${s.count}`);
229
+ sections.push(`- **Geometry types**: ${Object.entries(s.byGeometry)
230
+ .map(([k, v]) => `${k} × ${v}`)
231
+ .join(", ") || "—"}`);
232
+ if (s.totalAreaHa !== undefined) {
233
+ sections.push(`- **Total area**: ${s.totalAreaHa.toFixed(2)} ha`);
234
+ }
235
+ if (s.totalLengthM !== undefined) {
236
+ sections.push(`- **Total length**: ${(s.totalLengthM / 1000).toFixed(2)} km`);
237
+ }
238
+ if (s.distinctRows !== undefined) {
239
+ sections.push(`- **Rows (distinct row_id)**: ${s.distinctRows}`);
240
+ }
241
+ if (s.bbox) {
242
+ sections.push(`- **Bounding box**: ${s.bbox
243
+ .map((n) => n.toFixed(5))
244
+ .join(", ")} (minLon, minLat, maxLon, maxLat)`);
245
+ }
246
+ }
247
+ catch (err) {
248
+ sections.push("");
249
+ sections.push(`> ⚠️ Failed to read this layer: ${err.message}`);
250
+ }
251
+ sections.push("");
252
+ }
253
+ // Comparison table if there are 2+ layers.
254
+ if (allStats.length >= 2) {
255
+ sections.push("## Comparison");
256
+ sections.push("");
257
+ sections.push("| Layer | Features | Area (ha) | Length (km) | Rows |");
258
+ sections.push("|---|---:|---:|---:|---:|");
259
+ for (const s of allStats) {
260
+ const cells = [
261
+ s.name,
262
+ String(s.stats.count),
263
+ s.stats.totalAreaHa !== undefined
264
+ ? s.stats.totalAreaHa.toFixed(2)
265
+ : "—",
266
+ s.stats.totalLengthM !== undefined
267
+ ? (s.stats.totalLengthM / 1000).toFixed(2)
268
+ : "—",
269
+ s.stats.distinctRows !== undefined
270
+ ? String(s.stats.distinctRows)
271
+ : "—",
272
+ ];
273
+ sections.push(`| ${cells.join(" | ")} |`);
274
+ }
275
+ sections.push("");
276
+ }
277
+ if (options.footer !== false) {
278
+ sections.push("---");
279
+ sections.push("");
280
+ sections.push("Generated by [kaax-mcp](https://www.npmjs.com/package/kaax-mcp).");
281
+ }
282
+ const md = sections.join("\n");
283
+ await writeFile(outputPath, md, "utf8");
284
+ return { outputPath, layers: inputs.length };
285
+ }
286
+ // ─────────────────────────────────────────────────────────────────────────
287
+ // Helpers for tools.ts
288
+ // ─────────────────────────────────────────────────────────────────────────
289
+ /** Build a friendly default name from a path. */
290
+ export function defaultLayerName(path) {
291
+ return basename(path, /\.[^.]+$/.exec(path)?.[0] ?? "");
292
+ }
293
+ //# sourceMappingURL=gis-reports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gis-reports.js","sourceRoot":"","sources":["../src/gis-reports.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAKhC,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,OAAO,EAA6B,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAkB9C;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAyD,EACzD,UAAkB,EAClB,UAA8B,EAAE;IAEhC,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IACxC,QAAQ,CAAC,OAAO,GAAG,UAAU,CAAC;IAC9B,QAAQ,CAAC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;IAE9B,mEAAmE;IACnE,oEAAoE;IACpE,uEAAuE;IACvE,mDAAmD;IACnD,MAAM,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACjD,OAAO,CAAC,OAAO,GAAG;QAChB,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;QAC5C,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;QAC/C,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;QACrD,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;QACjD,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE;QACrD,EAAE,MAAM,EAAE,kBAAkB,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;KACxB,CAAC;IACjC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAExC,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,KAAK,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,MAAM,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,QAAQ,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;QACzD,iBAAiB,CAAC,KAAK,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;QAC7B,OAAO,CAAC,MAAM,CAAC;YACb,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC;iBACpC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;iBAC5B,IAAI,CAAC,IAAI,CAAC;YACb,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;YACvE,QAAQ,EAAE,KAAK,CAAC,YAAY;gBAC1B,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAChD,CAAC,CAAC,IAAI;YACR,IAAI,EAAE,KAAK,CAAC,YAAY,IAAI,IAAI;SACjC,CAAC,CAAC;QACH,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC;IAC3B,CAAC;IAED,iCAAiC;IACjC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;IAEzE,MAAM,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC;AAC1D,CAAC;AAED,SAAS,iBAAiB,CACxB,KAAwB,EACxB,EAAwB,EACxB,OAA2B;IAE3B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;IAClD,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC7C,oEAAoE;IACpE,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC;YAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,WAAW,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;IAE1C,sEAAsE;IACtE,qDAAqD;IACrD,MAAM,OAAO,GAAG;QACd,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,EAAE;QAC5D,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,EAAE;QAC5D,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;QACxC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;QACxC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;KACrE,CAAC;IACF,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IAClE,CAAC;IACD,KAAK,CAAC,OAAO,GAAG,OAAsC,CAAC;IACvD,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAEtC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;QAC1B,MAAM,GAAG,GAA4B;YACnC,aAAa,EAAE,GAAG;YAClB,aAAa,EAAE,CAAC,CAAC,QAAQ,EAAE,IAAI,IAAI,QAAQ;SAC5C,CAAC;QACF,MAAM,QAAQ,GAAG,2BAA2B,CAAC,CAAC,CAAC,CAAC;QAChD,IAAI,QAAQ,EAAE,CAAC;YACb,GAAG,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YACtB,GAAG,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;YAC5B,MAAM,CAAC,GAAI,CAAC,CAAC,UAAkD,EAAE,CAAC,CAAC,CAAC,CAAC;YACrE,8DAA8D;YAC9D,8DAA8D;YAC9D,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACX,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS;oBAC3B,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ;wBACrB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;wBACnB,CAAC,CAAE,CAA+B,CAAC;QAC3C,CAAC;QACD,IAAI,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;YACrC,GAAG,CAAC,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,yBAAyB;IACzB,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;AACjD,CAAC;AAED,qEAAqE;AACrE,SAAS,2BAA2B,CAClC,CAA6C;IAE7C,IAAI,CAAC,CAAC,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC7B,IAAI,CAAC;QACH,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAChC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,WAA+B,CAAC;YACrD,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,WAA+B,CAAC;QACvD,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CAAC,CAAW;IAChC,MAAM,IAAI,GAAG,CAAC,MAAkB,EAAE,EAAE,CAClC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IACzD,MAAM,IAAI,GAAG,CAAC,KAAmB,EAAE,EAAE,CACnC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IAC9C,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QACf,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,CAAC,GAAG,CAAC,CAAC,WAAuB,CAAC;YACpC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACnC,CAAC;QACD,KAAK,YAAY;YACf,OAAO,eAAgB,CAAC,CAAC,WAA0B;iBAChD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC7B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QACnB,KAAK,YAAY;YACf,OAAO,cAAc,IAAI,CAAC,CAAC,CAAC,WAAyB,CAAC,EAAE,CAAC;QAC3D,KAAK,iBAAiB;YACpB,OAAO,oBAAqB,CAAC,CAAC,WAA4B;iBACvD,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;iBACrB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QACnB,KAAK,SAAS;YACZ,OAAO,WAAW,IAAI,CAAC,CAAC,CAAC,WAA2B,CAAC,EAAE,CAAC;QAC1D,KAAK,cAAc;YACjB,OAAO,iBAAkB,CAAC,CAAC,WAA8B;iBACtD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBACnB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QACnB;YACE,OAAO,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC;IACzB,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,GAAW;IAChC,oDAAoD;IACpD,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACtD,IAAI,CAAC,CAAC;QAAE,CAAC,GAAG,OAAO,CAAC;IACpB,OAAO,CAAC,CAAC;AACX,CAAC;AAiBD,SAAS,UAAU,CAAC,EAAwB;IAC1C,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAI,CAAC,CAAC,UAA0C,EAAE,MAAM,CAAC;QAClE,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,QAAQ,GAAG,IAAI,CAAC;YAChB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IACD,IAAI,IAAoC,CAAC;IACzC,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxB,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,kCAAkC;IACpC,CAAC;IACD,OAAO;QACL,GAAG,IAAI;QACP,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1B,CAAC;AACJ,CAAC;AAaD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,MAA6C,EAC7C,UAAkB,EAClB,UAAgC,EAAE;IAElC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,QAAQ,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,KAAK,IAAI,yBAAyB,EAAE,CAAC,CAAC;IACjE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClB,QAAQ,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACvD,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClB,QAAQ,CAAC,IAAI,CAAC,sBAAsB,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;IACvD,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAElB,mBAAmB;IACnB,MAAM,QAAQ,GAA6D,EAAE,CAAC;IAC9E,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClB,QAAQ,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACnC,MAAM,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;YACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5D,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClB,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YAC5C,QAAQ,CAAC,IAAI,CACX,yBACE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC;iBACzB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;iBAC9B,IAAI,CAAC,IAAI,CAAC,IAAI,GACnB,EAAE,CACH,CAAC;YACF,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;gBAChC,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACpE,CAAC;YACD,IAAI,CAAC,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;gBACjC,QAAQ,CAAC,IAAI,CACX,uBAAuB,CAAC,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAC/D,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;gBACjC,QAAQ,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC;YACnE,CAAC;YACD,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;gBACX,QAAQ,CAAC,IAAI,CACX,uBAAuB,CAAC,CAAC,IAAI;qBAC1B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;qBACxB,IAAI,CAAC,IAAI,CAAC,mCAAmC,CACjD,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClB,QAAQ,CAAC,IAAI,CACX,mCAAoC,GAAa,CAAC,OAAO,EAAE,CAC5D,CAAC;QACJ,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC;IAED,2CAA2C;IAC3C,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACzB,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC/B,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClB,QAAQ,CAAC,IAAI,CACX,uDAAuD,CACxD,CAAC;QACF,QAAQ,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAC3C,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG;gBACZ,CAAC,CAAC,IAAI;gBACN,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;gBACrB,CAAC,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS;oBAC/B,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;oBAChC,CAAC,CAAC,GAAG;gBACP,CAAC,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS;oBAChC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;oBAC1C,CAAC,CAAC,GAAG;gBACP,CAAC,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS;oBAChC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;oBAC9B,CAAC,CAAC,GAAG;aACR,CAAC;YACF,QAAQ,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;QAC7B,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClB,QAAQ,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;IACpF,CAAC;IAED,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,SAAS,CAAC,UAAU,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;IACxC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;AAC/C,CAAC;AAED,4EAA4E;AAC5E,uBAAuB;AACvB,4EAA4E;AAE5E,iDAAiD;AACjD,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAO,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAC1D,CAAC"}
package/dist/index.js CHANGED
@@ -30,7 +30,7 @@ import { buildResources } from "./resources.js";
30
30
  import { buildPrompts } from "./prompts.js";
31
31
  import { runInit } from "./init.js";
32
32
  const SERVER_NAME = "kaax-mcp";
33
- const SERVER_VERSION = "0.1.7";
33
+ const SERVER_VERSION = "0.1.9";
34
34
  function bail(msg) {
35
35
  // stderr only — MCP clients pipe stdout for protocol traffic.
36
36
  process.stderr.write(`[${SERVER_NAME}] ${msg}\n`);
package/dist/tools.js CHANGED
@@ -15,6 +15,8 @@ import { downloadAnalysisFiles, listAvailableFiles } from "./analysis-files.js";
15
15
  import { readAny, writeGeoJSON, writeKML, writeShapefileZip, } from "./gis-io.js";
16
16
  import { addIdField, bufferLayer, clipByMask, differenceLayers, extractFeaturesInPolygons, filterFeatures, intersectLayers, splitByAttribute, summariseLayer, validateForKaax, } from "./gis-ops.js";
17
17
  import { clusterPointsByRow, detectRowOrientation, generateRowLines, } from "./gis-rows.js";
18
+ import { defaultLayerName, exportLayersToExcel, generateMarkdownSummary, } from "./gis-reports.js";
19
+ import { checkGdal, generateGeoPdf } from "./gdal.js";
18
20
  import { existsSync } from "fs";
19
21
  import { mkdir } from "fs/promises";
20
22
  import { homedir } from "os";
@@ -378,6 +380,57 @@ const GenerateRowLinesArgs = z.object({
378
380
  .optional()
379
381
  .describe("If true, also write a sibling `<outputPath base>_streets.<ext>` with the detected street gaps as 2-point LineStrings."),
380
382
  });
383
+ const ExportToExcelArgs = z.object({
384
+ inputs: z
385
+ .array(z.object({
386
+ path: z.string(),
387
+ name: z.string().optional().describe("Sheet name (default: filename without ext)"),
388
+ }))
389
+ .min(1)
390
+ .describe("Layers to include. Each entry becomes its own worksheet, plus a Summary sheet at the front."),
391
+ outputPath: z.string().describe("Where to write the .xlsx file"),
392
+ includeWkt: z
393
+ .boolean()
394
+ .optional()
395
+ .describe("Include a `geometry_wkt` column. Off by default — WKT for big polygons inflates cell size."),
396
+ limit: z
397
+ .number()
398
+ .int()
399
+ .min(1)
400
+ .optional()
401
+ .describe("Max features per layer. No cap by default."),
402
+ });
403
+ const SummaryReportArgs = z.object({
404
+ inputs: z
405
+ .array(z.object({
406
+ path: z.string(),
407
+ name: z.string().optional(),
408
+ }))
409
+ .min(1),
410
+ outputPath: z.string().describe("Where to write the .md file"),
411
+ title: z.string().optional(),
412
+ });
413
+ const CheckGdalArgs = z.object({});
414
+ const GenerateGeoPdfArgs = z.object({
415
+ layers: z
416
+ .array(z.object({
417
+ path: z.string().describe("Path to a vector layer (.shp / .geojson / .kml)"),
418
+ name: z
419
+ .string()
420
+ .optional()
421
+ .describe("Layer name in the PDF's layer panel"),
422
+ }))
423
+ .min(1)
424
+ .describe("Layers to draw; first is the base, the rest are appended"),
425
+ outputPath: z.string().describe("Where to write the .pdf"),
426
+ title: z.string().optional(),
427
+ author: z.string().optional(),
428
+ dpi: z.number().int().min(72).max(600).optional(),
429
+ georeferenced: z
430
+ .boolean()
431
+ .optional()
432
+ .describe("If true (default), the PDF carries a georef block so Avenza Maps / Acrobat can show coordinates."),
433
+ });
381
434
  const CrossValidateAnalysesArgs = z.object({
382
435
  analysisIdA: z
383
436
  .string()
@@ -1419,6 +1472,120 @@ export function buildTools() {
1419
1472
  }
1420
1473
  },
1421
1474
  },
1475
+ // ── Local GIS — reports (Excel + markdown) ────────────────────────
1476
+ {
1477
+ name: "kaax_export_features_to_excel",
1478
+ description: "[Free] Export one or several layers (.shp / .kml / .geojson) to a single .xlsx file. Each input becomes a worksheet; a Summary sheet at the front lists counts, areas, lengths and distinct row_ids per layer. One row per feature, columns are the union of every property name seen. Optional `geometry_wkt` column for QGIS / PostGIS round-tripping.",
1479
+ inputSchema: zodToJsonSchema(ExportToExcelArgs),
1480
+ async handler(args) {
1481
+ try {
1482
+ const { inputs, outputPath, includeWkt, limit } = ExportToExcelArgs.parse(args);
1483
+ const layers = [];
1484
+ for (const inp of inputs) {
1485
+ const fc = await readAny(inp.path);
1486
+ layers.push({ name: inp.name ?? defaultLayerName(inp.path), fc });
1487
+ }
1488
+ const result = await exportLayersToExcel(layers, outputPath, {
1489
+ includeWkt,
1490
+ limit,
1491
+ });
1492
+ return text(`✅ Excel report written: ${result.outputPath}`, ` Sheets: ${result.sheets} (+ 1 Summary)`, ` Total rows across feature sheets: ${result.totalRows}`, "", "Open with Excel / LibreOffice / Google Sheets.");
1493
+ }
1494
+ catch (err) {
1495
+ return errorText(err);
1496
+ }
1497
+ },
1498
+ },
1499
+ {
1500
+ name: "kaax_generate_summary_report",
1501
+ description: "[Free] Generate a markdown digest of one or several layers. Per-layer detail (count, geometry types, area, length, row count, bounding box) plus a comparison table at the bottom. Small enough to paste into Slack / a PR description / attach to a PDF for the field crew.",
1502
+ inputSchema: zodToJsonSchema(SummaryReportArgs),
1503
+ async handler(args) {
1504
+ try {
1505
+ const { inputs, outputPath, title } = SummaryReportArgs.parse(args);
1506
+ const named = inputs.map((i) => ({
1507
+ name: i.name ?? defaultLayerName(i.path),
1508
+ path: i.path,
1509
+ }));
1510
+ const result = await generateMarkdownSummary(named, outputPath, {
1511
+ title,
1512
+ });
1513
+ return text(`✅ Summary report written: ${result.outputPath}`, ` Layers analysed: ${result.layers}`, "", "It's a regular .md — preview in VS Code or paste into any markdown chat.");
1514
+ }
1515
+ catch (err) {
1516
+ return errorText(err);
1517
+ }
1518
+ },
1519
+ },
1520
+ // ── Local GIS — GDAL bridge (GeoPDF export) ───────────────────────
1521
+ {
1522
+ name: "kaax_check_gdal",
1523
+ description: "[Free] Probe the user's PATH for the GDAL CLIs the MCP can shell out to (ogr2ogr, gdalinfo, gdal_translate). Reports which are present and their versions, or platform-specific install instructions when nothing is found. Call this BEFORE kaax_generate_geopdf so the user knows what to install if anything is missing.",
1524
+ inputSchema: zodToJsonSchema(CheckGdalArgs),
1525
+ async handler() {
1526
+ try {
1527
+ const result = await checkGdal();
1528
+ if (!result.available) {
1529
+ return text("❌ No GDAL CLIs found on PATH.", "", "Install hint:", result.installHint);
1530
+ }
1531
+ const lines = ["✅ GDAL detected:"];
1532
+ if (result.ogr2ogr.available) {
1533
+ lines.push(` • ogr2ogr ${result.ogr2ogr.version ?? "(version unknown)"}`);
1534
+ }
1535
+ else {
1536
+ lines.push(` • ogr2ogr not on PATH`);
1537
+ }
1538
+ if (result.gdalinfo.available) {
1539
+ lines.push(` • gdalinfo ${result.gdalinfo.version ?? "(version unknown)"}`);
1540
+ }
1541
+ if (result.gdal_translate.available) {
1542
+ lines.push(` • gdal_translate ${result.gdal_translate.version ?? "(version unknown)"}`);
1543
+ }
1544
+ if (!result.ogr2ogr.available) {
1545
+ lines.push("");
1546
+ lines.push("⚠️ ogr2ogr specifically is required for GeoPDF generation.");
1547
+ lines.push(result.installHint);
1548
+ }
1549
+ return text(...lines);
1550
+ }
1551
+ catch (err) {
1552
+ return errorText(err);
1553
+ }
1554
+ },
1555
+ },
1556
+ {
1557
+ name: "kaax_generate_geopdf",
1558
+ description: "[Free] Generate a print-ready PDF / GeoPDF from one or more vector layers (.shp / .geojson / .kml). Each input becomes a togglable layer in the PDF's layer panel. Output carries a georeferenced block by default — Avenza Maps and Acrobat will show coordinates and measure distances. REQUIRES GDAL on PATH (call kaax_check_gdal first). NOTE: this is a vector overlay PDF, not a satellite-basemap map; for the latter use QGIS's print composer.",
1559
+ inputSchema: zodToJsonSchema(GenerateGeoPdfArgs),
1560
+ async handler(args) {
1561
+ try {
1562
+ const parsed = GenerateGeoPdfArgs.parse(args);
1563
+ const result = await generateGeoPdf(parsed.layers, parsed.outputPath, {
1564
+ title: parsed.title,
1565
+ author: parsed.author,
1566
+ dpi: parsed.dpi,
1567
+ georeferenced: parsed.georeferenced,
1568
+ });
1569
+ const lines = [
1570
+ `✅ GeoPDF written: ${result.outputPath}`,
1571
+ ` Layers: ${result.layers}`,
1572
+ ];
1573
+ if (result.warnings.length > 0) {
1574
+ lines.push("");
1575
+ lines.push("ogr2ogr emitted these warnings:");
1576
+ for (const w of result.warnings.slice(0, 5)) {
1577
+ lines.push(` • ${w.split("\n")[0]}`);
1578
+ }
1579
+ }
1580
+ lines.push("");
1581
+ lines.push("Open with Adobe Acrobat / Avenza Maps (mobile) / QGIS to inspect.");
1582
+ return text(...lines);
1583
+ }
1584
+ catch (err) {
1585
+ return errorText(err);
1586
+ }
1587
+ },
1588
+ },
1422
1589
  {
1423
1590
  name: "kaax_cross_validate_analyses",
1424
1591
  description: "[Pro] High-level orchestrator for the canonical 'lines of A inside zones of B' cross-validation. Given two analysisIds (Pro because it reads analyses): downloads both, locates the SHP layers inside each report ZIP, runs extract_features_in_polygons, writes <outputDir>/<idA>_inside.zip + _outside.zip, and reports stats. One tool call does what would otherwise need 5.",
package/dist/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kaax-mcp",
3
- "version": "0.1.7",
3
+ "version": "0.1.9",
4
4
  "description": "MCP server for Kaax — one-liner installer (`npx -y kaax-mcp init`) that wires Kaax into Claude Desktop, Claude Code, Cursor and Windsurf. Onboards new users, queries analyses, suggests configurations, converts shapefiles to KML and guides downloads.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -44,6 +44,7 @@
44
44
  "@modelcontextprotocol/sdk": "^1.0.4",
45
45
  "@turf/turf": "^7.3.5",
46
46
  "adm-zip": "^0.5.17",
47
+ "exceljs": "^4.4.0",
47
48
  "shapefile": "^0.6.6",
48
49
  "undici": "^6.20.1",
49
50
  "xmlbuilder2": "^3.1.1",