@honua/mcp-server 0.0.10-alpha.0 → 0.1.0-beta.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 +259 -15
- package/certification/geospatial-mcp-schemas/PROVENANCE.md +41 -0
- package/certification/geospatial-mcp-schemas/README.md +90 -0
- package/certification/geospatial-mcp-schemas/common/geoprocessing-error.schema.json +45 -0
- package/certification/geospatial-mcp-schemas/conformance/manifest.schema.json +79 -0
- package/certification/geospatial-mcp-schemas/index.json +390 -0
- package/certification/geospatial-mcp-schemas/resources/app-package.schema.json +20 -0
- package/certification/geospatial-mcp-schemas/resources/app-template.schema.json +15 -0
- package/certification/geospatial-mcp-schemas/resources/artifact.schema.json +69 -0
- package/certification/geospatial-mcp-schemas/resources/deployment.schema.json +27 -0
- package/certification/geospatial-mcp-schemas/resources/map-package.schema.json +21 -0
- package/certification/geospatial-mcp-schemas/resources/map-template.schema.json +15 -0
- package/certification/geospatial-mcp-schemas/resources/provenance.schema.json +50 -0
- package/certification/geospatial-mcp-schemas/resources/published-service.schema.json +21 -0
- package/certification/geospatial-mcp-schemas/resources/result-package.schema.json +64 -0
- package/certification/geospatial-mcp-schemas/resources/style.schema.json +12 -0
- package/certification/geospatial-mcp-schemas/resources/theme.schema.json +12 -0
- package/certification/geospatial-mcp-schemas/resources/workspace.schema.json +63 -0
- package/certification/geospatial-mcp-schemas/tools/apply_style_preset.schema.json +27 -0
- package/certification/geospatial-mcp-schemas/tools/buffer_features.schema.json +60 -0
- package/certification/geospatial-mcp-schemas/tools/cancel_job.schema.json +15 -0
- package/certification/geospatial-mcp-schemas/tools/clarify_intent.schema.json +69 -0
- package/certification/geospatial-mcp-schemas/tools/compose_mixed_protocol_map.schema.json +21 -0
- package/certification/geospatial-mcp-schemas/tools/create_app_package.schema.json +33 -0
- package/certification/geospatial-mcp-schemas/tools/create_map_package.schema.json +41 -0
- package/certification/geospatial-mcp-schemas/tools/edit_features.schema.json +74 -0
- package/certification/geospatial-mcp-schemas/tools/execute_plan.schema.json +64 -0
- package/certification/geospatial-mcp-schemas/tools/export_dataset.schema.json +60 -0
- package/certification/geospatial-mcp-schemas/tools/geocode_address.schema.json +36 -0
- package/certification/geospatial-mcp-schemas/tools/geocode_addresses.schema.json +34 -0
- package/certification/geospatial-mcp-schemas/tools/get_style.schema.json +40 -0
- package/certification/geospatial-mcp-schemas/tools/ground_candidates.schema.json +66 -0
- package/certification/geospatial-mcp-schemas/tools/ingest_dataset.schema.json +45 -0
- package/certification/geospatial-mcp-schemas/tools/join_features.schema.json +73 -0
- package/certification/geospatial-mcp-schemas/tools/list_capabilities.schema.json +21 -0
- package/certification/geospatial-mcp-schemas/tools/list_layers.schema.json +14 -0
- package/certification/geospatial-mcp-schemas/tools/overlay_features.schema.json +53 -0
- package/certification/geospatial-mcp-schemas/tools/plan_analysis.schema.json +19 -0
- package/certification/geospatial-mcp-schemas/tools/preview_app_package.schema.json +15 -0
- package/certification/geospatial-mcp-schemas/tools/preview_map_package.schema.json +17 -0
- package/certification/geospatial-mcp-schemas/tools/preview_package.schema.json +40 -0
- package/certification/geospatial-mcp-schemas/tools/propose_operation.schema.json +28 -0
- package/certification/geospatial-mcp-schemas/tools/publish_result.schema.json +29 -0
- package/certification/geospatial-mcp-schemas/tools/publish_service.schema.json +59 -0
- package/certification/geospatial-mcp-schemas/tools/query_features.schema.json +74 -0
- package/certification/geospatial-mcp-schemas/tools/refine_map_package.schema.json +22 -0
- package/certification/geospatial-mcp-schemas/tools/render_map.schema.json +60 -0
- package/certification/geospatial-mcp-schemas/tools/reproject_features.schema.json +49 -0
- package/certification/geospatial-mcp-schemas/tools/resolve_entity.schema.json +30 -0
- package/certification/geospatial-mcp-schemas/tools/solve_route.schema.json +39 -0
- package/certification/geospatial-mcp-schemas/tools/summarize_statistics.schema.json +71 -0
- package/certification/geospatial-mcp-schemas/tools/validate_package.schema.json +35 -0
- package/certification/geospatial-mcp-schemas/tools/validate_plan.schema.json +61 -0
- package/dist/src/capability.d.ts +48 -0
- package/dist/src/capability.d.ts.map +1 -0
- package/dist/src/capability.js +44 -0
- package/dist/src/certification/census-data.d.ts +33 -0
- package/dist/src/certification/census-data.d.ts.map +1 -0
- package/dist/src/certification/census-data.js +506 -0
- package/dist/src/certification/census-fixture-client.d.ts +7 -0
- package/dist/src/certification/census-fixture-client.d.ts.map +1 -0
- package/dist/src/certification/census-fixture-client.js +226 -0
- package/dist/src/certification/certifier.d.ts +125 -0
- package/dist/src/certification/certifier.d.ts.map +1 -0
- package/dist/src/certification/certifier.js +455 -0
- package/dist/src/certification/cli.d.ts +3 -0
- package/dist/src/certification/cli.d.ts.map +1 -0
- package/dist/src/certification/cli.js +63 -0
- package/dist/src/certification/contracts.d.ts +103 -0
- package/dist/src/certification/contracts.d.ts.map +1 -0
- package/dist/src/certification/contracts.js +245 -0
- package/dist/src/certification/fixture-client.d.ts +4 -0
- package/dist/src/certification/fixture-client.d.ts.map +1 -0
- package/dist/src/certification/fixture-client.js +113 -0
- package/dist/src/certification/fixtures.d.ts +45 -0
- package/dist/src/certification/fixtures.d.ts.map +1 -0
- package/dist/src/certification/fixtures.js +92 -0
- package/dist/src/certification/json-schema.d.ts +71 -0
- package/dist/src/certification/json-schema.d.ts.map +1 -0
- package/dist/src/certification/json-schema.js +172 -0
- package/dist/src/certification/lifecycle.d.ts +14 -0
- package/dist/src/certification/lifecycle.d.ts.map +1 -0
- package/dist/src/certification/lifecycle.js +326 -0
- package/dist/src/certification/mock-upstream.d.ts +29 -0
- package/dist/src/certification/mock-upstream.d.ts.map +1 -0
- package/dist/src/certification/mock-upstream.js +96 -0
- package/dist/src/certification/operator-catalog.d.ts +90 -0
- package/dist/src/certification/operator-catalog.d.ts.map +1 -0
- package/dist/src/certification/operator-catalog.js +650 -0
- package/dist/src/certification/report.d.ts +4 -0
- package/dist/src/certification/report.d.ts.map +1 -0
- package/dist/src/certification/report.js +103 -0
- package/dist/src/certification/run.d.ts +28 -0
- package/dist/src/certification/run.d.ts.map +1 -0
- package/dist/src/certification/run.js +32 -0
- package/dist/src/certification/schema-index.d.ts +94 -0
- package/dist/src/certification/schema-index.d.ts.map +1 -0
- package/dist/src/certification/schema-index.js +109 -0
- package/dist/src/certification/target.d.ts +48 -0
- package/dist/src/certification/target.d.ts.map +1 -0
- package/dist/src/certification/target.js +219 -0
- package/dist/src/eval/cli.d.ts +3 -0
- package/dist/src/eval/cli.d.ts.map +1 -0
- package/dist/src/eval/cli.js +118 -0
- package/dist/src/eval/corpus.d.ts +34 -0
- package/dist/src/eval/corpus.d.ts.map +1 -0
- package/dist/src/eval/corpus.js +150 -0
- package/dist/src/eval/drivers/anthropic.d.ts +14 -0
- package/dist/src/eval/drivers/anthropic.d.ts.map +1 -0
- package/dist/src/eval/drivers/anthropic.js +120 -0
- package/dist/src/eval/drivers/bedrock.d.ts +54 -0
- package/dist/src/eval/drivers/bedrock.d.ts.map +1 -0
- package/dist/src/eval/drivers/bedrock.js +178 -0
- package/dist/src/eval/drivers/deterministic.d.ts +17 -0
- package/dist/src/eval/drivers/deterministic.d.ts.map +1 -0
- package/dist/src/eval/drivers/deterministic.js +64 -0
- package/dist/src/eval/drivers/index.d.ts +34 -0
- package/dist/src/eval/drivers/index.d.ts.map +1 -0
- package/dist/src/eval/drivers/index.js +74 -0
- package/dist/src/eval/drivers/openai.d.ts +14 -0
- package/dist/src/eval/drivers/openai.d.ts.map +1 -0
- package/dist/src/eval/drivers/openai.js +136 -0
- package/dist/src/eval/grade.d.ts +14 -0
- package/dist/src/eval/grade.d.ts.map +1 -0
- package/dist/src/eval/grade.js +75 -0
- package/dist/src/eval/northstar-corpus.d.ts +3 -0
- package/dist/src/eval/northstar-corpus.d.ts.map +1 -0
- package/dist/src/eval/northstar-corpus.js +194 -0
- package/dist/src/eval/operator-corpus.d.ts +3 -0
- package/dist/src/eval/operator-corpus.d.ts.map +1 -0
- package/dist/src/eval/operator-corpus.js +193 -0
- package/dist/src/eval/report.d.ts +109 -0
- package/dist/src/eval/report.d.ts.map +1 -0
- package/dist/src/eval/report.js +133 -0
- package/dist/src/eval/runner.d.ts +28 -0
- package/dist/src/eval/runner.d.ts.map +1 -0
- package/dist/src/eval/runner.js +130 -0
- package/dist/src/eval/standalone-corpus.d.ts +3 -0
- package/dist/src/eval/standalone-corpus.d.ts.map +1 -0
- package/dist/src/eval/standalone-corpus.js +699 -0
- package/dist/src/eval/types.d.ts +118 -0
- package/dist/src/eval/types.d.ts.map +1 -0
- package/dist/src/eval/types.js +10 -0
- package/dist/src/helpers.d.ts +11 -0
- package/dist/src/helpers.d.ts.map +1 -1
- package/dist/src/helpers.js +22 -0
- package/dist/src/index.d.ts +31 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +50 -4
- package/dist/src/provenance.d.ts +44 -0
- package/dist/src/provenance.d.ts.map +1 -0
- package/dist/src/provenance.js +37 -0
- package/dist/src/proxy.d.ts +46 -0
- package/dist/src/proxy.d.ts.map +1 -0
- package/dist/src/proxy.js +124 -0
- package/dist/src/resources/styles.d.ts +29 -0
- package/dist/src/resources/styles.d.ts.map +1 -0
- package/dist/src/resources/styles.js +76 -0
- package/dist/src/styles.d.ts +112 -0
- package/dist/src/styles.d.ts.map +1 -0
- package/dist/src/styles.js +144 -0
- package/dist/src/tools/apply-style-preset.d.ts +27 -0
- package/dist/src/tools/apply-style-preset.d.ts.map +1 -0
- package/dist/src/tools/apply-style-preset.js +41 -0
- package/dist/src/tools/count-features.d.ts.map +1 -1
- package/dist/src/tools/count-features.js +5 -4
- package/dist/src/tools/get-extent.d.ts.map +1 -1
- package/dist/src/tools/get-extent.js +6 -4
- package/dist/src/tools/get-style.d.ts +24 -0
- package/dist/src/tools/get-style.d.ts.map +1 -0
- package/dist/src/tools/get-style.js +39 -0
- package/dist/src/tools/list-services.d.ts.map +1 -1
- package/dist/src/tools/list-services.js +16 -1
- package/dist/src/tools/query-features.d.ts.map +1 -1
- package/dist/src/tools/query-features.js +4 -1
- package/package.json +28 -4
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://geospatial-mcp.honua.io/spec/schemas/resources/result-package.schema.json",
|
|
4
|
+
"title": "Result package resource payload",
|
|
5
|
+
"description": "Read-only projection returned for honua://results/{result_package_id} (AnalysisResultPackage). See resources.md §Result Package Resources.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": true,
|
|
8
|
+
"required": ["resultPackageId", "status"],
|
|
9
|
+
"properties": {
|
|
10
|
+
"resultPackageId": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"description": "Stable identifier (result_…)."
|
|
13
|
+
},
|
|
14
|
+
"status": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"description": "GeoprocessingWorkflowStatus (read-only).",
|
|
17
|
+
"enum": [
|
|
18
|
+
"Draft",
|
|
19
|
+
"AwaitingClarification",
|
|
20
|
+
"Validated",
|
|
21
|
+
"AwaitingApproval",
|
|
22
|
+
"AwaitingExecution",
|
|
23
|
+
"Running",
|
|
24
|
+
"Completed",
|
|
25
|
+
"Failed",
|
|
26
|
+
"Cancelled"
|
|
27
|
+
]
|
|
28
|
+
},
|
|
29
|
+
"summary": {
|
|
30
|
+
"type": "object",
|
|
31
|
+
"description": "Title and description.",
|
|
32
|
+
"additionalProperties": true,
|
|
33
|
+
"properties": {
|
|
34
|
+
"title": { "type": "string" },
|
|
35
|
+
"description": { "type": "string" }
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"assumptions": {
|
|
39
|
+
"type": "array",
|
|
40
|
+
"items": { "type": "string" }
|
|
41
|
+
},
|
|
42
|
+
"artifacts": {
|
|
43
|
+
"type": "array",
|
|
44
|
+
"items": { "$ref": "artifact.schema.json" }
|
|
45
|
+
},
|
|
46
|
+
"workspaceRefs": {
|
|
47
|
+
"type": "array",
|
|
48
|
+
"items": { "$ref": "workspace.schema.json" }
|
|
49
|
+
},
|
|
50
|
+
"mapPackageId": {
|
|
51
|
+
"type": "string",
|
|
52
|
+
"description": "Deferred reference to a MapPackage (map_…)."
|
|
53
|
+
},
|
|
54
|
+
"appPackageId": {
|
|
55
|
+
"type": "string",
|
|
56
|
+
"description": "Deferred reference to an AppPackage (app_…)."
|
|
57
|
+
},
|
|
58
|
+
"provenance": { "$ref": "provenance.schema.json" },
|
|
59
|
+
"errors": {
|
|
60
|
+
"type": "array",
|
|
61
|
+
"items": { "$ref": "../common/geoprocessing-error.schema.json" }
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://geospatial-mcp.honua.io/spec/schemas/resources/style.schema.json",
|
|
4
|
+
"title": "Style resource payload",
|
|
5
|
+
"description": "Responsibility-level projection of a StyleRef at honua://styles/{style_id}. Concrete field spellings are upstream-owned; only the stable styleId is pinned. Responsibilities: thematic renderer selection, style preset reuse/composition, label/popup bindings, legend-generation inputs. See resources.md §honua://styles/{style_id}.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": true,
|
|
8
|
+
"required": ["styleId"],
|
|
9
|
+
"properties": {
|
|
10
|
+
"styleId": { "type": "string", "description": "Stable identifier (style_…)." }
|
|
11
|
+
}
|
|
12
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://geospatial-mcp.honua.io/spec/schemas/resources/theme.schema.json",
|
|
4
|
+
"title": "Theme resource payload",
|
|
5
|
+
"description": "Responsibility-level projection of a ThemeSpec at honua://themes/{theme_id}. Concrete field spellings are upstream-owned; only the stable themeId is pinned. Responsibilities: color-ramp tokens, typography tokens, spacing/panel chrome, semantic status colors. See resources.md §honua://themes/{theme_id}.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": true,
|
|
8
|
+
"required": ["themeId"],
|
|
9
|
+
"properties": {
|
|
10
|
+
"themeId": { "type": "string", "description": "Stable identifier (theme_…)." }
|
|
11
|
+
}
|
|
12
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://geospatial-mcp.honua.io/spec/schemas/resources/workspace.schema.json",
|
|
4
|
+
"title": "Workspace resource payload",
|
|
5
|
+
"description": "Read-only projection of a WorkspaceRef, addressable as honua://workspaces/{workspace_id}. The canonical kind values are Scratch/Persistent/TempLayer/SavedLayer/ResultCollection; the reference implementation projects lower_snake_case wire spellings (x-honua-reference-shape). lifecycleState is an MCP-layer projection. See resources.md §honua://workspaces/{workspace_id}.",
|
|
6
|
+
"x-honua-reference-shape": true,
|
|
7
|
+
"type": "object",
|
|
8
|
+
"additionalProperties": true,
|
|
9
|
+
"required": ["workspaceId"],
|
|
10
|
+
"properties": {
|
|
11
|
+
"workspaceId": {
|
|
12
|
+
"type": "string",
|
|
13
|
+
"description": "Stable identifier (ws_…)."
|
|
14
|
+
},
|
|
15
|
+
"kind": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"description": "WorkspaceKind. Canonical enum names are Scratch/Persistent/TempLayer/SavedLayer/ResultCollection; the reference implementation emits the lower_snake_case wire spelling. An empty/absent kind is not a legal value — omit the property rather than emitting an empty string.",
|
|
18
|
+
"enum": [
|
|
19
|
+
"scratch",
|
|
20
|
+
"persistent",
|
|
21
|
+
"temp_layer",
|
|
22
|
+
"saved_layer",
|
|
23
|
+
"result_collection",
|
|
24
|
+
"Scratch",
|
|
25
|
+
"Persistent",
|
|
26
|
+
"TempLayer",
|
|
27
|
+
"SavedLayer",
|
|
28
|
+
"ResultCollection"
|
|
29
|
+
]
|
|
30
|
+
},
|
|
31
|
+
"label": { "type": "string", "description": "Human-readable label." },
|
|
32
|
+
"uri": { "type": "string", "description": "Canonical URI." },
|
|
33
|
+
"expiresAt": {
|
|
34
|
+
"type": ["string", "null"],
|
|
35
|
+
"format": "date-time",
|
|
36
|
+
"description": "Expiration timestamp when applicable."
|
|
37
|
+
},
|
|
38
|
+
"lifecycleState": {
|
|
39
|
+
"type": "string",
|
|
40
|
+
"description": "WorkspaceLifecycleState projection (MCP-layer, not a field of WorkspaceRef — see resources.md §honua://workspaces/{workspace_id}). Canonical enum names are Active/Expired/Archived/Deleted; the reference implementation emits the lower_snake_case wire spelling. Field name matches artifact.schema.json.lifecycleState.",
|
|
41
|
+
"enum": [
|
|
42
|
+
"active",
|
|
43
|
+
"expired",
|
|
44
|
+
"archived",
|
|
45
|
+
"deleted",
|
|
46
|
+
"Active",
|
|
47
|
+
"Expired",
|
|
48
|
+
"Archived",
|
|
49
|
+
"Deleted"
|
|
50
|
+
]
|
|
51
|
+
},
|
|
52
|
+
"cleanupScheduledAt": {
|
|
53
|
+
"type": ["string", "null"],
|
|
54
|
+
"format": "date-time"
|
|
55
|
+
},
|
|
56
|
+
"resultsUri": {
|
|
57
|
+
"type": ["string", "null"],
|
|
58
|
+
"description": "URI of the result package this workspace's outputs are projected into, when applicable. MUST use the defined honua://results/{result_package_id} route (resources.md §honua://results/{result_package_id}); the spec defines no honua://jobs family (execution/job state is the canonical ExecutionJob object reference, not an MCP resource URI — see planning.md §5.3, conformance.md resource_projection contract).",
|
|
59
|
+
"pattern": "^honua://results/[^/]+$"
|
|
60
|
+
},
|
|
61
|
+
"notImplementedReason": { "type": "string" }
|
|
62
|
+
}
|
|
63
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://geospatial-mcp.honua.io/spec/schemas/tools/apply_style_preset.schema.json",
|
|
4
|
+
"title": "apply_style_preset inputSchema",
|
|
5
|
+
"description": "Argument shape for apply_style_preset. x-honua-reference-shape: this shape tracks the reference implementation (advertised name honua_apply_style_preset), which applies a reusable StyleRef preset (a catalog styleId) as the primary/default style of a published layer, persisting through the server OGC API – Styles authoring surface (ADR-0048) so subsequent render_map calls reflect it. The bare taxonomy responsibility (map-package composition) is described in taxonomy.md §Map composition; the reference implementation binds presets to published layers rather than to an in-memory MapPackage. Applying a preset never edits feature records (ADR-0028); it authors presentation metadata on the hosted service. See taxonomy.md §Map composition and resources.md §honua://styles.",
|
|
6
|
+
"x-honua-reference-shape": true,
|
|
7
|
+
"type": "object",
|
|
8
|
+
"additionalProperties": true,
|
|
9
|
+
"required": ["serviceId", "layerId", "styleId"],
|
|
10
|
+
"properties": {
|
|
11
|
+
"serviceId": {
|
|
12
|
+
"type": "string",
|
|
13
|
+
"minLength": 1,
|
|
14
|
+
"description": "Published service identifier or name whose layer is being styled."
|
|
15
|
+
},
|
|
16
|
+
"layerId": {
|
|
17
|
+
"type": "integer",
|
|
18
|
+
"minimum": 0,
|
|
19
|
+
"description": "Service-local layer index to apply the preset to."
|
|
20
|
+
},
|
|
21
|
+
"styleId": {
|
|
22
|
+
"type": "string",
|
|
23
|
+
"minLength": 1,
|
|
24
|
+
"description": "StyleRef preset identifier (style_…) to apply as the layer's primary/default style. Discover the available presets with get_style (no styleId lists honua://styles)."
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://geospatial-mcp.honua.io/spec/schemas/tools/buffer_features.schema.json",
|
|
4
|
+
"title": "buffer_features inputSchema",
|
|
5
|
+
"description": "Direct geoprocessing verb (advertised name honua_buffer_features): buffer input features by a distance and return the buffer polygons. Use this for a single self-contained buffer step (\"buffer these roads by 500 m\"); for multi-step analysis with dependencies, clarification, and a packaged result, use plan_analysis + execute_plan instead. Member of the standard's opt-in **analysis** conformance profile (see /CONFORMANCE.md and docs/adr/0029-direct-geoprocessing-verbs.md). Long-running calls return an ExecutionJob handle (honua://jobs/{job_id}), pollable and cancelable via cancel_job; small/fast calls may return an inline result — the same handoff execute_plan uses. Advertised readOnlyHint: true (computes a derived result; mutates no server state). x-honua-reference-shape: the concrete source (serviceId/layerId, artifactId) spellings track the reference pipeline.",
|
|
6
|
+
"x-honua-reference-shape": true,
|
|
7
|
+
"type": "object",
|
|
8
|
+
"required": ["source", "distance"],
|
|
9
|
+
"properties": {
|
|
10
|
+
"source": {
|
|
11
|
+
"description": "Dataset to buffer: EITHER a published layer (serviceId + layerId) OR a prior-result artifact (artifactId) from an earlier analysis job or verb.",
|
|
12
|
+
"oneOf": [
|
|
13
|
+
{ "$ref": "#/$defs/layerRef" },
|
|
14
|
+
{ "$ref": "#/$defs/artifactRef" }
|
|
15
|
+
]
|
|
16
|
+
},
|
|
17
|
+
"distance": {
|
|
18
|
+
"type": "number",
|
|
19
|
+
"description": "Buffer distance in the given unit. Negative distances buffer inward for polygon inputs."
|
|
20
|
+
},
|
|
21
|
+
"unit": {
|
|
22
|
+
"type": "string",
|
|
23
|
+
"default": "meters",
|
|
24
|
+
"enum": ["meters", "kilometers", "feet", "miles", "nautical_miles", "degrees"],
|
|
25
|
+
"description": "Linear unit of distance."
|
|
26
|
+
},
|
|
27
|
+
"dissolve": {
|
|
28
|
+
"type": "boolean",
|
|
29
|
+
"default": false,
|
|
30
|
+
"description": "When true, overlapping buffers are dissolved into a single geometry; when false, one buffer per input feature is returned."
|
|
31
|
+
},
|
|
32
|
+
"where": {
|
|
33
|
+
"type": "string",
|
|
34
|
+
"description": "Optional attribute filter (ArcGIS/SQL WHERE clause) selecting which input features to buffer."
|
|
35
|
+
},
|
|
36
|
+
"outSrid": {
|
|
37
|
+
"type": "integer",
|
|
38
|
+
"description": "Output spatial reference (SRID/WKID) for the returned buffers; defaults to the source CRS. Buffer distances are always measured in the given unit regardless of outSrid."
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"$defs": {
|
|
42
|
+
"layerRef": {
|
|
43
|
+
"type": "object",
|
|
44
|
+
"required": ["serviceId", "layerId"],
|
|
45
|
+
"additionalProperties": false,
|
|
46
|
+
"properties": {
|
|
47
|
+
"serviceId": { "type": "string", "minLength": 1, "description": "Published service identifier or name (from list_layers.serviceId or resolve_entity)." },
|
|
48
|
+
"layerId": { "type": "integer", "minimum": 0, "description": "Service-local layer index (from list_layers.layerId)." }
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
"artifactRef": {
|
|
52
|
+
"type": "object",
|
|
53
|
+
"required": ["artifactId"],
|
|
54
|
+
"additionalProperties": false,
|
|
55
|
+
"properties": {
|
|
56
|
+
"artifactId": { "type": "string", "minLength": 1, "description": "Identifier (artifact_…) of a prior-result ArtifactRef produced by an earlier analysis job or verb. See resources/artifact.schema.json." }
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://geospatial-mcp.honua.io/spec/schemas/tools/cancel_job.schema.json",
|
|
4
|
+
"title": "cancel_job inputSchema",
|
|
5
|
+
"description": "Argument shape for the execution-lifecycle cancel tool (advertised name honua_cancel_job). Requests cancellation of a submitted ExecutionJob. x-honua-reference-shape: lifecycle control over the execution handoff; tracks the reference implementation.",
|
|
6
|
+
"x-honua-reference-shape": true,
|
|
7
|
+
"type": "object",
|
|
8
|
+
"required": ["jobId"],
|
|
9
|
+
"properties": {
|
|
10
|
+
"jobId": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"description": "Execution job identifier to request cancellation for."
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://geospatial-mcp.honua.io/spec/schemas/tools/clarify_intent.schema.json",
|
|
4
|
+
"title": "clarify_intent inputSchema",
|
|
5
|
+
"description": "Argument shape for the clarify_intent tool (Analyze, Publish Data, Build App). Reference advertised name: honua_clarify_intent. Re-runs grounding with the operator's answers merged in. Extends ground_candidates with required intentId and a response carrying answers keyed by questionId. See planning.md §2.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["goal", "intentId", "response"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"goal": {
|
|
10
|
+
"type": "string",
|
|
11
|
+
"minLength": 1,
|
|
12
|
+
"description": "Freeform natural-language description of the operator's goal."
|
|
13
|
+
},
|
|
14
|
+
"intentId": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"minLength": 1,
|
|
17
|
+
"description": "Intent identifier being clarified. Required on a clarification turn."
|
|
18
|
+
},
|
|
19
|
+
"workflowFamilyHint": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"enum": ["Analyze", "PublishData", "BuildApp", "AutomateDeploy"]
|
|
22
|
+
},
|
|
23
|
+
"assumptionPolicy": {
|
|
24
|
+
"type": "string",
|
|
25
|
+
"enum": ["AskAlways", "AskWhenMaterial", "UseDefaults"]
|
|
26
|
+
},
|
|
27
|
+
"explicitInputs": {
|
|
28
|
+
"type": "array",
|
|
29
|
+
"items": { "type": "string", "minLength": 1 }
|
|
30
|
+
},
|
|
31
|
+
"constraints": {
|
|
32
|
+
"type": "object",
|
|
33
|
+
"additionalProperties": false,
|
|
34
|
+
"properties": {
|
|
35
|
+
"areaOfInterest": { "type": "string" },
|
|
36
|
+
"spatialReferenceId": { "type": "integer" },
|
|
37
|
+
"timeWindowStart": { "type": "string", "format": "date-time" },
|
|
38
|
+
"timeWindowEnd": { "type": "string", "format": "date-time" },
|
|
39
|
+
"units": { "type": "string" }
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
"context": {
|
|
43
|
+
"type": "object",
|
|
44
|
+
"additionalProperties": false,
|
|
45
|
+
"properties": {
|
|
46
|
+
"workspaceId": { "type": "string" },
|
|
47
|
+
"priorIntentId": { "type": "string" },
|
|
48
|
+
"promotionScope": { "type": "string" }
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
"response": {
|
|
52
|
+
"type": "object",
|
|
53
|
+
"required": ["answers"],
|
|
54
|
+
"description": "ClarificationResponse: answers keyed by questionId.",
|
|
55
|
+
"properties": {
|
|
56
|
+
"answers": {
|
|
57
|
+
"type": "object",
|
|
58
|
+
"minProperties": 1,
|
|
59
|
+
"description": "Answers keyed by question identifier. Each answer is a non-empty list of values to support multi-select questions.",
|
|
60
|
+
"additionalProperties": {
|
|
61
|
+
"type": "array",
|
|
62
|
+
"minItems": 1,
|
|
63
|
+
"items": { "type": "string", "minLength": 1 }
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://geospatial-mcp.honua.io/spec/schemas/tools/compose_mixed_protocol_map.schema.json",
|
|
4
|
+
"title": "compose_mixed_protocol_map inputSchema",
|
|
5
|
+
"description": "Argument shape for compose_mixed_protocol_map (Analyze, Build App; returns a MapPackage). Composes a single map from layers bound across multiple protocols (GeoServices, OGC API, WMS/WFS, tiles) at the semantic level — protocol adaptation happens below the contract layer (taxonomy.md §Non-Goals 4). Responsibility-level; concrete binding field set finalizes upstream.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": true,
|
|
8
|
+
"required": ["sourceBindings"],
|
|
9
|
+
"properties": {
|
|
10
|
+
"templateId": { "type": "string" },
|
|
11
|
+
"sourceBindings": {
|
|
12
|
+
"type": "array",
|
|
13
|
+
"minItems": 1,
|
|
14
|
+
"description": "Canonical SourceBinding entries, each protocol-aware. The tool does not expose protocol-specific operations.",
|
|
15
|
+
"items": { "type": "object", "additionalProperties": true }
|
|
16
|
+
},
|
|
17
|
+
"styleId": { "type": "string" },
|
|
18
|
+
"themeId": { "type": "string" },
|
|
19
|
+
"initialView": { "type": "object", "additionalProperties": true }
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://geospatial-mcp.honua.io/spec/schemas/tools/create_app_package.schema.json",
|
|
4
|
+
"title": "create_app_package inputSchema",
|
|
5
|
+
"description": "Argument shape for create_app_package (Build App; returns an AppPackage). Composes an SDK-native application from a map package, artifacts, and an app template. V1 targets honua-sdk-js with MapLibre GL JS. Responsibility-level: the AppPackage authoring field set finalizes upstream (honua-server#731). See taxonomy.md §App composition and resources.md §honua://app-packages/{app_package_id}.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": true,
|
|
8
|
+
"properties": {
|
|
9
|
+
"templateId": {
|
|
10
|
+
"type": "string",
|
|
11
|
+
"description": "App-template registry identifier (surfaced through AppPackage.templateId)."
|
|
12
|
+
},
|
|
13
|
+
"targetSdk": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"description": "Target SDK declaration. V1 default is honua-sdk-js.",
|
|
16
|
+
"default": "honua-sdk-js"
|
|
17
|
+
},
|
|
18
|
+
"mapPackageId": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"description": "MapPackage (map_…) bound into the application."
|
|
21
|
+
},
|
|
22
|
+
"boundArtifactIds": {
|
|
23
|
+
"type": "array",
|
|
24
|
+
"description": "ArtifactRef identifiers (artifact_…) required at runtime.",
|
|
25
|
+
"items": { "type": "string" }
|
|
26
|
+
},
|
|
27
|
+
"runtimeConfig": {
|
|
28
|
+
"type": "object",
|
|
29
|
+
"additionalProperties": true,
|
|
30
|
+
"description": "Runtime configuration values projected into the generated app."
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://geospatial-mcp.honua.io/spec/schemas/tools/create_map_package.schema.json",
|
|
4
|
+
"title": "create_map_package inputSchema",
|
|
5
|
+
"description": "Argument shape for create_map_package (Analyze, Build App map-composition family; returns a MapPackage). Responsibility-level: the concrete MapPackage authoring field set is finalizing upstream (honua-server#731), so this schema pins the stable composition inputs (source bindings, style/theme selection, template, initial view) and permits additional properties. See taxonomy.md §Map composition and resources.md §honua://map-packages/{map_package_id}.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": true,
|
|
8
|
+
"properties": {
|
|
9
|
+
"templateId": {
|
|
10
|
+
"type": "string",
|
|
11
|
+
"description": "Registry-defined MapTemplate identifier seeding the composition (e.g. analysis_default)."
|
|
12
|
+
},
|
|
13
|
+
"sourceBindings": {
|
|
14
|
+
"type": "array",
|
|
15
|
+
"description": "Protocol-aware bindings of map layers to data sources (canonical SourceBinding entries).",
|
|
16
|
+
"items": { "type": "object", "additionalProperties": true }
|
|
17
|
+
},
|
|
18
|
+
"styleId": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"description": "StyleRef selection (style_… ) applied to the composition."
|
|
21
|
+
},
|
|
22
|
+
"themeId": {
|
|
23
|
+
"type": "string",
|
|
24
|
+
"description": "ThemeSpec selection (theme_… ) applied to the composition."
|
|
25
|
+
},
|
|
26
|
+
"initialView": {
|
|
27
|
+
"type": "object",
|
|
28
|
+
"description": "Initial view geometry: bounding box and CRS.",
|
|
29
|
+
"additionalProperties": true,
|
|
30
|
+
"properties": {
|
|
31
|
+
"bbox": {
|
|
32
|
+
"type": "array",
|
|
33
|
+
"minItems": 4,
|
|
34
|
+
"maxItems": 4,
|
|
35
|
+
"items": { "type": "number" }
|
|
36
|
+
},
|
|
37
|
+
"crs": { "type": ["string", "integer"] }
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://geospatial-mcp.honua.io/spec/schemas/tools/edit_features.schema.json",
|
|
4
|
+
"title": "edit_features inputSchema",
|
|
5
|
+
"description": "Argument shape for the transactional feature-editing tool (advertised name honua_edit_features). edit_features is the sole member of the standard's **mutation** conformance profile (see /CONFORMANCE.md and docs/adr/0028-governed-feature-mutation.md): it applies adds/updates/deletes to a single published editable layer as one all-or-nothing transaction when rollbackOnFailure=true (the default). It is governed mutation, not autonomous mutation: an implementation MUST require an authenticated, authorized caller and MUST authorize each edit type independently (insert for adds, update for updates, delete for deletes), rejecting the whole request before any edit is applied if any required permission is missing. An implementation MAY be read-only and still conform to the base profile by not advertising this tool. x-honua-reference-shape: the concrete objectId/globalId/attributes spellings track the reference implementation's shared edit/transaction pipeline; see taxonomy.md §Feature editing (mutation profile).",
|
|
6
|
+
"x-honua-reference-shape": true,
|
|
7
|
+
"type": "object",
|
|
8
|
+
"required": ["serviceId", "layerId"],
|
|
9
|
+
"properties": {
|
|
10
|
+
"serviceId": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"minLength": 1,
|
|
13
|
+
"description": "Published service identifier or name (from list_layers.serviceId or resolve_entity)."
|
|
14
|
+
},
|
|
15
|
+
"layerId": {
|
|
16
|
+
"type": "integer",
|
|
17
|
+
"minimum": 0,
|
|
18
|
+
"description": "Service-local layer index of the editable layer (from list_layers.layerId)."
|
|
19
|
+
},
|
|
20
|
+
"srid": {
|
|
21
|
+
"type": "integer",
|
|
22
|
+
"default": 4326,
|
|
23
|
+
"description": "Spatial reference (SRID/WKID) of the input feature geometries."
|
|
24
|
+
},
|
|
25
|
+
"adds": {
|
|
26
|
+
"type": "array",
|
|
27
|
+
"description": "Features to insert. Requires insert authorization on the target layer. Object IDs are assigned by the store.",
|
|
28
|
+
"items": { "$ref": "#/$defs/editFeature" }
|
|
29
|
+
},
|
|
30
|
+
"updates": {
|
|
31
|
+
"type": "array",
|
|
32
|
+
"description": "Features to update. Requires update authorization on the target layer. Each MUST carry an objectId identifying the existing feature.",
|
|
33
|
+
"items": { "$ref": "#/$defs/editFeature" }
|
|
34
|
+
},
|
|
35
|
+
"deletes": {
|
|
36
|
+
"type": "array",
|
|
37
|
+
"description": "Object IDs of features to delete. Requires delete authorization on the target layer.",
|
|
38
|
+
"items": { "type": "integer" }
|
|
39
|
+
},
|
|
40
|
+
"rollbackOnFailure": {
|
|
41
|
+
"type": "boolean",
|
|
42
|
+
"default": true,
|
|
43
|
+
"description": "When true (the default), any failed edit rolls back the whole transaction (all-or-nothing) and the layer is left unchanged; when false, successful edits commit independently and per-edit failures are reported."
|
|
44
|
+
},
|
|
45
|
+
"returnEditResults": {
|
|
46
|
+
"type": "boolean",
|
|
47
|
+
"default": true,
|
|
48
|
+
"description": "When true, per-edit results are returned; when false only the transaction summary is emitted."
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
"$defs": {
|
|
52
|
+
"editFeature": {
|
|
53
|
+
"type": "object",
|
|
54
|
+
"properties": {
|
|
55
|
+
"objectId": {
|
|
56
|
+
"type": "integer",
|
|
57
|
+
"description": "Object ID of the target feature. Required for updates; ignored for adds."
|
|
58
|
+
},
|
|
59
|
+
"globalId": {
|
|
60
|
+
"type": "string",
|
|
61
|
+
"description": "Optional global ID of the feature."
|
|
62
|
+
},
|
|
63
|
+
"geometry": {
|
|
64
|
+
"type": ["object", "null"],
|
|
65
|
+
"description": "RFC 7946 GeoJSON geometry object (e.g. {\"type\":\"Point\",\"coordinates\":[1,2]})."
|
|
66
|
+
},
|
|
67
|
+
"attributes": {
|
|
68
|
+
"type": "object",
|
|
69
|
+
"description": "Flat attribute name/value map applied to the feature."
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://geospatial-mcp.honua.io/spec/schemas/tools/execute_plan.schema.json",
|
|
4
|
+
"title": "execute_plan inputSchema",
|
|
5
|
+
"description": "Argument shape for the execute_plan tool (Analyze, Publish Data; handoff returns an ExecutionJob reference for Analyze). Reference advertised name: honua_execute_plan. Submission rejects a missing planId or empty steps, so the executable plan REQUIRES planId and at least one step (contrast validate_plan). See planning.md §5.2.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["plan"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"plan": { "$ref": "#/$defs/executablePlan" },
|
|
10
|
+
"idempotencyKey": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"description": "Optional deduplication key. Replays with the same key return the same job record."
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"$defs": {
|
|
16
|
+
"executablePlan": {
|
|
17
|
+
"type": "object",
|
|
18
|
+
"description": "Canonical AnalysisPlan in executable form. planId and a non-empty steps array are mandatory.",
|
|
19
|
+
"required": ["planId", "steps"],
|
|
20
|
+
"properties": {
|
|
21
|
+
"planId": { "type": "string", "minLength": 1 },
|
|
22
|
+
"intentId": { "type": "string" },
|
|
23
|
+
"steps": {
|
|
24
|
+
"type": "array",
|
|
25
|
+
"minItems": 1,
|
|
26
|
+
"items": { "$ref": "#/$defs/planStep" }
|
|
27
|
+
},
|
|
28
|
+
"outputs": {
|
|
29
|
+
"type": "array",
|
|
30
|
+
"items": { "$ref": "#/$defs/artifactKind" }
|
|
31
|
+
},
|
|
32
|
+
"warnings": {
|
|
33
|
+
"type": "array",
|
|
34
|
+
"items": { "type": "string" }
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"planStep": {
|
|
39
|
+
"type": "object",
|
|
40
|
+
"required": ["stepId", "kind"],
|
|
41
|
+
"properties": {
|
|
42
|
+
"stepId": { "type": "string" },
|
|
43
|
+
"kind": { "$ref": "#/$defs/planStepKind" },
|
|
44
|
+
"processId": { "type": "string" },
|
|
45
|
+
"inputs": {
|
|
46
|
+
"type": "object",
|
|
47
|
+
"additionalProperties": { "type": "string" }
|
|
48
|
+
},
|
|
49
|
+
"dependsOn": {
|
|
50
|
+
"type": "array",
|
|
51
|
+
"items": { "type": "string" }
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
"planStepKind": {
|
|
56
|
+
"type": "string",
|
|
57
|
+
"enum": ["QueryFeatures", "Geoprocess", "Aggregate", "RenderMap", "Export"]
|
|
58
|
+
},
|
|
59
|
+
"artifactKind": {
|
|
60
|
+
"type": "string",
|
|
61
|
+
"enum": ["Scalar", "FeatureLayer", "Table", "Raster", "File", "Report", "Map", "AppBundle"]
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://geospatial-mcp.honua.io/spec/schemas/tools/export_dataset.schema.json",
|
|
4
|
+
"title": "export_dataset inputSchema",
|
|
5
|
+
"description": "Direct geoprocessing verb (advertised name honua_export_dataset): materialize a dataset — a published layer or a prior verb/job result — into a downloadable artifact in the requested format and return an ArtifactRef with a content locator. Use this for a single self-contained export step (\"export the intersect result as GeoPackage\"); for multi-step analysis with dependencies and a packaged result, use plan_analysis + execute_plan instead. Member of the standard's opt-in **analysis** conformance profile (see /CONFORMANCE.md and docs/adr/0029-direct-geoprocessing-verbs.md). Long-running calls return an ExecutionJob handle (honua://jobs/{job_id}), pollable and cancelable via cancel_job; small/fast calls may return an inline result referencing the produced artifact. Advertised readOnlyHint: false — it writes a new downloadable artifact — but non-destructive (it creates a new artifact and mutates no source records) and idempotent. It is NOT feature mutation and is not part of the mutation profile. x-honua-reference-shape: the concrete source (serviceId/layerId, artifactId) spellings track the reference pipeline.",
|
|
6
|
+
"x-honua-reference-shape": true,
|
|
7
|
+
"type": "object",
|
|
8
|
+
"required": ["source", "format"],
|
|
9
|
+
"properties": {
|
|
10
|
+
"source": {
|
|
11
|
+
"description": "Dataset to export: EITHER a published layer (serviceId + layerId) OR a prior-result artifact (artifactId) from an earlier analysis job or verb.",
|
|
12
|
+
"oneOf": [
|
|
13
|
+
{ "$ref": "#/$defs/layerRef" },
|
|
14
|
+
{ "$ref": "#/$defs/artifactRef" }
|
|
15
|
+
]
|
|
16
|
+
},
|
|
17
|
+
"format": {
|
|
18
|
+
"type": "string",
|
|
19
|
+
"enum": ["geojson", "geopackage", "csv", "parquet"],
|
|
20
|
+
"description": "Output format. geojson: RFC 7946 features. geopackage: OGC GeoPackage (.gpkg). csv: attribute rows (geometry as WKT when returnGeometry). parquet: (Geo)Parquet columnar."
|
|
21
|
+
},
|
|
22
|
+
"where": {
|
|
23
|
+
"type": "string",
|
|
24
|
+
"description": "Optional attribute filter (ArcGIS/SQL WHERE clause) selecting which features to export."
|
|
25
|
+
},
|
|
26
|
+
"outFields": {
|
|
27
|
+
"type": "array",
|
|
28
|
+
"items": { "type": "string" },
|
|
29
|
+
"description": "Optional attribute fields to include; omit for all fields."
|
|
30
|
+
},
|
|
31
|
+
"returnGeometry": {
|
|
32
|
+
"type": "boolean",
|
|
33
|
+
"default": true,
|
|
34
|
+
"description": "When false, export attributes only (no geometry). csv/parquet exports of attribute tables commonly set this false."
|
|
35
|
+
},
|
|
36
|
+
"outSrid": {
|
|
37
|
+
"type": "integer",
|
|
38
|
+
"description": "Output spatial reference (SRID/WKID) for exported geometries; defaults to the source CRS."
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"$defs": {
|
|
42
|
+
"layerRef": {
|
|
43
|
+
"type": "object",
|
|
44
|
+
"required": ["serviceId", "layerId"],
|
|
45
|
+
"additionalProperties": false,
|
|
46
|
+
"properties": {
|
|
47
|
+
"serviceId": { "type": "string", "minLength": 1, "description": "Published service identifier or name (from list_layers.serviceId or resolve_entity)." },
|
|
48
|
+
"layerId": { "type": "integer", "minimum": 0, "description": "Service-local layer index (from list_layers.layerId)." }
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
"artifactRef": {
|
|
52
|
+
"type": "object",
|
|
53
|
+
"required": ["artifactId"],
|
|
54
|
+
"additionalProperties": false,
|
|
55
|
+
"properties": {
|
|
56
|
+
"artifactId": { "type": "string", "minLength": 1, "description": "Identifier (artifact_…) of a prior-result ArtifactRef produced by an earlier analysis job or verb. See resources/artifact.schema.json." }
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|