@honua/app-platform 0.0.20-alpha.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/LICENSE +201 -0
- package/README.md +11 -0
- package/app/index.d.ts +164 -0
- package/app/index.d.ts.map +1 -0
- package/app/index.js +424 -0
- package/app-controller/controller.d.ts +425 -0
- package/app-controller/controller.d.ts.map +1 -0
- package/app-controller/controller.js +1173 -0
- package/app-controller/index.d.ts +14 -0
- package/app-controller/index.d.ts.map +1 -0
- package/app-controller/index.js +12 -0
- package/app-workspace/index.d.ts +421 -0
- package/app-workspace/index.d.ts.map +1 -0
- package/app-workspace/index.js +722 -0
- package/collaboration/client.d.ts +40 -0
- package/collaboration/client.d.ts.map +1 -0
- package/collaboration/client.js +299 -0
- package/collaboration/errors.d.ts +15 -0
- package/collaboration/errors.d.ts.map +1 -0
- package/collaboration/errors.js +17 -0
- package/collaboration/fixture.d.ts +41 -0
- package/collaboration/fixture.d.ts.map +1 -0
- package/collaboration/fixture.js +362 -0
- package/collaboration/index.d.ts +18 -0
- package/collaboration/index.d.ts.map +1 -0
- package/collaboration/index.js +14 -0
- package/collaboration/types.d.ts +240 -0
- package/collaboration/types.d.ts.map +1 -0
- package/collaboration/types.js +1 -0
- package/contract/analytics-sources.d.ts +149 -0
- package/contract/analytics-sources.d.ts.map +1 -0
- package/contract/analytics-sources.js +235 -0
- package/contract/edit-session.d.ts +203 -0
- package/contract/edit-session.d.ts.map +1 -0
- package/contract/edit-session.js +760 -0
- package/contract/edit-sketch.d.ts +91 -0
- package/contract/edit-sketch.d.ts.map +1 -0
- package/contract/edit-sketch.js +281 -0
- package/contract/index.d.ts +63 -0
- package/contract/index.d.ts.map +1 -0
- package/contract/index.js +52 -0
- package/contract/jobs.d.ts +149 -0
- package/contract/jobs.d.ts.map +1 -0
- package/contract/jobs.js +40 -0
- package/contract/pmtiles.d.ts +162 -0
- package/contract/pmtiles.d.ts.map +1 -0
- package/contract/pmtiles.js +155 -0
- package/contract/source.d.ts +447 -0
- package/contract/source.d.ts.map +1 -0
- package/contract/source.js +3909 -0
- package/contract/spatial-aggregation.d.ts +336 -0
- package/contract/spatial-aggregation.d.ts.map +1 -0
- package/contract/spatial-aggregation.js +298 -0
- package/contract/temporal.d.ts +455 -0
- package/contract/temporal.d.ts.map +1 -0
- package/contract/temporal.js +146 -0
- package/contract/tiles.d.ts +370 -0
- package/contract/tiles.d.ts.map +1 -0
- package/contract/tiles.js +519 -0
- package/contract/types.d.ts +694 -0
- package/contract/types.d.ts.map +1 -0
- package/contract/types.js +183 -0
- package/contract/widget-source.d.ts +205 -0
- package/contract/widget-source.d.ts.map +1 -0
- package/contract/widget-source.js +1473 -0
- package/control-plane/client.d.ts +95 -0
- package/control-plane/client.d.ts.map +1 -0
- package/control-plane/client.js +374 -0
- package/control-plane/index.d.ts +18 -0
- package/control-plane/index.d.ts.map +1 -0
- package/control-plane/index.js +14 -0
- package/control-plane/types.d.ts +233 -0
- package/control-plane/types.d.ts.map +1 -0
- package/control-plane/types.js +7 -0
- package/controls/basemap-style-binding.d.ts +54 -0
- package/controls/basemap-style-binding.d.ts.map +1 -0
- package/controls/basemap-style-binding.js +199 -0
- package/controls/basemap-switcher.d.ts +95 -0
- package/controls/basemap-switcher.d.ts.map +1 -0
- package/controls/basemap-switcher.js +379 -0
- package/controls/element-utils.d.ts +48 -0
- package/controls/element-utils.d.ts.map +1 -0
- package/controls/element-utils.js +78 -0
- package/controls/index.d.ts +33 -0
- package/controls/index.d.ts.map +1 -0
- package/controls/index.js +30 -0
- package/controls/layer-list.d.ts +98 -0
- package/controls/layer-list.d.ts.map +1 -0
- package/controls/layer-list.js +375 -0
- package/controls/legend-derive.d.ts +53 -0
- package/controls/legend-derive.d.ts.map +1 -0
- package/controls/legend-derive.js +196 -0
- package/controls/legend.d.ts +104 -0
- package/controls/legend.d.ts.map +1 -0
- package/controls/legend.js +381 -0
- package/controls/swipe-control.d.ts +80 -0
- package/controls/swipe-control.d.ts.map +1 -0
- package/controls/swipe-control.js +368 -0
- package/controls/types.d.ts +227 -0
- package/controls/types.d.ts.map +1 -0
- package/controls/types.js +11 -0
- package/core/auth/client-credentials-provider.d.ts +51 -0
- package/core/auth/client-credentials-provider.d.ts.map +1 -0
- package/core/auth/client-credentials-provider.js +115 -0
- package/core/auth/credential-store.d.ts +52 -0
- package/core/auth/credential-store.d.ts.map +1 -0
- package/core/auth/credential-store.js +82 -0
- package/core/auth/index.d.ts +23 -0
- package/core/auth/index.d.ts.map +1 -0
- package/core/auth/index.js +20 -0
- package/core/auth/oauth2-provider.d.ts +114 -0
- package/core/auth/oauth2-provider.d.ts.map +1 -0
- package/core/auth/oauth2-provider.js +408 -0
- package/core/auth/pkce.d.ts +25 -0
- package/core/auth/pkce.d.ts.map +1 -0
- package/core/auth/pkce.js +46 -0
- package/core/auth/static-providers.d.ts +20 -0
- package/core/auth/static-providers.d.ts.map +1 -0
- package/core/auth/static-providers.js +26 -0
- package/core/auth/token-endpoint.d.ts +40 -0
- package/core/auth/token-endpoint.d.ts.map +1 -0
- package/core/auth/token-endpoint.js +133 -0
- package/core/auth/types.d.ts +144 -0
- package/core/auth/types.d.ts.map +1 -0
- package/core/auth/types.js +8 -0
- package/core/batch.d.ts +37 -0
- package/core/batch.d.ts.map +1 -0
- package/core/batch.js +79 -0
- package/core/cache-state.d.ts +79 -0
- package/core/cache-state.d.ts.map +1 -0
- package/core/cache-state.js +87 -0
- package/core/client.d.ts +607 -0
- package/core/client.d.ts.map +1 -0
- package/core/client.js +1716 -0
- package/core/compatibility.d.ts +18 -0
- package/core/compatibility.d.ts.map +1 -0
- package/core/compatibility.js +245 -0
- package/core/errors.d.ts +139 -0
- package/core/errors.d.ts.map +1 -0
- package/core/errors.js +176 -0
- package/core/esri-geojson.d.ts +66 -0
- package/core/esri-geojson.d.ts.map +1 -0
- package/core/esri-geojson.js +363 -0
- package/core/geoparquet-sql.d.ts +162 -0
- package/core/geoparquet-sql.d.ts.map +1 -0
- package/core/geoparquet-sql.js +333 -0
- package/core/geoservices.d.ts +34 -0
- package/core/geoservices.d.ts.map +1 -0
- package/core/geoservices.js +434 -0
- package/core/grpc-adapter.d.ts +23 -0
- package/core/grpc-adapter.d.ts.map +1 -0
- package/core/grpc-adapter.js +688 -0
- package/core/odata.d.ts +347 -0
- package/core/odata.d.ts.map +1 -0
- package/core/odata.js +913 -0
- package/core/ogc-conformance.d.ts +35 -0
- package/core/ogc-conformance.d.ts.map +1 -0
- package/core/ogc-conformance.js +134 -0
- package/core/ogc-endpoint-layout.d.ts +70 -0
- package/core/ogc-endpoint-layout.d.ts.map +1 -0
- package/core/ogc-endpoint-layout.js +173 -0
- package/core/ogc-features.d.ts +23 -0
- package/core/ogc-features.d.ts.map +1 -0
- package/core/ogc-features.js +129 -0
- package/core/ogc-maps.d.ts +49 -0
- package/core/ogc-maps.d.ts.map +1 -0
- package/core/ogc-maps.js +126 -0
- package/core/ogc-processes.d.ts +118 -0
- package/core/ogc-processes.d.ts.map +1 -0
- package/core/ogc-processes.js +423 -0
- package/core/ogc-records.d.ts +75 -0
- package/core/ogc-records.d.ts.map +1 -0
- package/core/ogc-records.js +251 -0
- package/core/ogc-tiles.d.ts +125 -0
- package/core/ogc-tiles.d.ts.map +1 -0
- package/core/ogc-tiles.js +183 -0
- package/core/path-utils.d.ts +69 -0
- package/core/path-utils.d.ts.map +1 -0
- package/core/path-utils.js +123 -0
- package/core/pbf-decoder.d.ts +39 -0
- package/core/pbf-decoder.d.ts.map +1 -0
- package/core/pbf-decoder.js +702 -0
- package/core/process-runner.d.ts +104 -0
- package/core/process-runner.d.ts.map +1 -0
- package/core/process-runner.js +315 -0
- package/core/protocol-transport.d.ts +76 -0
- package/core/protocol-transport.d.ts.map +1 -0
- package/core/protocol-transport.js +15 -0
- package/core/query-builder.d.ts +261 -0
- package/core/query-builder.d.ts.map +1 -0
- package/core/query-builder.js +538 -0
- package/core/request-pipeline.d.ts +88 -0
- package/core/request-pipeline.d.ts.map +1 -0
- package/core/request-pipeline.js +273 -0
- package/core/spatial-filter.d.ts +93 -0
- package/core/spatial-filter.d.ts.map +1 -0
- package/core/spatial-filter.js +153 -0
- package/core/stac-static.d.ts +51 -0
- package/core/stac-static.d.ts.map +1 -0
- package/core/stac-static.js +195 -0
- package/core/stac.d.ts +67 -0
- package/core/stac.d.ts.map +1 -0
- package/core/stac.js +259 -0
- package/core/surfaces.d.ts +540 -0
- package/core/surfaces.d.ts.map +1 -0
- package/core/surfaces.js +1964 -0
- package/core/terrain-elevation.d.ts +114 -0
- package/core/terrain-elevation.d.ts.map +1 -0
- package/core/terrain-elevation.js +150 -0
- package/core/types.d.ts +1404 -0
- package/core/types.d.ts.map +1 -0
- package/core/types.js +13 -0
- package/core/wfs-capabilities.d.ts +153 -0
- package/core/wfs-capabilities.d.ts.map +1 -0
- package/core/wfs-capabilities.js +490 -0
- package/core/wfs-filter.d.ts +118 -0
- package/core/wfs-filter.d.ts.map +1 -0
- package/core/wfs-filter.js +634 -0
- package/core/wfs.d.ts +232 -0
- package/core/wfs.d.ts.map +1 -0
- package/core/wfs.js +426 -0
- package/core/wire-shared.d.ts +32 -0
- package/core/wire-shared.d.ts.map +1 -0
- package/core/wire-shared.js +76 -0
- package/core/wms-axis.d.ts +36 -0
- package/core/wms-axis.d.ts.map +1 -0
- package/core/wms-axis.js +73 -0
- package/core/wms-capabilities.d.ts +110 -0
- package/core/wms-capabilities.d.ts.map +1 -0
- package/core/wms-capabilities.js +559 -0
- package/core/wms-types.d.ts +128 -0
- package/core/wms-types.d.ts.map +1 -0
- package/core/wms-types.js +32 -0
- package/core/wms.d.ts +144 -0
- package/core/wms.d.ts.map +1 -0
- package/core/wms.js +338 -0
- package/core/wmts-capabilities.d.ts +82 -0
- package/core/wmts-capabilities.d.ts.map +1 -0
- package/core/wmts-capabilities.js +402 -0
- package/core/wmts.d.ts +103 -0
- package/core/wmts.d.ts.map +1 -0
- package/core/wmts.js +332 -0
- package/core/xml-text.d.ts +20 -0
- package/core/xml-text.d.ts.map +1 -0
- package/core/xml-text.js +85 -0
- package/esri-compat/basemap-gallery.d.ts +38 -0
- package/esri-compat/basemap-gallery.d.ts.map +1 -0
- package/esri-compat/basemap-gallery.js +159 -0
- package/esri-compat/basemap-layer-list.d.ts +35 -0
- package/esri-compat/basemap-layer-list.d.ts.map +1 -0
- package/esri-compat/basemap-layer-list.js +139 -0
- package/esri-compat/basemap.d.ts +32 -0
- package/esri-compat/basemap.d.ts.map +1 -0
- package/esri-compat/basemap.js +84 -0
- package/esri-compat/bookmarks.d.ts +36 -0
- package/esri-compat/bookmarks.d.ts.map +1 -0
- package/esri-compat/bookmarks.js +108 -0
- package/esri-compat/class-breaks-renderer.d.ts +50 -0
- package/esri-compat/class-breaks-renderer.d.ts.map +1 -0
- package/esri-compat/class-breaks-renderer.js +164 -0
- package/esri-compat/color.d.ts +22 -0
- package/esri-compat/color.d.ts.map +1 -0
- package/esri-compat/color.js +106 -0
- package/esri-compat/controls.d.ts +174 -0
- package/esri-compat/controls.d.ts.map +1 -0
- package/esri-compat/controls.js +479 -0
- package/esri-compat/coordinate-conversion.d.ts +41 -0
- package/esri-compat/coordinate-conversion.d.ts.map +1 -0
- package/esri-compat/coordinate-conversion.js +125 -0
- package/esri-compat/directions.d.ts +45 -0
- package/esri-compat/directions.d.ts.map +1 -0
- package/esri-compat/directions.js +123 -0
- package/esri-compat/editor.d.ts +47 -0
- package/esri-compat/editor.d.ts.map +1 -0
- package/esri-compat/editor.js +170 -0
- package/esri-compat/esri-config.d.ts +16 -0
- package/esri-compat/esri-config.d.ts.map +1 -0
- package/esri-compat/esri-config.js +23 -0
- package/esri-compat/esri-request.d.ts +17 -0
- package/esri-compat/esri-request.d.ts.map +1 -0
- package/esri-compat/esri-request.js +127 -0
- package/esri-compat/event-bus.d.ts +106 -0
- package/esri-compat/event-bus.d.ts.map +1 -0
- package/esri-compat/event-bus.js +90 -0
- package/esri-compat/expand.d.ts +36 -0
- package/esri-compat/expand.d.ts.map +1 -0
- package/esri-compat/expand.js +97 -0
- package/esri-compat/extent.d.ts +43 -0
- package/esri-compat/extent.d.ts.map +1 -0
- package/esri-compat/extent.js +140 -0
- package/esri-compat/feature-filter.d.ts +55 -0
- package/esri-compat/feature-filter.d.ts.map +1 -0
- package/esri-compat/feature-filter.js +109 -0
- package/esri-compat/feature-form.d.ts +64 -0
- package/esri-compat/feature-form.d.ts.map +1 -0
- package/esri-compat/feature-form.js +137 -0
- package/esri-compat/feature-layer.d.ts +173 -0
- package/esri-compat/feature-layer.d.ts.map +1 -0
- package/esri-compat/feature-layer.js +661 -0
- package/esri-compat/feature-set.d.ts +32 -0
- package/esri-compat/feature-set.d.ts.map +1 -0
- package/esri-compat/feature-set.js +80 -0
- package/esri-compat/feature-table.d.ts +141 -0
- package/esri-compat/feature-table.d.ts.map +1 -0
- package/esri-compat/feature-table.js +500 -0
- package/esri-compat/feature-templates.d.ts +41 -0
- package/esri-compat/feature-templates.d.ts.map +1 -0
- package/esri-compat/feature-templates.js +97 -0
- package/esri-compat/feature.d.ts +33 -0
- package/esri-compat/feature.d.ts.map +1 -0
- package/esri-compat/feature.js +83 -0
- package/esri-compat/geojson-layer.d.ts +86 -0
- package/esri-compat/geojson-layer.d.ts.map +1 -0
- package/esri-compat/geojson-layer.js +191 -0
- package/esri-compat/geometry-engine.d.ts +107 -0
- package/esri-compat/geometry-engine.d.ts.map +1 -0
- package/esri-compat/geometry-engine.js +266 -0
- package/esri-compat/graphic.d.ts +46 -0
- package/esri-compat/graphic.d.ts.map +1 -0
- package/esri-compat/graphic.js +103 -0
- package/esri-compat/graphics-layer.d.ts +49 -0
- package/esri-compat/graphics-layer.d.ts.map +1 -0
- package/esri-compat/graphics-layer.js +185 -0
- package/esri-compat/group-layer.d.ts +48 -0
- package/esri-compat/group-layer.d.ts.map +1 -0
- package/esri-compat/group-layer.js +212 -0
- package/esri-compat/identify.d.ts +71 -0
- package/esri-compat/identify.d.ts.map +1 -0
- package/esri-compat/identify.js +299 -0
- package/esri-compat/identity-manager.d.ts +74 -0
- package/esri-compat/identity-manager.d.ts.map +1 -0
- package/esri-compat/identity-manager.js +245 -0
- package/esri-compat/imagery-layer.d.ts +78 -0
- package/esri-compat/imagery-layer.d.ts.map +1 -0
- package/esri-compat/imagery-layer.js +167 -0
- package/esri-compat/label-class.d.ts +31 -0
- package/esri-compat/label-class.d.ts.map +1 -0
- package/esri-compat/label-class.js +102 -0
- package/esri-compat/layer-list.d.ts +77 -0
- package/esri-compat/layer-list.d.ts.map +1 -0
- package/esri-compat/layer-list.js +342 -0
- package/esri-compat/legend.d.ts +53 -0
- package/esri-compat/legend.d.ts.map +1 -0
- package/esri-compat/legend.js +254 -0
- package/esri-compat/map-image-layer.d.ts +162 -0
- package/esri-compat/map-image-layer.d.ts.map +1 -0
- package/esri-compat/map-image-layer.js +709 -0
- package/esri-compat/map-view.d.ts +323 -0
- package/esri-compat/map-view.d.ts.map +1 -0
- package/esri-compat/map-view.js +1175 -0
- package/esri-compat/map.d.ts +47 -0
- package/esri-compat/map.d.ts.map +1 -0
- package/esri-compat/map.js +209 -0
- package/esri-compat/measurement-2d.d.ts +61 -0
- package/esri-compat/measurement-2d.d.ts.map +1 -0
- package/esri-compat/measurement-2d.js +184 -0
- package/esri-compat/measurement.d.ts +45 -0
- package/esri-compat/measurement.d.ts.map +1 -0
- package/esri-compat/measurement.js +193 -0
- package/esri-compat/oauth-info.d.ts +50 -0
- package/esri-compat/oauth-info.d.ts.map +1 -0
- package/esri-compat/oauth-info.js +142 -0
- package/esri-compat/picture-marker-symbol.d.ts +35 -0
- package/esri-compat/picture-marker-symbol.d.ts.map +1 -0
- package/esri-compat/picture-marker-symbol.js +126 -0
- package/esri-compat/point.d.ts +31 -0
- package/esri-compat/point.d.ts.map +1 -0
- package/esri-compat/point.js +102 -0
- package/esri-compat/polygon.d.ts +31 -0
- package/esri-compat/polygon.d.ts.map +1 -0
- package/esri-compat/polygon.js +107 -0
- package/esri-compat/polyline.d.ts +31 -0
- package/esri-compat/polyline.d.ts.map +1 -0
- package/esri-compat/polyline.js +107 -0
- package/esri-compat/popup-template.d.ts +55 -0
- package/esri-compat/popup-template.d.ts.map +1 -0
- package/esri-compat/popup-template.js +128 -0
- package/esri-compat/popup.d.ts +54 -0
- package/esri-compat/popup.d.ts.map +1 -0
- package/esri-compat/popup.js +312 -0
- package/esri-compat/print.d.ts +47 -0
- package/esri-compat/print.d.ts.map +1 -0
- package/esri-compat/print.js +105 -0
- package/esri-compat/query.d.ts +58 -0
- package/esri-compat/query.d.ts.map +1 -0
- package/esri-compat/query.js +128 -0
- package/esri-compat/reactive-utils.d.ts +24 -0
- package/esri-compat/reactive-utils.d.ts.map +1 -0
- package/esri-compat/reactive-utils.js +193 -0
- package/esri-compat/request.d.ts +41 -0
- package/esri-compat/request.d.ts.map +1 -0
- package/esri-compat/request.js +253 -0
- package/esri-compat/route-layer.d.ts +59 -0
- package/esri-compat/route-layer.d.ts.map +1 -0
- package/esri-compat/route-layer.js +223 -0
- package/esri-compat/route-task.d.ts +88 -0
- package/esri-compat/route-task.d.ts.map +1 -0
- package/esri-compat/route-task.js +225 -0
- package/esri-compat/scene-view.d.ts +41 -0
- package/esri-compat/scene-view.d.ts.map +1 -0
- package/esri-compat/scene-view.js +68 -0
- package/esri-compat/search.d.ts +112 -0
- package/esri-compat/search.d.ts.map +1 -0
- package/esri-compat/search.js +820 -0
- package/esri-compat/simple-fill-symbol.d.ts +27 -0
- package/esri-compat/simple-fill-symbol.d.ts.map +1 -0
- package/esri-compat/simple-fill-symbol.js +85 -0
- package/esri-compat/simple-line-symbol.d.ts +27 -0
- package/esri-compat/simple-line-symbol.d.ts.map +1 -0
- package/esri-compat/simple-line-symbol.js +85 -0
- package/esri-compat/simple-marker-symbol.d.ts +29 -0
- package/esri-compat/simple-marker-symbol.d.ts.map +1 -0
- package/esri-compat/simple-marker-symbol.js +92 -0
- package/esri-compat/simple-renderer.d.ts +29 -0
- package/esri-compat/simple-renderer.d.ts.map +1 -0
- package/esri-compat/simple-renderer.js +92 -0
- package/esri-compat/sketch.d.ts +64 -0
- package/esri-compat/sketch.d.ts.map +1 -0
- package/esri-compat/sketch.js +227 -0
- package/esri-compat/spatial-reference.d.ts +31 -0
- package/esri-compat/spatial-reference.d.ts.map +1 -0
- package/esri-compat/spatial-reference.js +102 -0
- package/esri-compat/swipe.d.ts +34 -0
- package/esri-compat/swipe.d.ts.map +1 -0
- package/esri-compat/swipe.js +93 -0
- package/esri-compat/table-list.d.ts +36 -0
- package/esri-compat/table-list.d.ts.map +1 -0
- package/esri-compat/table-list.js +126 -0
- package/esri-compat/text-symbol.d.ts +37 -0
- package/esri-compat/text-symbol.d.ts.map +1 -0
- package/esri-compat/text-symbol.js +123 -0
- package/esri-compat/tile-layer.d.ts +52 -0
- package/esri-compat/tile-layer.d.ts.map +1 -0
- package/esri-compat/tile-layer.js +168 -0
- package/esri-compat/time-slider.d.ts +70 -0
- package/esri-compat/time-slider.d.ts.map +1 -0
- package/esri-compat/time-slider.js +208 -0
- package/esri-compat/track.d.ts +51 -0
- package/esri-compat/track.d.ts.map +1 -0
- package/esri-compat/track.js +174 -0
- package/esri-compat/unique-value-renderer.d.ts +41 -0
- package/esri-compat/unique-value-renderer.d.ts.map +1 -0
- package/esri-compat/unique-value-renderer.js +127 -0
- package/esri-compat/url.d.ts +13 -0
- package/esri-compat/url.d.ts.map +1 -0
- package/esri-compat/url.js +68 -0
- package/esri-compat/vector-tile-layer.d.ts +47 -0
- package/esri-compat/vector-tile-layer.d.ts.map +1 -0
- package/esri-compat/vector-tile-layer.js +130 -0
- package/esri-compat/web-map.d.ts +14 -0
- package/esri-compat/web-map.d.ts.map +1 -0
- package/esri-compat/web-map.js +24 -0
- package/esri-compat/wfs-layer.d.ts +64 -0
- package/esri-compat/wfs-layer.d.ts.map +1 -0
- package/esri-compat/wfs-layer.js +145 -0
- package/esri-compat/wms-layer.d.ts +76 -0
- package/esri-compat/wms-layer.d.ts.map +1 -0
- package/esri-compat/wms-layer.js +157 -0
- package/exploration/context.d.ts +25 -0
- package/exploration/context.d.ts.map +1 -0
- package/exploration/context.js +396 -0
- package/exploration/index.d.ts +27 -0
- package/exploration/index.d.ts.map +1 -0
- package/exploration/index.js +24 -0
- package/exploration/presets.d.ts +27 -0
- package/exploration/presets.d.ts.map +1 -0
- package/exploration/presets.js +114 -0
- package/exploration/reducer.d.ts +23 -0
- package/exploration/reducer.d.ts.map +1 -0
- package/exploration/reducer.js +332 -0
- package/exploration/selection.d.ts +25 -0
- package/exploration/selection.d.ts.map +1 -0
- package/exploration/selection.js +34 -0
- package/exploration/selectors.d.ts +56 -0
- package/exploration/selectors.d.ts.map +1 -0
- package/exploration/selectors.js +110 -0
- package/exploration/types.d.ts +294 -0
- package/exploration/types.d.ts.map +1 -0
- package/exploration/types.js +33 -0
- package/expr/expression.d.ts +457 -0
- package/expr/expression.d.ts.map +1 -0
- package/expr/expression.js +663 -0
- package/expr/index.d.ts +32 -0
- package/expr/index.d.ts.map +1 -0
- package/expr/index.js +30 -0
- package/filter-registry/index.d.ts +145 -0
- package/filter-registry/index.d.ts.map +1 -0
- package/filter-registry/index.js +531 -0
- package/gen/honua/v1/feature_service_pb.d.ts +918 -0
- package/gen/honua/v1/feature_service_pb.d.ts.map +1 -0
- package/gen/honua/v1/feature_service_pb.js +375 -0
- package/generated-app/errors.d.ts +41 -0
- package/generated-app/errors.d.ts.map +1 -0
- package/generated-app/errors.js +41 -0
- package/generated-app/index.d.ts +17 -0
- package/generated-app/index.d.ts.map +1 -0
- package/generated-app/index.js +12 -0
- package/generated-app/manifest.d.ts +183 -0
- package/generated-app/manifest.d.ts.map +1 -0
- package/generated-app/manifest.js +14 -0
- package/generated-app/projection.d.ts +44 -0
- package/generated-app/projection.d.ts.map +1 -0
- package/generated-app/projection.js +234 -0
- package/generated-app/runtime.d.ts +215 -0
- package/generated-app/runtime.d.ts.map +1 -0
- package/generated-app/runtime.js +1196 -0
- package/geocoding/index.d.ts +106 -0
- package/geocoding/index.d.ts.map +1 -0
- package/geocoding/index.js +278 -0
- package/interactions/detail-model.d.ts +54 -0
- package/interactions/detail-model.d.ts.map +1 -0
- package/interactions/detail-model.js +105 -0
- package/interactions/exploration-bindings.d.ts +120 -0
- package/interactions/exploration-bindings.d.ts.map +1 -0
- package/interactions/exploration-bindings.js +218 -0
- package/interactions/feature-state.d.ts +144 -0
- package/interactions/feature-state.d.ts.map +1 -0
- package/interactions/feature-state.js +169 -0
- package/interactions/hit-test.d.ts +112 -0
- package/interactions/hit-test.d.ts.map +1 -0
- package/interactions/hit-test.js +291 -0
- package/interactions/index.d.ts +31 -0
- package/interactions/index.d.ts.map +1 -0
- package/interactions/index.js +24 -0
- package/interactions/share-state.d.ts +36 -0
- package/interactions/share-state.d.ts.map +1 -0
- package/interactions/share-state.js +123 -0
- package/map/feature-service-adapter.d.ts +138 -0
- package/map/feature-service-adapter.d.ts.map +1 -0
- package/map/feature-service-adapter.js +279 -0
- package/map/honua-map.d.ts +203 -0
- package/map/honua-map.d.ts.map +1 -0
- package/map/honua-map.js +347 -0
- package/map/index.d.ts +27 -0
- package/map/index.d.ts.map +1 -0
- package/map/index.js +22 -0
- package/map/maplibre-target.d.ts +103 -0
- package/map/maplibre-target.d.ts.map +1 -0
- package/map/maplibre-target.js +164 -0
- package/map/webmap-maplibre.d.ts +60 -0
- package/map/webmap-maplibre.d.ts.map +1 -0
- package/map/webmap-maplibre.js +212 -0
- package/operate/client.d.ts +94 -0
- package/operate/client.d.ts.map +1 -0
- package/operate/client.js +361 -0
- package/operate/index.d.ts +22 -0
- package/operate/index.d.ts.map +1 -0
- package/operate/index.js +19 -0
- package/operate/types.d.ts +397 -0
- package/operate/types.d.ts.map +1 -0
- package/operate/types.js +17 -0
- package/operator/client.d.ts +60 -0
- package/operator/client.d.ts.map +1 -0
- package/operator/client.js +20 -0
- package/operator/controllers/approval.d.ts +52 -0
- package/operator/controllers/approval.d.ts.map +1 -0
- package/operator/controllers/approval.js +123 -0
- package/operator/controllers/base.d.ts +27 -0
- package/operator/controllers/base.d.ts.map +1 -0
- package/operator/controllers/base.js +53 -0
- package/operator/controllers/builder-workspace.d.ts +55 -0
- package/operator/controllers/builder-workspace.d.ts.map +1 -0
- package/operator/controllers/builder-workspace.js +108 -0
- package/operator/controllers/chat.d.ts +61 -0
- package/operator/controllers/chat.d.ts.map +1 -0
- package/operator/controllers/chat.js +154 -0
- package/operator/controllers/clarification.d.ts +52 -0
- package/operator/controllers/clarification.d.ts.map +1 -0
- package/operator/controllers/clarification.js +121 -0
- package/operator/controllers/execution.d.ts +60 -0
- package/operator/controllers/execution.d.ts.map +1 -0
- package/operator/controllers/execution.js +286 -0
- package/operator/controllers/index.d.ts +23 -0
- package/operator/controllers/index.d.ts.map +1 -0
- package/operator/controllers/index.js +15 -0
- package/operator/controllers/map-workspace.d.ts +85 -0
- package/operator/controllers/map-workspace.d.ts.map +1 -0
- package/operator/controllers/map-workspace.js +296 -0
- package/operator/controllers/plan-review.d.ts +66 -0
- package/operator/controllers/plan-review.d.ts.map +1 -0
- package/operator/controllers/plan-review.js +124 -0
- package/operator/errors.d.ts +62 -0
- package/operator/errors.d.ts.map +1 -0
- package/operator/errors.js +75 -0
- package/operator/i18n/index.d.ts +10 -0
- package/operator/i18n/index.d.ts.map +1 -0
- package/operator/i18n/index.js +8 -0
- package/operator/i18n/messages.d.ts +19 -0
- package/operator/i18n/messages.d.ts.map +1 -0
- package/operator/i18n/messages.js +54 -0
- package/operator/index.d.ts +19 -0
- package/operator/index.d.ts.map +1 -0
- package/operator/index.js +15 -0
- package/operator/telemetry.d.ts +26 -0
- package/operator/telemetry.d.ts.map +1 -0
- package/operator/telemetry.js +9 -0
- package/operator/theming/index.d.ts +12 -0
- package/operator/theming/index.d.ts.map +1 -0
- package/operator/theming/index.js +9 -0
- package/operator/theming/provider.d.ts +27 -0
- package/operator/theming/provider.d.ts.map +1 -0
- package/operator/theming/provider.js +26 -0
- package/operator/theming/tokens.d.ts +28 -0
- package/operator/theming/tokens.d.ts.map +1 -0
- package/operator/theming/tokens.js +65 -0
- package/operator/workspace/events.d.ts +70 -0
- package/operator/workspace/events.d.ts.map +1 -0
- package/operator/workspace/events.js +9 -0
- package/operator/workspace/index.d.ts +12 -0
- package/operator/workspace/index.d.ts.map +1 -0
- package/operator/workspace/index.js +8 -0
- package/operator/workspace/types.d.ts +178 -0
- package/operator/workspace/types.d.ts.map +1 -0
- package/operator/workspace/types.js +47 -0
- package/operator/workspace/workspace.d.ts +58 -0
- package/operator/workspace/workspace.d.ts.map +1 -0
- package/operator/workspace/workspace.js +339 -0
- package/package.json +105 -0
- package/realtime/exploration.d.ts +16 -0
- package/realtime/exploration.d.ts.map +1 -0
- package/realtime/exploration.js +32 -0
- package/realtime/honua-server.d.ts +123 -0
- package/realtime/honua-server.d.ts.map +1 -0
- package/realtime/honua-server.js +188 -0
- package/realtime/index.d.ts +20 -0
- package/realtime/index.d.ts.map +1 -0
- package/realtime/index.js +14 -0
- package/realtime/projections.d.ts +30 -0
- package/realtime/projections.d.ts.map +1 -0
- package/realtime/projections.js +51 -0
- package/realtime/reducer.d.ts +14 -0
- package/realtime/reducer.d.ts.map +1 -0
- package/realtime/reducer.js +351 -0
- package/realtime/sse.d.ts +23 -0
- package/realtime/sse.d.ts.map +1 -0
- package/realtime/sse.js +143 -0
- package/realtime/store.d.ts +18 -0
- package/realtime/store.d.ts.map +1 -0
- package/realtime/store.js +63 -0
- package/realtime/types.d.ts +190 -0
- package/realtime/types.d.ts.map +1 -0
- package/realtime/types.js +10 -0
- package/replica-sync/client.d.ts +32 -0
- package/replica-sync/client.d.ts.map +1 -0
- package/replica-sync/client.js +52 -0
- package/replica-sync/errors.d.ts +22 -0
- package/replica-sync/errors.d.ts.map +1 -0
- package/replica-sync/errors.js +29 -0
- package/replica-sync/fixture.d.ts +40 -0
- package/replica-sync/fixture.d.ts.map +1 -0
- package/replica-sync/fixture.js +364 -0
- package/replica-sync/index.d.ts +22 -0
- package/replica-sync/index.d.ts.map +1 -0
- package/replica-sync/index.js +17 -0
- package/replica-sync/types.d.ts +270 -0
- package/replica-sync/types.d.ts.map +1 -0
- package/replica-sync/types.js +13 -0
- package/runtime/diff.d.ts +31 -0
- package/runtime/diff.d.ts.map +1 -0
- package/runtime/diff.js +143 -0
- package/runtime/errors.d.ts +40 -0
- package/runtime/errors.d.ts.map +1 -0
- package/runtime/errors.js +35 -0
- package/runtime/index.d.ts +59 -0
- package/runtime/index.d.ts.map +1 -0
- package/runtime/index.js +40 -0
- package/runtime/legend.d.ts +23 -0
- package/runtime/legend.d.ts.map +1 -0
- package/runtime/legend.js +38 -0
- package/runtime/load-package.d.ts +125 -0
- package/runtime/load-package.d.ts.map +1 -0
- package/runtime/load-package.js +272 -0
- package/runtime/map-package-fetch.d.ts +107 -0
- package/runtime/map-package-fetch.d.ts.map +1 -0
- package/runtime/map-package-fetch.js +336 -0
- package/runtime/map-package-realtime.d.ts +169 -0
- package/runtime/map-package-realtime.d.ts.map +1 -0
- package/runtime/map-package-realtime.js +350 -0
- package/runtime/map-package-validation.d.ts +30 -0
- package/runtime/map-package-validation.d.ts.map +1 -0
- package/runtime/map-package-validation.js +257 -0
- package/runtime/map-package-watch.d.ts +78 -0
- package/runtime/map-package-watch.d.ts.map +1 -0
- package/runtime/map-package-watch.js +695 -0
- package/runtime/map-package.d.ts +167 -0
- package/runtime/map-package.d.ts.map +1 -0
- package/runtime/map-package.js +15 -0
- package/runtime/ogc-styles.d.ts +110 -0
- package/runtime/ogc-styles.d.ts.map +1 -0
- package/runtime/ogc-styles.js +195 -0
- package/runtime/pmtiles-protocol.d.ts +77 -0
- package/runtime/pmtiles-protocol.d.ts.map +1 -0
- package/runtime/pmtiles-protocol.js +120 -0
- package/runtime/popups.d.ts +62 -0
- package/runtime/popups.d.ts.map +1 -0
- package/runtime/popups.js +95 -0
- package/runtime/query-tiles.d.ts +217 -0
- package/runtime/query-tiles.d.ts.map +1 -0
- package/runtime/query-tiles.js +801 -0
- package/runtime/runtime.d.ts +243 -0
- package/runtime/runtime.d.ts.map +1 -0
- package/runtime/runtime.js +1147 -0
- package/runtime/source-bridge.d.ts +99 -0
- package/runtime/source-bridge.d.ts.map +1 -0
- package/runtime/source-bridge.js +428 -0
- package/runtime/style-compose.d.ts +46 -0
- package/runtime/style-compose.d.ts.map +1 -0
- package/runtime/style-compose.js +144 -0
- package/runtime/style-interactions.d.ts +141 -0
- package/runtime/style-interactions.d.ts.map +1 -0
- package/runtime/style-interactions.js +574 -0
- package/runtime/style-spec-validation.d.ts +23 -0
- package/runtime/style-spec-validation.d.ts.map +1 -0
- package/runtime/style-spec-validation.js +357 -0
- package/scene-workspace/analysis-widgets.d.ts +334 -0
- package/scene-workspace/analysis-widgets.d.ts.map +1 -0
- package/scene-workspace/analysis-widgets.js +424 -0
- package/scene-workspace/cesium-adapter.d.ts +438 -0
- package/scene-workspace/cesium-adapter.d.ts.map +1 -0
- package/scene-workspace/cesium-adapter.js +493 -0
- package/scene-workspace/index.d.ts +21 -0
- package/scene-workspace/index.d.ts.map +1 -0
- package/scene-workspace/index.js +14 -0
- package/scene-workspace/primitives.d.ts +162 -0
- package/scene-workspace/primitives.d.ts.map +1 -0
- package/scene-workspace/primitives.js +255 -0
- package/scene-workspace/scene-discovery.d.ts +196 -0
- package/scene-workspace/scene-discovery.d.ts.map +1 -0
- package/scene-workspace/scene-discovery.js +228 -0
- package/scene-workspace/scene-view.d.ts +209 -0
- package/scene-workspace/scene-view.d.ts.map +1 -0
- package/scene-workspace/scene-view.js +267 -0
- package/scene-workspace/types.d.ts +229 -0
- package/scene-workspace/types.d.ts.map +1 -0
- package/scene-workspace/types.js +23 -0
- package/scene-workspace/workspace.d.ts +13 -0
- package/scene-workspace/workspace.d.ts.map +1 -0
- package/scene-workspace/workspace.js +391 -0
- package/share/denial.d.ts +78 -0
- package/share/denial.d.ts.map +1 -0
- package/share/denial.js +61 -0
- package/share/embed-token.d.ts +71 -0
- package/share/embed-token.d.ts.map +1 -0
- package/share/embed-token.js +99 -0
- package/share/index.d.ts +35 -0
- package/share/index.d.ts.map +1 -0
- package/share/index.js +30 -0
- package/share/open-data.d.ts +114 -0
- package/share/open-data.d.ts.map +1 -0
- package/share/open-data.js +81 -0
- package/share/types.d.ts +163 -0
- package/share/types.d.ts.map +1 -0
- package/share/types.js +17 -0
- package/studio/capability-manifest.d.ts +285 -0
- package/studio/capability-manifest.d.ts.map +1 -0
- package/studio/capability-manifest.js +59 -0
- package/studio/chart-spec.d.ts +85 -0
- package/studio/chart-spec.d.ts.map +1 -0
- package/studio/chart-spec.js +106 -0
- package/studio/index.d.ts +34 -0
- package/studio/index.d.ts.map +1 -0
- package/studio/index.js +27 -0
- package/studio/provenance.d.ts +131 -0
- package/studio/provenance.d.ts.map +1 -0
- package/studio/provenance.js +39 -0
- package/studio/publish.d.ts +64 -0
- package/studio/publish.d.ts.map +1 -0
- package/studio/publish.js +13 -0
- package/studio/types.d.ts +278 -0
- package/studio/types.d.ts.map +1 -0
- package/studio/types.js +71 -0
- package/studio/validate.d.ts +45 -0
- package/studio/validate.d.ts.map +1 -0
- package/studio/validate.js +255 -0
- package/studio/validation.d.ts +112 -0
- package/studio/validation.d.ts.map +1 -0
- package/studio/validation.js +42 -0
- package/style/factory.d.ts +30 -0
- package/style/factory.d.ts.map +1 -0
- package/style/factory.js +61 -0
- package/style/index.d.ts +25 -0
- package/style/index.d.ts.map +1 -0
- package/style/index.js +24 -0
- package/style/specification.d.ts +203 -0
- package/style/specification.d.ts.map +1 -0
- package/style/specification.js +178 -0
- package/style/wms-wmts-resolvers.d.ts +38 -0
- package/style/wms-wmts-resolvers.d.ts.map +1 -0
- package/style/wms-wmts-resolvers.js +92 -0
- package/web-components/controller.d.ts +39 -0
- package/web-components/controller.d.ts.map +1 -0
- package/web-components/controller.js +640 -0
- package/web-components/elements.d.ts +210 -0
- package/web-components/elements.d.ts.map +1 -0
- package/web-components/elements.js +1651 -0
- package/web-components/index.d.ts +24 -0
- package/web-components/index.d.ts.map +1 -0
- package/web-components/index.js +22 -0
- package/web-components/maplibre-renderer.d.ts +22 -0
- package/web-components/maplibre-renderer.d.ts.map +1 -0
- package/web-components/maplibre-renderer.js +474 -0
- package/web-components/types.d.ts +397 -0
- package/web-components/types.d.ts.map +1 -0
- package/web-components/types.js +1 -0
- package/webmap/contract.d.ts +28 -0
- package/webmap/contract.d.ts.map +1 -0
- package/webmap/contract.js +130 -0
- package/webmap/convert-basemap.d.ts +17 -0
- package/webmap/convert-basemap.d.ts.map +1 -0
- package/webmap/convert-basemap.js +78 -0
- package/webmap/convert-extent.d.ts +17 -0
- package/webmap/convert-extent.d.ts.map +1 -0
- package/webmap/convert-extent.js +114 -0
- package/webmap/convert-label.d.ts +13 -0
- package/webmap/convert-label.d.ts.map +1 -0
- package/webmap/convert-label.js +125 -0
- package/webmap/convert-layer.d.ts +22 -0
- package/webmap/convert-layer.d.ts.map +1 -0
- package/webmap/convert-layer.js +181 -0
- package/webmap/convert-popup.d.ts +34 -0
- package/webmap/convert-popup.d.ts.map +1 -0
- package/webmap/convert-popup.js +68 -0
- package/webmap/convert-renderer.d.ts +17 -0
- package/webmap/convert-renderer.d.ts.map +1 -0
- package/webmap/convert-renderer.js +161 -0
- package/webmap/convert-symbol.d.ts +17 -0
- package/webmap/convert-symbol.d.ts.map +1 -0
- package/webmap/convert-symbol.js +122 -0
- package/webmap/index.d.ts +44 -0
- package/webmap/index.d.ts.map +1 -0
- package/webmap/index.js +33 -0
- package/webmap/parse.d.ts +25 -0
- package/webmap/parse.d.ts.map +1 -0
- package/webmap/parse.js +83 -0
- package/webmap/types.d.ts +264 -0
- package/webmap/types.d.ts.map +1 -0
- package/webmap/types.js +13 -0
- package/webmap/warnings.d.ts +30 -0
- package/webmap/warnings.d.ts.map +1 -0
- package/webmap/warnings.js +37 -0
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `MapWorkspaceController` — orchestrates the `HonuaMapRuntime` and the
|
|
3
|
+
* `ExplorationContext` for a single result `MapPackage`. The controller
|
|
4
|
+
* owns no MapLibre source/style code of its own — every map mutation
|
|
5
|
+
* delegates to the runtime from `src/runtime/`.
|
|
6
|
+
*
|
|
7
|
+
* @module
|
|
8
|
+
*/
|
|
9
|
+
import { createExplorationContext, } from "../../exploration/index.js";
|
|
10
|
+
import { loadMapPackage, } from "../../runtime/index.js";
|
|
11
|
+
import { HonuaOperatorMapError } from "../errors.js";
|
|
12
|
+
import { ListenerBag, withTelemetrySpan } from "./base.js";
|
|
13
|
+
const MAP_VIEW_BINDING_ID = "map-primary";
|
|
14
|
+
export class MapWorkspaceController {
|
|
15
|
+
#client;
|
|
16
|
+
#mapFactory;
|
|
17
|
+
#preset;
|
|
18
|
+
#telemetry;
|
|
19
|
+
#loadOptions;
|
|
20
|
+
#bag = new ListenerBag();
|
|
21
|
+
#runtime;
|
|
22
|
+
#context;
|
|
23
|
+
#viewHandle;
|
|
24
|
+
#disposeMap;
|
|
25
|
+
#activeIntentId;
|
|
26
|
+
// Bumped on every loadPackage() / refine() / dispose() entry. The
|
|
27
|
+
// operation captures it before awaiting and only commits state when
|
|
28
|
+
// the captured value still matches at resolution time. Parallel
|
|
29
|
+
// loads or refinements thereby cannot let an older `MapPackage`
|
|
30
|
+
// overwrite a newer one.
|
|
31
|
+
#opGeneration = 0;
|
|
32
|
+
constructor(options) {
|
|
33
|
+
this.#client = options.client;
|
|
34
|
+
this.#mapFactory = options.mapFactory;
|
|
35
|
+
this.#preset = options.explorationPreset ?? "mapDriven";
|
|
36
|
+
this.#telemetry = options.telemetry;
|
|
37
|
+
this.#loadOptions = options.loadOptions;
|
|
38
|
+
}
|
|
39
|
+
get runtime() {
|
|
40
|
+
return this.#runtime;
|
|
41
|
+
}
|
|
42
|
+
get exploration() {
|
|
43
|
+
return this.#context;
|
|
44
|
+
}
|
|
45
|
+
on(listener) {
|
|
46
|
+
return this.#bag.on(listener);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Bind the controller to an intent so that subsequent `refine()` calls
|
|
50
|
+
* have an intent id to attach to the server request. Idempotent.
|
|
51
|
+
*/
|
|
52
|
+
bindIntent(intentId) {
|
|
53
|
+
this.#activeIntentId = intentId;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Load a `MapPackage` into a fresh runtime + exploration context.
|
|
57
|
+
* Tears down any previously loaded package; safe to call repeatedly.
|
|
58
|
+
*
|
|
59
|
+
* Concurrent loads supersede each other via `#opGeneration`: an
|
|
60
|
+
* older load whose factory or `loadMapPackage` is still pending when
|
|
61
|
+
* a newer load arrives discards its locally-built runtime/context
|
|
62
|
+
* instead of overwriting the newer state.
|
|
63
|
+
*/
|
|
64
|
+
async loadPackage(pkg) {
|
|
65
|
+
if (!this.#loadOptions) {
|
|
66
|
+
throw new HonuaOperatorMapError("loadPackage requires loadOptions on the controller", {
|
|
67
|
+
detail: { mapPackageId: pkg.mapPackageId },
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
this.#tearDown();
|
|
71
|
+
const gen = ++this.#opGeneration;
|
|
72
|
+
return withTelemetrySpan(this.#telemetry, "map-load", this.#activeIntentId, async () => {
|
|
73
|
+
let factoryResult;
|
|
74
|
+
let runtime;
|
|
75
|
+
try {
|
|
76
|
+
// The host-supplied factory can reject before any runtime
|
|
77
|
+
// setup happens (e.g. WebGL unavailable). Keep its failure
|
|
78
|
+
// inside the wrapper so embedders see a typed
|
|
79
|
+
// HonuaOperatorMapError on the workspace event stream
|
|
80
|
+
// instead of a raw factory rejection.
|
|
81
|
+
factoryResult = await this.#mapFactory();
|
|
82
|
+
if (gen !== this.#opGeneration) {
|
|
83
|
+
disposeFactoryResult(factoryResult);
|
|
84
|
+
throw new HonuaOperatorMapError("map load superseded by newer load", {
|
|
85
|
+
detail: { mapPackageId: pkg.mapPackageId },
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
runtime = await loadMapPackage(pkg, factoryResult.map, {
|
|
89
|
+
...this.#loadOptions,
|
|
90
|
+
});
|
|
91
|
+
if (gen !== this.#opGeneration) {
|
|
92
|
+
disposeRuntime(runtime);
|
|
93
|
+
disposeFactoryResult(factoryResult);
|
|
94
|
+
throw new HonuaOperatorMapError("map load superseded by newer load", {
|
|
95
|
+
detail: { mapPackageId: pkg.mapPackageId },
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
this.#disposeMap = factoryResult.dispose;
|
|
99
|
+
this.#runtime = runtime;
|
|
100
|
+
this.#context = createExplorationContext({
|
|
101
|
+
datasetId: pkg.mapPackageId,
|
|
102
|
+
sourceIds: pkg.sourceBindings.map((binding) => binding.sourceId),
|
|
103
|
+
preset: this.#preset,
|
|
104
|
+
});
|
|
105
|
+
this.#viewHandle = this.#context.bind({ id: MAP_VIEW_BINDING_ID, role: "map" });
|
|
106
|
+
this.#bag.emit({ kind: "package-loaded", pkg });
|
|
107
|
+
return runtime;
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
if (gen !== this.#opGeneration) {
|
|
111
|
+
// Superseded; the newer load owns teardown. Don't re-tear or emit.
|
|
112
|
+
throw error;
|
|
113
|
+
}
|
|
114
|
+
// `#disposeMap` is only assigned after `loadMapPackage`
|
|
115
|
+
// succeeds, so a factory that returned a host map followed
|
|
116
|
+
// by a `loadMapPackage` failure leaves the map orphaned.
|
|
117
|
+
// Dispose the locally-captured factoryResult / runtime here
|
|
118
|
+
// before #tearDown runs (it will be a no-op for those).
|
|
119
|
+
if (runtime !== undefined)
|
|
120
|
+
disposeRuntime(runtime);
|
|
121
|
+
if (factoryResult !== undefined && this.#disposeMap === undefined) {
|
|
122
|
+
disposeFactoryResult(factoryResult);
|
|
123
|
+
}
|
|
124
|
+
this.#tearDown();
|
|
125
|
+
const wrapped = error instanceof HonuaOperatorMapError
|
|
126
|
+
? error
|
|
127
|
+
: new HonuaOperatorMapError("map package load failed", {
|
|
128
|
+
cause: error,
|
|
129
|
+
detail: { mapPackageId: pkg.mapPackageId },
|
|
130
|
+
});
|
|
131
|
+
this.#bag.emit({ kind: "error", error: wrapped });
|
|
132
|
+
throw wrapped;
|
|
133
|
+
}
|
|
134
|
+
}, { mapPackageId: pkg.mapPackageId });
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Natural-language refinement. The server returns an updated
|
|
138
|
+
* `MapPackage`; the runtime's diff path applies it incrementally.
|
|
139
|
+
* Source-binding failures inside the runtime are forwarded via
|
|
140
|
+
* `runtime.reportSourceError(...)` rather than thrown.
|
|
141
|
+
*/
|
|
142
|
+
async refine(prompt, signal) {
|
|
143
|
+
if (!this.#runtime) {
|
|
144
|
+
throw new HonuaOperatorMapError("refine called before loadPackage");
|
|
145
|
+
}
|
|
146
|
+
if (!this.#activeIntentId) {
|
|
147
|
+
throw new HonuaOperatorMapError("refine requires bindIntent before invocation");
|
|
148
|
+
}
|
|
149
|
+
const intentId = this.#activeIntentId;
|
|
150
|
+
const ownRuntime = this.#runtime;
|
|
151
|
+
const gen = ++this.#opGeneration;
|
|
152
|
+
return withTelemetrySpan(this.#telemetry, "map-refine", intentId, async () => {
|
|
153
|
+
try {
|
|
154
|
+
const next = await this.#client.operator.refineMap(intentId, prompt, signal);
|
|
155
|
+
if (gen !== this.#opGeneration || this.#runtime !== ownRuntime) {
|
|
156
|
+
// Superseded by a newer load/refine, or the runtime was
|
|
157
|
+
// torn down while we awaited. Skip the apply so we never
|
|
158
|
+
// mutate a stale or replaced runtime.
|
|
159
|
+
return next;
|
|
160
|
+
}
|
|
161
|
+
await ownRuntime.updatePackage(next);
|
|
162
|
+
if (gen !== this.#opGeneration || this.#runtime !== ownRuntime) {
|
|
163
|
+
return next;
|
|
164
|
+
}
|
|
165
|
+
this.#syncExplorationContext(next);
|
|
166
|
+
this.#bag.emit({ kind: "package-refined", pkg: next });
|
|
167
|
+
return next;
|
|
168
|
+
}
|
|
169
|
+
catch (error) {
|
|
170
|
+
if (gen !== this.#opGeneration || this.#runtime !== ownRuntime) {
|
|
171
|
+
// Superseded; let the newer op own error reporting.
|
|
172
|
+
throw error;
|
|
173
|
+
}
|
|
174
|
+
const wrapped = new HonuaOperatorMapError("map refine failed", {
|
|
175
|
+
intentId,
|
|
176
|
+
cause: error,
|
|
177
|
+
detail: { prompt },
|
|
178
|
+
});
|
|
179
|
+
this.#bag.emit({ kind: "error", error: wrapped });
|
|
180
|
+
// Forward any per-source recoveries to the runtime so
|
|
181
|
+
// listeners on the runtime see the failure on the same
|
|
182
|
+
// channel as native source events.
|
|
183
|
+
ownRuntime.reportSourceError("__refine__", error);
|
|
184
|
+
throw wrapped;
|
|
185
|
+
}
|
|
186
|
+
}, { prompt });
|
|
187
|
+
}
|
|
188
|
+
// ── Thin re-exports of HonuaMapRuntime ops ───────────────────
|
|
189
|
+
setLayerVisibility(layerId, visible) {
|
|
190
|
+
this.#assertRuntime().setLayerVisibility(layerId, visible);
|
|
191
|
+
}
|
|
192
|
+
bindPopup(layerId, binding) {
|
|
193
|
+
return this.#assertRuntime().bindPopup(layerId, binding);
|
|
194
|
+
}
|
|
195
|
+
setViewState(view) {
|
|
196
|
+
this.#assertRuntime().setViewState(view);
|
|
197
|
+
}
|
|
198
|
+
getLegend() {
|
|
199
|
+
return this.#assertRuntime().getLegend();
|
|
200
|
+
}
|
|
201
|
+
dispose() {
|
|
202
|
+
this.#opGeneration += 1;
|
|
203
|
+
this.#tearDown();
|
|
204
|
+
this.#bag.clear();
|
|
205
|
+
}
|
|
206
|
+
#assertRuntime() {
|
|
207
|
+
if (!this.#runtime) {
|
|
208
|
+
throw new HonuaOperatorMapError("operation requires a loaded MapPackage");
|
|
209
|
+
}
|
|
210
|
+
return this.#runtime;
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* `ExplorationContext` exposes immutable `datasetId` / `sourceIds`,
|
|
214
|
+
* so a refined package that changes either leaves linked views bound
|
|
215
|
+
* to stale metadata. Rebuild the context (and the primary view
|
|
216
|
+
* binding) on those transitions; otherwise leave it intact so
|
|
217
|
+
* subscribers retain their current state.
|
|
218
|
+
*/
|
|
219
|
+
#syncExplorationContext(pkg) {
|
|
220
|
+
const nextSourceIds = pkg.sourceBindings.map((binding) => binding.sourceId);
|
|
221
|
+
if (this.#context &&
|
|
222
|
+
this.#context.datasetId === pkg.mapPackageId &&
|
|
223
|
+
sameSourceIds(this.#context.sourceIds, nextSourceIds)) {
|
|
224
|
+
return;
|
|
225
|
+
}
|
|
226
|
+
if (this.#viewHandle) {
|
|
227
|
+
this.#viewHandle.unbind();
|
|
228
|
+
this.#viewHandle = undefined;
|
|
229
|
+
}
|
|
230
|
+
if (this.#context) {
|
|
231
|
+
this.#context.dispose();
|
|
232
|
+
this.#context = undefined;
|
|
233
|
+
}
|
|
234
|
+
this.#context = createExplorationContext({
|
|
235
|
+
datasetId: pkg.mapPackageId,
|
|
236
|
+
sourceIds: nextSourceIds,
|
|
237
|
+
preset: this.#preset,
|
|
238
|
+
});
|
|
239
|
+
this.#viewHandle = this.#context.bind({ id: MAP_VIEW_BINDING_ID, role: "map" });
|
|
240
|
+
}
|
|
241
|
+
#tearDown() {
|
|
242
|
+
if (this.#viewHandle) {
|
|
243
|
+
this.#viewHandle.unbind();
|
|
244
|
+
this.#viewHandle = undefined;
|
|
245
|
+
}
|
|
246
|
+
if (this.#context) {
|
|
247
|
+
this.#context.dispose();
|
|
248
|
+
this.#context = undefined;
|
|
249
|
+
}
|
|
250
|
+
if (this.#runtime) {
|
|
251
|
+
try {
|
|
252
|
+
this.#runtime.dispose();
|
|
253
|
+
}
|
|
254
|
+
catch {
|
|
255
|
+
// dispose is best-effort during teardown; map errors do not
|
|
256
|
+
// re-surface here because the controller already returned.
|
|
257
|
+
}
|
|
258
|
+
this.#runtime = undefined;
|
|
259
|
+
this.#bag.emit({ kind: "package-disposed" });
|
|
260
|
+
}
|
|
261
|
+
if (this.#disposeMap) {
|
|
262
|
+
try {
|
|
263
|
+
this.#disposeMap();
|
|
264
|
+
}
|
|
265
|
+
catch {
|
|
266
|
+
// ignore — host-owned teardown.
|
|
267
|
+
}
|
|
268
|
+
this.#disposeMap = undefined;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
function sameSourceIds(a, b) {
|
|
273
|
+
if (a.length !== b.length)
|
|
274
|
+
return false;
|
|
275
|
+
for (let i = 0; i < a.length; i += 1) {
|
|
276
|
+
if (a[i] !== b[i])
|
|
277
|
+
return false;
|
|
278
|
+
}
|
|
279
|
+
return true;
|
|
280
|
+
}
|
|
281
|
+
function disposeFactoryResult(factoryResult) {
|
|
282
|
+
try {
|
|
283
|
+
factoryResult.dispose?.();
|
|
284
|
+
}
|
|
285
|
+
catch {
|
|
286
|
+
// ignore — host-owned teardown.
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
function disposeRuntime(runtime) {
|
|
290
|
+
try {
|
|
291
|
+
runtime.dispose();
|
|
292
|
+
}
|
|
293
|
+
catch {
|
|
294
|
+
// dispose is best-effort during supersession cleanup.
|
|
295
|
+
}
|
|
296
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `PlanReviewController` — exposes a server-produced plan, lets the
|
|
3
|
+
* embedder accept or revise it, and emits lifecycle events the workspace
|
|
4
|
+
* relays to embedders.
|
|
5
|
+
*
|
|
6
|
+
* Plan revisions are pass-through to the server; the controller never
|
|
7
|
+
* mutates plan steps locally.
|
|
8
|
+
*
|
|
9
|
+
* @module
|
|
10
|
+
*/
|
|
11
|
+
import type { OperatorClient } from "../client.js";
|
|
12
|
+
import { HonuaOperatorPlanError } from "../errors.js";
|
|
13
|
+
import type { OperatorTelemetry } from "../telemetry.js";
|
|
14
|
+
import type { OperatorPlan, PlanStep } from "../workspace/types.js";
|
|
15
|
+
import { type Unsubscribe } from "./base.js";
|
|
16
|
+
export type PlanRevisionRequest = {
|
|
17
|
+
readonly intentId: string;
|
|
18
|
+
readonly notes?: string;
|
|
19
|
+
};
|
|
20
|
+
export type PlanReviewEvent = {
|
|
21
|
+
kind: "plan-loaded";
|
|
22
|
+
plan: OperatorPlan;
|
|
23
|
+
} | {
|
|
24
|
+
kind: "plan-accepted";
|
|
25
|
+
plan: OperatorPlan;
|
|
26
|
+
} | {
|
|
27
|
+
kind: "plan-revising";
|
|
28
|
+
plan: OperatorPlan;
|
|
29
|
+
} | {
|
|
30
|
+
kind: "plan-revised";
|
|
31
|
+
plan: OperatorPlan;
|
|
32
|
+
} | {
|
|
33
|
+
kind: "error";
|
|
34
|
+
error: HonuaOperatorPlanError;
|
|
35
|
+
};
|
|
36
|
+
export type DecorateStep = (step: PlanStep) => PlanStep;
|
|
37
|
+
export interface PlanReviewControllerOptions {
|
|
38
|
+
client: OperatorClient;
|
|
39
|
+
telemetry?: OperatorTelemetry;
|
|
40
|
+
/** Pure transformation applied to plan steps before they are emitted. */
|
|
41
|
+
decorateStep?: DecorateStep;
|
|
42
|
+
}
|
|
43
|
+
export declare class PlanReviewController {
|
|
44
|
+
#private;
|
|
45
|
+
constructor(options: PlanReviewControllerOptions);
|
|
46
|
+
get plan(): OperatorPlan | undefined;
|
|
47
|
+
on(listener: (event: PlanReviewEvent) => void): Unsubscribe;
|
|
48
|
+
/**
|
|
49
|
+
* Load the plan attached to an intent. Wraps transport errors in
|
|
50
|
+
* `HonuaOperatorPlanError` and emits an `error` event.
|
|
51
|
+
*/
|
|
52
|
+
load(intentId: string, signal?: AbortSignal): Promise<OperatorPlan>;
|
|
53
|
+
/**
|
|
54
|
+
* Accept the loaded plan. The controller does not start execution —
|
|
55
|
+
* the workspace handles the hand-off to `ExecutionController`.
|
|
56
|
+
*/
|
|
57
|
+
accept(): OperatorPlan;
|
|
58
|
+
/**
|
|
59
|
+
* Ask the server for a revised plan. The controller forwards the
|
|
60
|
+
* embedder's revision notes through `OperatorClient.revisePlan` so
|
|
61
|
+
* the server can act on them, instead of just observing them in
|
|
62
|
+
* telemetry. The controller never mutates step shape locally.
|
|
63
|
+
*/
|
|
64
|
+
revise(request: PlanRevisionRequest, signal?: AbortSignal): Promise<OperatorPlan>;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=plan-review.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan-review.d.ts","sourceRoot":"","sources":["../../../../src/operator/controllers/plan-review.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAIV,YAAY,EACZ,QAAQ,EAET,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAe,KAAK,WAAW,EAAqB,MAAM,WAAW,CAAC;AAE7E,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,YAAY,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,IAAI,EAAE,YAAY,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,IAAI,EAAE,YAAY,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,YAAY,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,sBAAsB,CAAA;CAAE,CAAC;AAErD,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,QAAQ,KAAK,QAAQ,CAAC;AAExD,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,yEAAyE;IACzE,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,qBAAa,oBAAoB;;gBAaZ,OAAO,EAAE,2BAA2B;IAMvD,IAAW,IAAI,IAAI,YAAY,GAAG,SAAS,CAE1C;IAEM,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,GAAG,WAAW;IAIlE;;;OAGG;IACU,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IA0BhF;;;OAGG;IACI,MAAM,IAAI,YAAY;IAS7B;;;;;OAKG;IACU,MAAM,CAAC,OAAO,EAAE,mBAAmB,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;CAiD/F"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `PlanReviewController` — exposes a server-produced plan, lets the
|
|
3
|
+
* embedder accept or revise it, and emits lifecycle events the workspace
|
|
4
|
+
* relays to embedders.
|
|
5
|
+
*
|
|
6
|
+
* Plan revisions are pass-through to the server; the controller never
|
|
7
|
+
* mutates plan steps locally.
|
|
8
|
+
*
|
|
9
|
+
* @module
|
|
10
|
+
*/
|
|
11
|
+
import { HonuaOperatorPlanError } from "../errors.js";
|
|
12
|
+
import { ListenerBag, withTelemetrySpan } from "./base.js";
|
|
13
|
+
export class PlanReviewController {
|
|
14
|
+
#client;
|
|
15
|
+
#telemetry;
|
|
16
|
+
#decorateStep;
|
|
17
|
+
#bag = new ListenerBag();
|
|
18
|
+
#plan;
|
|
19
|
+
// Bumped on every load() / revise() entry. When `getPlan` /
|
|
20
|
+
// `revisePlan` resolves out of order (older intent's plan arrives
|
|
21
|
+
// after a newer intent has already triggered a load), the older
|
|
22
|
+
// resolution finds gen !== captured and is dropped without
|
|
23
|
+
// committing or emitting — accept() never executes a stale plan.
|
|
24
|
+
#generation = 0;
|
|
25
|
+
constructor(options) {
|
|
26
|
+
this.#client = options.client;
|
|
27
|
+
this.#telemetry = options.telemetry;
|
|
28
|
+
this.#decorateStep = options.decorateStep;
|
|
29
|
+
}
|
|
30
|
+
get plan() {
|
|
31
|
+
return this.#plan ? this.#decoratedPlan(this.#plan) : undefined;
|
|
32
|
+
}
|
|
33
|
+
on(listener) {
|
|
34
|
+
return this.#bag.on(listener);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Load the plan attached to an intent. Wraps transport errors in
|
|
38
|
+
* `HonuaOperatorPlanError` and emits an `error` event.
|
|
39
|
+
*/
|
|
40
|
+
async load(intentId, signal) {
|
|
41
|
+
const gen = ++this.#generation;
|
|
42
|
+
try {
|
|
43
|
+
const plan = await withTelemetrySpan(this.#telemetry, "plan-load", intentId, () => this.#client.operator.getPlan(intentId, signal));
|
|
44
|
+
const decorated = this.#decoratedPlan(plan);
|
|
45
|
+
if (gen !== this.#generation) {
|
|
46
|
+
// Superseded by a newer load()/revise(); don't commit or emit.
|
|
47
|
+
return decorated;
|
|
48
|
+
}
|
|
49
|
+
this.#plan = plan;
|
|
50
|
+
this.#bag.emit({ kind: "plan-loaded", plan: decorated });
|
|
51
|
+
return decorated;
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
const wrapped = error instanceof HonuaOperatorPlanError
|
|
55
|
+
? error
|
|
56
|
+
: new HonuaOperatorPlanError("plan load failed", { intentId, cause: error });
|
|
57
|
+
if (gen === this.#generation) {
|
|
58
|
+
this.#bag.emit({ kind: "error", error: wrapped });
|
|
59
|
+
}
|
|
60
|
+
throw wrapped;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Accept the loaded plan. The controller does not start execution —
|
|
65
|
+
* the workspace handles the hand-off to `ExecutionController`.
|
|
66
|
+
*/
|
|
67
|
+
accept() {
|
|
68
|
+
if (!this.#plan) {
|
|
69
|
+
throw new HonuaOperatorPlanError("acceptPlan called before plan load");
|
|
70
|
+
}
|
|
71
|
+
const decorated = this.#decoratedPlan(this.#plan);
|
|
72
|
+
this.#bag.emit({ kind: "plan-accepted", plan: decorated });
|
|
73
|
+
return decorated;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Ask the server for a revised plan. The controller forwards the
|
|
77
|
+
* embedder's revision notes through `OperatorClient.revisePlan` so
|
|
78
|
+
* the server can act on them, instead of just observing them in
|
|
79
|
+
* telemetry. The controller never mutates step shape locally.
|
|
80
|
+
*/
|
|
81
|
+
async revise(request, signal) {
|
|
82
|
+
if (this.#plan) {
|
|
83
|
+
this.#bag.emit({ kind: "plan-revising", plan: this.#decoratedPlan(this.#plan) });
|
|
84
|
+
}
|
|
85
|
+
const gen = ++this.#generation;
|
|
86
|
+
try {
|
|
87
|
+
const next = await withTelemetrySpan(this.#telemetry, "plan-load", request.intentId, () => this.#client.operator.revisePlan(request.intentId, request.notes, signal), { revision: true, notes: request.notes });
|
|
88
|
+
const decorated = this.#decoratedPlan(next);
|
|
89
|
+
if (gen !== this.#generation) {
|
|
90
|
+
return decorated;
|
|
91
|
+
}
|
|
92
|
+
this.#plan = next;
|
|
93
|
+
this.#bag.emit({ kind: "plan-revised", plan: decorated });
|
|
94
|
+
return decorated;
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
const wrapped = error instanceof HonuaOperatorPlanError
|
|
98
|
+
? error
|
|
99
|
+
: new HonuaOperatorPlanError("plan revision failed", {
|
|
100
|
+
intentId: request.intentId,
|
|
101
|
+
cause: error,
|
|
102
|
+
});
|
|
103
|
+
if (gen === this.#generation) {
|
|
104
|
+
this.#bag.emit({ kind: "error", error: wrapped });
|
|
105
|
+
}
|
|
106
|
+
throw wrapped;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
#decoratedPlan(plan) {
|
|
110
|
+
if (!this.#decorateStep)
|
|
111
|
+
return plan;
|
|
112
|
+
const steps = plan.steps.map((step) => this.#decorateStep(step));
|
|
113
|
+
switch (plan.kind) {
|
|
114
|
+
case "analysis":
|
|
115
|
+
return { ...plan, steps };
|
|
116
|
+
case "publishing":
|
|
117
|
+
return { ...plan, steps };
|
|
118
|
+
case "builder":
|
|
119
|
+
return { ...plan, steps };
|
|
120
|
+
case "deployment":
|
|
121
|
+
return { ...plan, steps };
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Operator-stage errors. Mirrors the discriminated-union pattern from
|
|
3
|
+
* `src/core/errors.ts`: each concrete class extends `Error` directly,
|
|
4
|
+
* the `HonuaOperatorError` type is the union of those classes, and
|
|
5
|
+
* `isHonuaOperatorError()` is the narrowing type guard.
|
|
6
|
+
*
|
|
7
|
+
* The set is independent of `HonuaError` in `src/core/errors.ts`; the
|
|
8
|
+
* two coexist so that adapter-level failures and operator-level failures
|
|
9
|
+
* can be discriminated separately.
|
|
10
|
+
*
|
|
11
|
+
* @module
|
|
12
|
+
*/
|
|
13
|
+
export type HonuaOperatorErrorStage = "intent" | "plan" | "execution" | "approval" | "map" | "app";
|
|
14
|
+
/**
|
|
15
|
+
* Failure-kind taxonomy aligned with `AI_OPERATOR_CONTRACT`. Server
|
|
16
|
+
* responses with a structured failure kind populate the controller's
|
|
17
|
+
* error verbatim; unknown values are preserved as strings.
|
|
18
|
+
*/
|
|
19
|
+
export type HonuaOperatorExecutionFailureKind = "ValidationFailed" | "AuthorizationDenied" | "UnknownDataset" | "UnknownProcess" | "ExecutionFailed" | "Timeout" | "Cancelled" | "OutputBindingFailed" | (string & {
|
|
20
|
+
readonly __brand?: never;
|
|
21
|
+
});
|
|
22
|
+
interface OperatorErrorContext {
|
|
23
|
+
intentId?: string;
|
|
24
|
+
planId?: string;
|
|
25
|
+
executionId?: string;
|
|
26
|
+
detail?: Record<string, unknown>;
|
|
27
|
+
cause?: unknown;
|
|
28
|
+
}
|
|
29
|
+
declare abstract class HonuaOperatorErrorBase extends Error {
|
|
30
|
+
readonly stage: HonuaOperatorErrorStage;
|
|
31
|
+
readonly intentId: string | undefined;
|
|
32
|
+
readonly planId: string | undefined;
|
|
33
|
+
readonly executionId: string | undefined;
|
|
34
|
+
readonly detail: Record<string, unknown> | undefined;
|
|
35
|
+
readonly cause: unknown;
|
|
36
|
+
protected constructor(stage: HonuaOperatorErrorStage, message: string, context?: OperatorErrorContext);
|
|
37
|
+
}
|
|
38
|
+
export declare class HonuaOperatorIntentError extends HonuaOperatorErrorBase {
|
|
39
|
+
constructor(message: string, context?: OperatorErrorContext);
|
|
40
|
+
}
|
|
41
|
+
export declare class HonuaOperatorPlanError extends HonuaOperatorErrorBase {
|
|
42
|
+
constructor(message: string, context?: OperatorErrorContext);
|
|
43
|
+
}
|
|
44
|
+
export declare class HonuaOperatorExecutionError extends HonuaOperatorErrorBase {
|
|
45
|
+
readonly failureKind: HonuaOperatorExecutionFailureKind | undefined;
|
|
46
|
+
constructor(message: string, context?: OperatorErrorContext & {
|
|
47
|
+
failureKind?: HonuaOperatorExecutionFailureKind;
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
export declare class HonuaOperatorApprovalError extends HonuaOperatorErrorBase {
|
|
51
|
+
constructor(message: string, context?: OperatorErrorContext);
|
|
52
|
+
}
|
|
53
|
+
export declare class HonuaOperatorMapError extends HonuaOperatorErrorBase {
|
|
54
|
+
constructor(message: string, context?: OperatorErrorContext);
|
|
55
|
+
}
|
|
56
|
+
export declare class HonuaOperatorAppError extends HonuaOperatorErrorBase {
|
|
57
|
+
constructor(message: string, context?: OperatorErrorContext);
|
|
58
|
+
}
|
|
59
|
+
export type HonuaOperatorError = HonuaOperatorIntentError | HonuaOperatorPlanError | HonuaOperatorExecutionError | HonuaOperatorApprovalError | HonuaOperatorMapError | HonuaOperatorAppError;
|
|
60
|
+
export declare function isHonuaOperatorError(error: unknown): error is HonuaOperatorError;
|
|
61
|
+
export {};
|
|
62
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/operator/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,MAAM,uBAAuB,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,UAAU,GAAG,KAAK,GAAG,KAAK,CAAC;AAEnG;;;;GAIG;AACH,MAAM,MAAM,iCAAiC,GACzC,kBAAkB,GAClB,qBAAqB,GACrB,gBAAgB,GAChB,gBAAgB,GAChB,iBAAiB,GACjB,SAAS,GACT,WAAW,GACX,qBAAqB,GACrB,CAAC,MAAM,GAAG;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC,CAAC;AAE5C,UAAU,oBAAoB;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,uBAAe,sBAAuB,SAAQ,KAAK;IACjD,SAAgB,KAAK,EAAE,uBAAuB,CAAC;IAC/C,SAAgB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7C,SAAgB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,SAAgB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChD,SAAgB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAC5D,SAAyB,KAAK,EAAE,OAAO,CAAC;IAExC,SAAS,aAAa,KAAK,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB;CAS1G;AAED,qBAAa,wBAAyB,SAAQ,sBAAsB;gBAC/C,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB;CAIvE;AAED,qBAAa,sBAAuB,SAAQ,sBAAsB;gBAC7C,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB;CAIvE;AAED,qBAAa,2BAA4B,SAAQ,sBAAsB;IACrE,SAAgB,WAAW,EAAE,iCAAiC,GAAG,SAAS,CAAC;gBAGzE,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,oBAAoB,GAAG;QAAE,WAAW,CAAC,EAAE,iCAAiC,CAAA;KAAO;CAM3F;AAED,qBAAa,0BAA2B,SAAQ,sBAAsB;gBACjD,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB;CAIvE;AAED,qBAAa,qBAAsB,SAAQ,sBAAsB;gBAC5C,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB;CAIvE;AAED,qBAAa,qBAAsB,SAAQ,sBAAsB;gBAC5C,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB;CAIvE;AAED,MAAM,MAAM,kBAAkB,GAC1B,wBAAwB,GACxB,sBAAsB,GACtB,2BAA2B,GAC3B,0BAA0B,GAC1B,qBAAqB,GACrB,qBAAqB,CAAC;AAE1B,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,kBAAkB,CAShF"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Operator-stage errors. Mirrors the discriminated-union pattern from
|
|
3
|
+
* `src/core/errors.ts`: each concrete class extends `Error` directly,
|
|
4
|
+
* the `HonuaOperatorError` type is the union of those classes, and
|
|
5
|
+
* `isHonuaOperatorError()` is the narrowing type guard.
|
|
6
|
+
*
|
|
7
|
+
* The set is independent of `HonuaError` in `src/core/errors.ts`; the
|
|
8
|
+
* two coexist so that adapter-level failures and operator-level failures
|
|
9
|
+
* can be discriminated separately.
|
|
10
|
+
*
|
|
11
|
+
* @module
|
|
12
|
+
*/
|
|
13
|
+
class HonuaOperatorErrorBase extends Error {
|
|
14
|
+
stage;
|
|
15
|
+
intentId;
|
|
16
|
+
planId;
|
|
17
|
+
executionId;
|
|
18
|
+
detail;
|
|
19
|
+
cause;
|
|
20
|
+
constructor(stage, message, context = {}) {
|
|
21
|
+
super(message);
|
|
22
|
+
this.stage = stage;
|
|
23
|
+
this.intentId = context.intentId;
|
|
24
|
+
this.planId = context.planId;
|
|
25
|
+
this.executionId = context.executionId;
|
|
26
|
+
this.detail = context.detail;
|
|
27
|
+
this.cause = context.cause;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
export class HonuaOperatorIntentError extends HonuaOperatorErrorBase {
|
|
31
|
+
constructor(message, context = {}) {
|
|
32
|
+
super("intent", message, context);
|
|
33
|
+
this.name = "HonuaOperatorIntentError";
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
export class HonuaOperatorPlanError extends HonuaOperatorErrorBase {
|
|
37
|
+
constructor(message, context = {}) {
|
|
38
|
+
super("plan", message, context);
|
|
39
|
+
this.name = "HonuaOperatorPlanError";
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
export class HonuaOperatorExecutionError extends HonuaOperatorErrorBase {
|
|
43
|
+
failureKind;
|
|
44
|
+
constructor(message, context = {}) {
|
|
45
|
+
super("execution", message, context);
|
|
46
|
+
this.name = "HonuaOperatorExecutionError";
|
|
47
|
+
this.failureKind = context.failureKind;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
export class HonuaOperatorApprovalError extends HonuaOperatorErrorBase {
|
|
51
|
+
constructor(message, context = {}) {
|
|
52
|
+
super("approval", message, context);
|
|
53
|
+
this.name = "HonuaOperatorApprovalError";
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
export class HonuaOperatorMapError extends HonuaOperatorErrorBase {
|
|
57
|
+
constructor(message, context = {}) {
|
|
58
|
+
super("map", message, context);
|
|
59
|
+
this.name = "HonuaOperatorMapError";
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
export class HonuaOperatorAppError extends HonuaOperatorErrorBase {
|
|
63
|
+
constructor(message, context = {}) {
|
|
64
|
+
super("app", message, context);
|
|
65
|
+
this.name = "HonuaOperatorAppError";
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
export function isHonuaOperatorError(error) {
|
|
69
|
+
return (error instanceof HonuaOperatorIntentError ||
|
|
70
|
+
error instanceof HonuaOperatorPlanError ||
|
|
71
|
+
error instanceof HonuaOperatorExecutionError ||
|
|
72
|
+
error instanceof HonuaOperatorApprovalError ||
|
|
73
|
+
error instanceof HonuaOperatorMapError ||
|
|
74
|
+
error instanceof HonuaOperatorAppError);
|
|
75
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@honua/sdk-js/operator/i18n` — operator message catalog and resolution helpers.
|
|
3
|
+
*
|
|
4
|
+
* @experimental This entrypoint is not yet covered by the SDK's semver contract
|
|
5
|
+
* — the surface may change in any minor release prior to `1.0.0`.
|
|
6
|
+
* @module
|
|
7
|
+
*/
|
|
8
|
+
export { DEFAULT_MESSAGES, resolveMessage } from "./messages.js";
|
|
9
|
+
export type { MessageCatalog, MessageId } from "./messages.js";
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/operator/i18n/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACjE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@honua/sdk-js/operator/i18n` — operator message catalog and resolution helpers.
|
|
3
|
+
*
|
|
4
|
+
* @experimental This entrypoint is not yet covered by the SDK's semver contract
|
|
5
|
+
* — the surface may change in any minor release prior to `1.0.0`.
|
|
6
|
+
* @module
|
|
7
|
+
*/
|
|
8
|
+
export { DEFAULT_MESSAGES, resolveMessage } from "./messages.js";
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `MessageCatalog` — flat `id → string` map with ICU-lite placeholder
|
|
3
|
+
* substitution (`{name}`). The catalog is the only place reference
|
|
4
|
+
* components read user-facing strings from; embedders ship alternates
|
|
5
|
+
* by passing a different catalog.
|
|
6
|
+
*
|
|
7
|
+
* @module
|
|
8
|
+
*/
|
|
9
|
+
export type MessageId = "chat.placeholder" | "chat.send" | "chat.empty" | "clarification.title" | "clarification.submit" | "clarification.required" | "plan.title" | "plan.empty" | "plan.accept" | "plan.revise" | "plan.requiresApproval" | "plan.estimatedCost" | "execution.idle" | "execution.accepted" | "execution.running" | "execution.successful" | "execution.failed" | "execution.dismissed" | "map.empty" | "map.refine" | "builder.empty" | "builder.refine" | "approval.notRequired" | "approval.pending" | "approval.granted" | "approval.deferred" | "approval.denied" | "approval.confirm" | "approval.audit";
|
|
10
|
+
export type MessageCatalog = Partial<Record<MessageId, string>>;
|
|
11
|
+
export declare const DEFAULT_MESSAGES: Readonly<Record<MessageId, string>>;
|
|
12
|
+
/**
|
|
13
|
+
* Resolve a message id to a string with ICU-lite `{placeholder}`
|
|
14
|
+
* substitution. Falls back to `DEFAULT_MESSAGES` when an id is not
|
|
15
|
+
* present in the supplied catalog. Unknown placeholders survive
|
|
16
|
+
* unrendered so missing data is visible rather than silently empty.
|
|
17
|
+
*/
|
|
18
|
+
export declare function resolveMessage(catalog: MessageCatalog | undefined, id: MessageId, values?: Readonly<Record<string, string | number>>): string;
|
|
19
|
+
//# sourceMappingURL=messages.d.ts.map
|