@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.
Files changed (840) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +11 -0
  3. package/app/index.d.ts +164 -0
  4. package/app/index.d.ts.map +1 -0
  5. package/app/index.js +424 -0
  6. package/app-controller/controller.d.ts +425 -0
  7. package/app-controller/controller.d.ts.map +1 -0
  8. package/app-controller/controller.js +1173 -0
  9. package/app-controller/index.d.ts +14 -0
  10. package/app-controller/index.d.ts.map +1 -0
  11. package/app-controller/index.js +12 -0
  12. package/app-workspace/index.d.ts +421 -0
  13. package/app-workspace/index.d.ts.map +1 -0
  14. package/app-workspace/index.js +722 -0
  15. package/collaboration/client.d.ts +40 -0
  16. package/collaboration/client.d.ts.map +1 -0
  17. package/collaboration/client.js +299 -0
  18. package/collaboration/errors.d.ts +15 -0
  19. package/collaboration/errors.d.ts.map +1 -0
  20. package/collaboration/errors.js +17 -0
  21. package/collaboration/fixture.d.ts +41 -0
  22. package/collaboration/fixture.d.ts.map +1 -0
  23. package/collaboration/fixture.js +362 -0
  24. package/collaboration/index.d.ts +18 -0
  25. package/collaboration/index.d.ts.map +1 -0
  26. package/collaboration/index.js +14 -0
  27. package/collaboration/types.d.ts +240 -0
  28. package/collaboration/types.d.ts.map +1 -0
  29. package/collaboration/types.js +1 -0
  30. package/contract/analytics-sources.d.ts +149 -0
  31. package/contract/analytics-sources.d.ts.map +1 -0
  32. package/contract/analytics-sources.js +235 -0
  33. package/contract/edit-session.d.ts +203 -0
  34. package/contract/edit-session.d.ts.map +1 -0
  35. package/contract/edit-session.js +760 -0
  36. package/contract/edit-sketch.d.ts +91 -0
  37. package/contract/edit-sketch.d.ts.map +1 -0
  38. package/contract/edit-sketch.js +281 -0
  39. package/contract/index.d.ts +63 -0
  40. package/contract/index.d.ts.map +1 -0
  41. package/contract/index.js +52 -0
  42. package/contract/jobs.d.ts +149 -0
  43. package/contract/jobs.d.ts.map +1 -0
  44. package/contract/jobs.js +40 -0
  45. package/contract/pmtiles.d.ts +162 -0
  46. package/contract/pmtiles.d.ts.map +1 -0
  47. package/contract/pmtiles.js +155 -0
  48. package/contract/source.d.ts +447 -0
  49. package/contract/source.d.ts.map +1 -0
  50. package/contract/source.js +3909 -0
  51. package/contract/spatial-aggregation.d.ts +336 -0
  52. package/contract/spatial-aggregation.d.ts.map +1 -0
  53. package/contract/spatial-aggregation.js +298 -0
  54. package/contract/temporal.d.ts +455 -0
  55. package/contract/temporal.d.ts.map +1 -0
  56. package/contract/temporal.js +146 -0
  57. package/contract/tiles.d.ts +370 -0
  58. package/contract/tiles.d.ts.map +1 -0
  59. package/contract/tiles.js +519 -0
  60. package/contract/types.d.ts +694 -0
  61. package/contract/types.d.ts.map +1 -0
  62. package/contract/types.js +183 -0
  63. package/contract/widget-source.d.ts +205 -0
  64. package/contract/widget-source.d.ts.map +1 -0
  65. package/contract/widget-source.js +1473 -0
  66. package/control-plane/client.d.ts +95 -0
  67. package/control-plane/client.d.ts.map +1 -0
  68. package/control-plane/client.js +374 -0
  69. package/control-plane/index.d.ts +18 -0
  70. package/control-plane/index.d.ts.map +1 -0
  71. package/control-plane/index.js +14 -0
  72. package/control-plane/types.d.ts +233 -0
  73. package/control-plane/types.d.ts.map +1 -0
  74. package/control-plane/types.js +7 -0
  75. package/controls/basemap-style-binding.d.ts +54 -0
  76. package/controls/basemap-style-binding.d.ts.map +1 -0
  77. package/controls/basemap-style-binding.js +199 -0
  78. package/controls/basemap-switcher.d.ts +95 -0
  79. package/controls/basemap-switcher.d.ts.map +1 -0
  80. package/controls/basemap-switcher.js +379 -0
  81. package/controls/element-utils.d.ts +48 -0
  82. package/controls/element-utils.d.ts.map +1 -0
  83. package/controls/element-utils.js +78 -0
  84. package/controls/index.d.ts +33 -0
  85. package/controls/index.d.ts.map +1 -0
  86. package/controls/index.js +30 -0
  87. package/controls/layer-list.d.ts +98 -0
  88. package/controls/layer-list.d.ts.map +1 -0
  89. package/controls/layer-list.js +375 -0
  90. package/controls/legend-derive.d.ts +53 -0
  91. package/controls/legend-derive.d.ts.map +1 -0
  92. package/controls/legend-derive.js +196 -0
  93. package/controls/legend.d.ts +104 -0
  94. package/controls/legend.d.ts.map +1 -0
  95. package/controls/legend.js +381 -0
  96. package/controls/swipe-control.d.ts +80 -0
  97. package/controls/swipe-control.d.ts.map +1 -0
  98. package/controls/swipe-control.js +368 -0
  99. package/controls/types.d.ts +227 -0
  100. package/controls/types.d.ts.map +1 -0
  101. package/controls/types.js +11 -0
  102. package/core/auth/client-credentials-provider.d.ts +51 -0
  103. package/core/auth/client-credentials-provider.d.ts.map +1 -0
  104. package/core/auth/client-credentials-provider.js +115 -0
  105. package/core/auth/credential-store.d.ts +52 -0
  106. package/core/auth/credential-store.d.ts.map +1 -0
  107. package/core/auth/credential-store.js +82 -0
  108. package/core/auth/index.d.ts +23 -0
  109. package/core/auth/index.d.ts.map +1 -0
  110. package/core/auth/index.js +20 -0
  111. package/core/auth/oauth2-provider.d.ts +114 -0
  112. package/core/auth/oauth2-provider.d.ts.map +1 -0
  113. package/core/auth/oauth2-provider.js +408 -0
  114. package/core/auth/pkce.d.ts +25 -0
  115. package/core/auth/pkce.d.ts.map +1 -0
  116. package/core/auth/pkce.js +46 -0
  117. package/core/auth/static-providers.d.ts +20 -0
  118. package/core/auth/static-providers.d.ts.map +1 -0
  119. package/core/auth/static-providers.js +26 -0
  120. package/core/auth/token-endpoint.d.ts +40 -0
  121. package/core/auth/token-endpoint.d.ts.map +1 -0
  122. package/core/auth/token-endpoint.js +133 -0
  123. package/core/auth/types.d.ts +144 -0
  124. package/core/auth/types.d.ts.map +1 -0
  125. package/core/auth/types.js +8 -0
  126. package/core/batch.d.ts +37 -0
  127. package/core/batch.d.ts.map +1 -0
  128. package/core/batch.js +79 -0
  129. package/core/cache-state.d.ts +79 -0
  130. package/core/cache-state.d.ts.map +1 -0
  131. package/core/cache-state.js +87 -0
  132. package/core/client.d.ts +607 -0
  133. package/core/client.d.ts.map +1 -0
  134. package/core/client.js +1716 -0
  135. package/core/compatibility.d.ts +18 -0
  136. package/core/compatibility.d.ts.map +1 -0
  137. package/core/compatibility.js +245 -0
  138. package/core/errors.d.ts +139 -0
  139. package/core/errors.d.ts.map +1 -0
  140. package/core/errors.js +176 -0
  141. package/core/esri-geojson.d.ts +66 -0
  142. package/core/esri-geojson.d.ts.map +1 -0
  143. package/core/esri-geojson.js +363 -0
  144. package/core/geoparquet-sql.d.ts +162 -0
  145. package/core/geoparquet-sql.d.ts.map +1 -0
  146. package/core/geoparquet-sql.js +333 -0
  147. package/core/geoservices.d.ts +34 -0
  148. package/core/geoservices.d.ts.map +1 -0
  149. package/core/geoservices.js +434 -0
  150. package/core/grpc-adapter.d.ts +23 -0
  151. package/core/grpc-adapter.d.ts.map +1 -0
  152. package/core/grpc-adapter.js +688 -0
  153. package/core/odata.d.ts +347 -0
  154. package/core/odata.d.ts.map +1 -0
  155. package/core/odata.js +913 -0
  156. package/core/ogc-conformance.d.ts +35 -0
  157. package/core/ogc-conformance.d.ts.map +1 -0
  158. package/core/ogc-conformance.js +134 -0
  159. package/core/ogc-endpoint-layout.d.ts +70 -0
  160. package/core/ogc-endpoint-layout.d.ts.map +1 -0
  161. package/core/ogc-endpoint-layout.js +173 -0
  162. package/core/ogc-features.d.ts +23 -0
  163. package/core/ogc-features.d.ts.map +1 -0
  164. package/core/ogc-features.js +129 -0
  165. package/core/ogc-maps.d.ts +49 -0
  166. package/core/ogc-maps.d.ts.map +1 -0
  167. package/core/ogc-maps.js +126 -0
  168. package/core/ogc-processes.d.ts +118 -0
  169. package/core/ogc-processes.d.ts.map +1 -0
  170. package/core/ogc-processes.js +423 -0
  171. package/core/ogc-records.d.ts +75 -0
  172. package/core/ogc-records.d.ts.map +1 -0
  173. package/core/ogc-records.js +251 -0
  174. package/core/ogc-tiles.d.ts +125 -0
  175. package/core/ogc-tiles.d.ts.map +1 -0
  176. package/core/ogc-tiles.js +183 -0
  177. package/core/path-utils.d.ts +69 -0
  178. package/core/path-utils.d.ts.map +1 -0
  179. package/core/path-utils.js +123 -0
  180. package/core/pbf-decoder.d.ts +39 -0
  181. package/core/pbf-decoder.d.ts.map +1 -0
  182. package/core/pbf-decoder.js +702 -0
  183. package/core/process-runner.d.ts +104 -0
  184. package/core/process-runner.d.ts.map +1 -0
  185. package/core/process-runner.js +315 -0
  186. package/core/protocol-transport.d.ts +76 -0
  187. package/core/protocol-transport.d.ts.map +1 -0
  188. package/core/protocol-transport.js +15 -0
  189. package/core/query-builder.d.ts +261 -0
  190. package/core/query-builder.d.ts.map +1 -0
  191. package/core/query-builder.js +538 -0
  192. package/core/request-pipeline.d.ts +88 -0
  193. package/core/request-pipeline.d.ts.map +1 -0
  194. package/core/request-pipeline.js +273 -0
  195. package/core/spatial-filter.d.ts +93 -0
  196. package/core/spatial-filter.d.ts.map +1 -0
  197. package/core/spatial-filter.js +153 -0
  198. package/core/stac-static.d.ts +51 -0
  199. package/core/stac-static.d.ts.map +1 -0
  200. package/core/stac-static.js +195 -0
  201. package/core/stac.d.ts +67 -0
  202. package/core/stac.d.ts.map +1 -0
  203. package/core/stac.js +259 -0
  204. package/core/surfaces.d.ts +540 -0
  205. package/core/surfaces.d.ts.map +1 -0
  206. package/core/surfaces.js +1964 -0
  207. package/core/terrain-elevation.d.ts +114 -0
  208. package/core/terrain-elevation.d.ts.map +1 -0
  209. package/core/terrain-elevation.js +150 -0
  210. package/core/types.d.ts +1404 -0
  211. package/core/types.d.ts.map +1 -0
  212. package/core/types.js +13 -0
  213. package/core/wfs-capabilities.d.ts +153 -0
  214. package/core/wfs-capabilities.d.ts.map +1 -0
  215. package/core/wfs-capabilities.js +490 -0
  216. package/core/wfs-filter.d.ts +118 -0
  217. package/core/wfs-filter.d.ts.map +1 -0
  218. package/core/wfs-filter.js +634 -0
  219. package/core/wfs.d.ts +232 -0
  220. package/core/wfs.d.ts.map +1 -0
  221. package/core/wfs.js +426 -0
  222. package/core/wire-shared.d.ts +32 -0
  223. package/core/wire-shared.d.ts.map +1 -0
  224. package/core/wire-shared.js +76 -0
  225. package/core/wms-axis.d.ts +36 -0
  226. package/core/wms-axis.d.ts.map +1 -0
  227. package/core/wms-axis.js +73 -0
  228. package/core/wms-capabilities.d.ts +110 -0
  229. package/core/wms-capabilities.d.ts.map +1 -0
  230. package/core/wms-capabilities.js +559 -0
  231. package/core/wms-types.d.ts +128 -0
  232. package/core/wms-types.d.ts.map +1 -0
  233. package/core/wms-types.js +32 -0
  234. package/core/wms.d.ts +144 -0
  235. package/core/wms.d.ts.map +1 -0
  236. package/core/wms.js +338 -0
  237. package/core/wmts-capabilities.d.ts +82 -0
  238. package/core/wmts-capabilities.d.ts.map +1 -0
  239. package/core/wmts-capabilities.js +402 -0
  240. package/core/wmts.d.ts +103 -0
  241. package/core/wmts.d.ts.map +1 -0
  242. package/core/wmts.js +332 -0
  243. package/core/xml-text.d.ts +20 -0
  244. package/core/xml-text.d.ts.map +1 -0
  245. package/core/xml-text.js +85 -0
  246. package/esri-compat/basemap-gallery.d.ts +38 -0
  247. package/esri-compat/basemap-gallery.d.ts.map +1 -0
  248. package/esri-compat/basemap-gallery.js +159 -0
  249. package/esri-compat/basemap-layer-list.d.ts +35 -0
  250. package/esri-compat/basemap-layer-list.d.ts.map +1 -0
  251. package/esri-compat/basemap-layer-list.js +139 -0
  252. package/esri-compat/basemap.d.ts +32 -0
  253. package/esri-compat/basemap.d.ts.map +1 -0
  254. package/esri-compat/basemap.js +84 -0
  255. package/esri-compat/bookmarks.d.ts +36 -0
  256. package/esri-compat/bookmarks.d.ts.map +1 -0
  257. package/esri-compat/bookmarks.js +108 -0
  258. package/esri-compat/class-breaks-renderer.d.ts +50 -0
  259. package/esri-compat/class-breaks-renderer.d.ts.map +1 -0
  260. package/esri-compat/class-breaks-renderer.js +164 -0
  261. package/esri-compat/color.d.ts +22 -0
  262. package/esri-compat/color.d.ts.map +1 -0
  263. package/esri-compat/color.js +106 -0
  264. package/esri-compat/controls.d.ts +174 -0
  265. package/esri-compat/controls.d.ts.map +1 -0
  266. package/esri-compat/controls.js +479 -0
  267. package/esri-compat/coordinate-conversion.d.ts +41 -0
  268. package/esri-compat/coordinate-conversion.d.ts.map +1 -0
  269. package/esri-compat/coordinate-conversion.js +125 -0
  270. package/esri-compat/directions.d.ts +45 -0
  271. package/esri-compat/directions.d.ts.map +1 -0
  272. package/esri-compat/directions.js +123 -0
  273. package/esri-compat/editor.d.ts +47 -0
  274. package/esri-compat/editor.d.ts.map +1 -0
  275. package/esri-compat/editor.js +170 -0
  276. package/esri-compat/esri-config.d.ts +16 -0
  277. package/esri-compat/esri-config.d.ts.map +1 -0
  278. package/esri-compat/esri-config.js +23 -0
  279. package/esri-compat/esri-request.d.ts +17 -0
  280. package/esri-compat/esri-request.d.ts.map +1 -0
  281. package/esri-compat/esri-request.js +127 -0
  282. package/esri-compat/event-bus.d.ts +106 -0
  283. package/esri-compat/event-bus.d.ts.map +1 -0
  284. package/esri-compat/event-bus.js +90 -0
  285. package/esri-compat/expand.d.ts +36 -0
  286. package/esri-compat/expand.d.ts.map +1 -0
  287. package/esri-compat/expand.js +97 -0
  288. package/esri-compat/extent.d.ts +43 -0
  289. package/esri-compat/extent.d.ts.map +1 -0
  290. package/esri-compat/extent.js +140 -0
  291. package/esri-compat/feature-filter.d.ts +55 -0
  292. package/esri-compat/feature-filter.d.ts.map +1 -0
  293. package/esri-compat/feature-filter.js +109 -0
  294. package/esri-compat/feature-form.d.ts +64 -0
  295. package/esri-compat/feature-form.d.ts.map +1 -0
  296. package/esri-compat/feature-form.js +137 -0
  297. package/esri-compat/feature-layer.d.ts +173 -0
  298. package/esri-compat/feature-layer.d.ts.map +1 -0
  299. package/esri-compat/feature-layer.js +661 -0
  300. package/esri-compat/feature-set.d.ts +32 -0
  301. package/esri-compat/feature-set.d.ts.map +1 -0
  302. package/esri-compat/feature-set.js +80 -0
  303. package/esri-compat/feature-table.d.ts +141 -0
  304. package/esri-compat/feature-table.d.ts.map +1 -0
  305. package/esri-compat/feature-table.js +500 -0
  306. package/esri-compat/feature-templates.d.ts +41 -0
  307. package/esri-compat/feature-templates.d.ts.map +1 -0
  308. package/esri-compat/feature-templates.js +97 -0
  309. package/esri-compat/feature.d.ts +33 -0
  310. package/esri-compat/feature.d.ts.map +1 -0
  311. package/esri-compat/feature.js +83 -0
  312. package/esri-compat/geojson-layer.d.ts +86 -0
  313. package/esri-compat/geojson-layer.d.ts.map +1 -0
  314. package/esri-compat/geojson-layer.js +191 -0
  315. package/esri-compat/geometry-engine.d.ts +107 -0
  316. package/esri-compat/geometry-engine.d.ts.map +1 -0
  317. package/esri-compat/geometry-engine.js +266 -0
  318. package/esri-compat/graphic.d.ts +46 -0
  319. package/esri-compat/graphic.d.ts.map +1 -0
  320. package/esri-compat/graphic.js +103 -0
  321. package/esri-compat/graphics-layer.d.ts +49 -0
  322. package/esri-compat/graphics-layer.d.ts.map +1 -0
  323. package/esri-compat/graphics-layer.js +185 -0
  324. package/esri-compat/group-layer.d.ts +48 -0
  325. package/esri-compat/group-layer.d.ts.map +1 -0
  326. package/esri-compat/group-layer.js +212 -0
  327. package/esri-compat/identify.d.ts +71 -0
  328. package/esri-compat/identify.d.ts.map +1 -0
  329. package/esri-compat/identify.js +299 -0
  330. package/esri-compat/identity-manager.d.ts +74 -0
  331. package/esri-compat/identity-manager.d.ts.map +1 -0
  332. package/esri-compat/identity-manager.js +245 -0
  333. package/esri-compat/imagery-layer.d.ts +78 -0
  334. package/esri-compat/imagery-layer.d.ts.map +1 -0
  335. package/esri-compat/imagery-layer.js +167 -0
  336. package/esri-compat/label-class.d.ts +31 -0
  337. package/esri-compat/label-class.d.ts.map +1 -0
  338. package/esri-compat/label-class.js +102 -0
  339. package/esri-compat/layer-list.d.ts +77 -0
  340. package/esri-compat/layer-list.d.ts.map +1 -0
  341. package/esri-compat/layer-list.js +342 -0
  342. package/esri-compat/legend.d.ts +53 -0
  343. package/esri-compat/legend.d.ts.map +1 -0
  344. package/esri-compat/legend.js +254 -0
  345. package/esri-compat/map-image-layer.d.ts +162 -0
  346. package/esri-compat/map-image-layer.d.ts.map +1 -0
  347. package/esri-compat/map-image-layer.js +709 -0
  348. package/esri-compat/map-view.d.ts +323 -0
  349. package/esri-compat/map-view.d.ts.map +1 -0
  350. package/esri-compat/map-view.js +1175 -0
  351. package/esri-compat/map.d.ts +47 -0
  352. package/esri-compat/map.d.ts.map +1 -0
  353. package/esri-compat/map.js +209 -0
  354. package/esri-compat/measurement-2d.d.ts +61 -0
  355. package/esri-compat/measurement-2d.d.ts.map +1 -0
  356. package/esri-compat/measurement-2d.js +184 -0
  357. package/esri-compat/measurement.d.ts +45 -0
  358. package/esri-compat/measurement.d.ts.map +1 -0
  359. package/esri-compat/measurement.js +193 -0
  360. package/esri-compat/oauth-info.d.ts +50 -0
  361. package/esri-compat/oauth-info.d.ts.map +1 -0
  362. package/esri-compat/oauth-info.js +142 -0
  363. package/esri-compat/picture-marker-symbol.d.ts +35 -0
  364. package/esri-compat/picture-marker-symbol.d.ts.map +1 -0
  365. package/esri-compat/picture-marker-symbol.js +126 -0
  366. package/esri-compat/point.d.ts +31 -0
  367. package/esri-compat/point.d.ts.map +1 -0
  368. package/esri-compat/point.js +102 -0
  369. package/esri-compat/polygon.d.ts +31 -0
  370. package/esri-compat/polygon.d.ts.map +1 -0
  371. package/esri-compat/polygon.js +107 -0
  372. package/esri-compat/polyline.d.ts +31 -0
  373. package/esri-compat/polyline.d.ts.map +1 -0
  374. package/esri-compat/polyline.js +107 -0
  375. package/esri-compat/popup-template.d.ts +55 -0
  376. package/esri-compat/popup-template.d.ts.map +1 -0
  377. package/esri-compat/popup-template.js +128 -0
  378. package/esri-compat/popup.d.ts +54 -0
  379. package/esri-compat/popup.d.ts.map +1 -0
  380. package/esri-compat/popup.js +312 -0
  381. package/esri-compat/print.d.ts +47 -0
  382. package/esri-compat/print.d.ts.map +1 -0
  383. package/esri-compat/print.js +105 -0
  384. package/esri-compat/query.d.ts +58 -0
  385. package/esri-compat/query.d.ts.map +1 -0
  386. package/esri-compat/query.js +128 -0
  387. package/esri-compat/reactive-utils.d.ts +24 -0
  388. package/esri-compat/reactive-utils.d.ts.map +1 -0
  389. package/esri-compat/reactive-utils.js +193 -0
  390. package/esri-compat/request.d.ts +41 -0
  391. package/esri-compat/request.d.ts.map +1 -0
  392. package/esri-compat/request.js +253 -0
  393. package/esri-compat/route-layer.d.ts +59 -0
  394. package/esri-compat/route-layer.d.ts.map +1 -0
  395. package/esri-compat/route-layer.js +223 -0
  396. package/esri-compat/route-task.d.ts +88 -0
  397. package/esri-compat/route-task.d.ts.map +1 -0
  398. package/esri-compat/route-task.js +225 -0
  399. package/esri-compat/scene-view.d.ts +41 -0
  400. package/esri-compat/scene-view.d.ts.map +1 -0
  401. package/esri-compat/scene-view.js +68 -0
  402. package/esri-compat/search.d.ts +112 -0
  403. package/esri-compat/search.d.ts.map +1 -0
  404. package/esri-compat/search.js +820 -0
  405. package/esri-compat/simple-fill-symbol.d.ts +27 -0
  406. package/esri-compat/simple-fill-symbol.d.ts.map +1 -0
  407. package/esri-compat/simple-fill-symbol.js +85 -0
  408. package/esri-compat/simple-line-symbol.d.ts +27 -0
  409. package/esri-compat/simple-line-symbol.d.ts.map +1 -0
  410. package/esri-compat/simple-line-symbol.js +85 -0
  411. package/esri-compat/simple-marker-symbol.d.ts +29 -0
  412. package/esri-compat/simple-marker-symbol.d.ts.map +1 -0
  413. package/esri-compat/simple-marker-symbol.js +92 -0
  414. package/esri-compat/simple-renderer.d.ts +29 -0
  415. package/esri-compat/simple-renderer.d.ts.map +1 -0
  416. package/esri-compat/simple-renderer.js +92 -0
  417. package/esri-compat/sketch.d.ts +64 -0
  418. package/esri-compat/sketch.d.ts.map +1 -0
  419. package/esri-compat/sketch.js +227 -0
  420. package/esri-compat/spatial-reference.d.ts +31 -0
  421. package/esri-compat/spatial-reference.d.ts.map +1 -0
  422. package/esri-compat/spatial-reference.js +102 -0
  423. package/esri-compat/swipe.d.ts +34 -0
  424. package/esri-compat/swipe.d.ts.map +1 -0
  425. package/esri-compat/swipe.js +93 -0
  426. package/esri-compat/table-list.d.ts +36 -0
  427. package/esri-compat/table-list.d.ts.map +1 -0
  428. package/esri-compat/table-list.js +126 -0
  429. package/esri-compat/text-symbol.d.ts +37 -0
  430. package/esri-compat/text-symbol.d.ts.map +1 -0
  431. package/esri-compat/text-symbol.js +123 -0
  432. package/esri-compat/tile-layer.d.ts +52 -0
  433. package/esri-compat/tile-layer.d.ts.map +1 -0
  434. package/esri-compat/tile-layer.js +168 -0
  435. package/esri-compat/time-slider.d.ts +70 -0
  436. package/esri-compat/time-slider.d.ts.map +1 -0
  437. package/esri-compat/time-slider.js +208 -0
  438. package/esri-compat/track.d.ts +51 -0
  439. package/esri-compat/track.d.ts.map +1 -0
  440. package/esri-compat/track.js +174 -0
  441. package/esri-compat/unique-value-renderer.d.ts +41 -0
  442. package/esri-compat/unique-value-renderer.d.ts.map +1 -0
  443. package/esri-compat/unique-value-renderer.js +127 -0
  444. package/esri-compat/url.d.ts +13 -0
  445. package/esri-compat/url.d.ts.map +1 -0
  446. package/esri-compat/url.js +68 -0
  447. package/esri-compat/vector-tile-layer.d.ts +47 -0
  448. package/esri-compat/vector-tile-layer.d.ts.map +1 -0
  449. package/esri-compat/vector-tile-layer.js +130 -0
  450. package/esri-compat/web-map.d.ts +14 -0
  451. package/esri-compat/web-map.d.ts.map +1 -0
  452. package/esri-compat/web-map.js +24 -0
  453. package/esri-compat/wfs-layer.d.ts +64 -0
  454. package/esri-compat/wfs-layer.d.ts.map +1 -0
  455. package/esri-compat/wfs-layer.js +145 -0
  456. package/esri-compat/wms-layer.d.ts +76 -0
  457. package/esri-compat/wms-layer.d.ts.map +1 -0
  458. package/esri-compat/wms-layer.js +157 -0
  459. package/exploration/context.d.ts +25 -0
  460. package/exploration/context.d.ts.map +1 -0
  461. package/exploration/context.js +396 -0
  462. package/exploration/index.d.ts +27 -0
  463. package/exploration/index.d.ts.map +1 -0
  464. package/exploration/index.js +24 -0
  465. package/exploration/presets.d.ts +27 -0
  466. package/exploration/presets.d.ts.map +1 -0
  467. package/exploration/presets.js +114 -0
  468. package/exploration/reducer.d.ts +23 -0
  469. package/exploration/reducer.d.ts.map +1 -0
  470. package/exploration/reducer.js +332 -0
  471. package/exploration/selection.d.ts +25 -0
  472. package/exploration/selection.d.ts.map +1 -0
  473. package/exploration/selection.js +34 -0
  474. package/exploration/selectors.d.ts +56 -0
  475. package/exploration/selectors.d.ts.map +1 -0
  476. package/exploration/selectors.js +110 -0
  477. package/exploration/types.d.ts +294 -0
  478. package/exploration/types.d.ts.map +1 -0
  479. package/exploration/types.js +33 -0
  480. package/expr/expression.d.ts +457 -0
  481. package/expr/expression.d.ts.map +1 -0
  482. package/expr/expression.js +663 -0
  483. package/expr/index.d.ts +32 -0
  484. package/expr/index.d.ts.map +1 -0
  485. package/expr/index.js +30 -0
  486. package/filter-registry/index.d.ts +145 -0
  487. package/filter-registry/index.d.ts.map +1 -0
  488. package/filter-registry/index.js +531 -0
  489. package/gen/honua/v1/feature_service_pb.d.ts +918 -0
  490. package/gen/honua/v1/feature_service_pb.d.ts.map +1 -0
  491. package/gen/honua/v1/feature_service_pb.js +375 -0
  492. package/generated-app/errors.d.ts +41 -0
  493. package/generated-app/errors.d.ts.map +1 -0
  494. package/generated-app/errors.js +41 -0
  495. package/generated-app/index.d.ts +17 -0
  496. package/generated-app/index.d.ts.map +1 -0
  497. package/generated-app/index.js +12 -0
  498. package/generated-app/manifest.d.ts +183 -0
  499. package/generated-app/manifest.d.ts.map +1 -0
  500. package/generated-app/manifest.js +14 -0
  501. package/generated-app/projection.d.ts +44 -0
  502. package/generated-app/projection.d.ts.map +1 -0
  503. package/generated-app/projection.js +234 -0
  504. package/generated-app/runtime.d.ts +215 -0
  505. package/generated-app/runtime.d.ts.map +1 -0
  506. package/generated-app/runtime.js +1196 -0
  507. package/geocoding/index.d.ts +106 -0
  508. package/geocoding/index.d.ts.map +1 -0
  509. package/geocoding/index.js +278 -0
  510. package/interactions/detail-model.d.ts +54 -0
  511. package/interactions/detail-model.d.ts.map +1 -0
  512. package/interactions/detail-model.js +105 -0
  513. package/interactions/exploration-bindings.d.ts +120 -0
  514. package/interactions/exploration-bindings.d.ts.map +1 -0
  515. package/interactions/exploration-bindings.js +218 -0
  516. package/interactions/feature-state.d.ts +144 -0
  517. package/interactions/feature-state.d.ts.map +1 -0
  518. package/interactions/feature-state.js +169 -0
  519. package/interactions/hit-test.d.ts +112 -0
  520. package/interactions/hit-test.d.ts.map +1 -0
  521. package/interactions/hit-test.js +291 -0
  522. package/interactions/index.d.ts +31 -0
  523. package/interactions/index.d.ts.map +1 -0
  524. package/interactions/index.js +24 -0
  525. package/interactions/share-state.d.ts +36 -0
  526. package/interactions/share-state.d.ts.map +1 -0
  527. package/interactions/share-state.js +123 -0
  528. package/map/feature-service-adapter.d.ts +138 -0
  529. package/map/feature-service-adapter.d.ts.map +1 -0
  530. package/map/feature-service-adapter.js +279 -0
  531. package/map/honua-map.d.ts +203 -0
  532. package/map/honua-map.d.ts.map +1 -0
  533. package/map/honua-map.js +347 -0
  534. package/map/index.d.ts +27 -0
  535. package/map/index.d.ts.map +1 -0
  536. package/map/index.js +22 -0
  537. package/map/maplibre-target.d.ts +103 -0
  538. package/map/maplibre-target.d.ts.map +1 -0
  539. package/map/maplibre-target.js +164 -0
  540. package/map/webmap-maplibre.d.ts +60 -0
  541. package/map/webmap-maplibre.d.ts.map +1 -0
  542. package/map/webmap-maplibre.js +212 -0
  543. package/operate/client.d.ts +94 -0
  544. package/operate/client.d.ts.map +1 -0
  545. package/operate/client.js +361 -0
  546. package/operate/index.d.ts +22 -0
  547. package/operate/index.d.ts.map +1 -0
  548. package/operate/index.js +19 -0
  549. package/operate/types.d.ts +397 -0
  550. package/operate/types.d.ts.map +1 -0
  551. package/operate/types.js +17 -0
  552. package/operator/client.d.ts +60 -0
  553. package/operator/client.d.ts.map +1 -0
  554. package/operator/client.js +20 -0
  555. package/operator/controllers/approval.d.ts +52 -0
  556. package/operator/controllers/approval.d.ts.map +1 -0
  557. package/operator/controllers/approval.js +123 -0
  558. package/operator/controllers/base.d.ts +27 -0
  559. package/operator/controllers/base.d.ts.map +1 -0
  560. package/operator/controllers/base.js +53 -0
  561. package/operator/controllers/builder-workspace.d.ts +55 -0
  562. package/operator/controllers/builder-workspace.d.ts.map +1 -0
  563. package/operator/controllers/builder-workspace.js +108 -0
  564. package/operator/controllers/chat.d.ts +61 -0
  565. package/operator/controllers/chat.d.ts.map +1 -0
  566. package/operator/controllers/chat.js +154 -0
  567. package/operator/controllers/clarification.d.ts +52 -0
  568. package/operator/controllers/clarification.d.ts.map +1 -0
  569. package/operator/controllers/clarification.js +121 -0
  570. package/operator/controllers/execution.d.ts +60 -0
  571. package/operator/controllers/execution.d.ts.map +1 -0
  572. package/operator/controllers/execution.js +286 -0
  573. package/operator/controllers/index.d.ts +23 -0
  574. package/operator/controllers/index.d.ts.map +1 -0
  575. package/operator/controllers/index.js +15 -0
  576. package/operator/controllers/map-workspace.d.ts +85 -0
  577. package/operator/controllers/map-workspace.d.ts.map +1 -0
  578. package/operator/controllers/map-workspace.js +296 -0
  579. package/operator/controllers/plan-review.d.ts +66 -0
  580. package/operator/controllers/plan-review.d.ts.map +1 -0
  581. package/operator/controllers/plan-review.js +124 -0
  582. package/operator/errors.d.ts +62 -0
  583. package/operator/errors.d.ts.map +1 -0
  584. package/operator/errors.js +75 -0
  585. package/operator/i18n/index.d.ts +10 -0
  586. package/operator/i18n/index.d.ts.map +1 -0
  587. package/operator/i18n/index.js +8 -0
  588. package/operator/i18n/messages.d.ts +19 -0
  589. package/operator/i18n/messages.d.ts.map +1 -0
  590. package/operator/i18n/messages.js +54 -0
  591. package/operator/index.d.ts +19 -0
  592. package/operator/index.d.ts.map +1 -0
  593. package/operator/index.js +15 -0
  594. package/operator/telemetry.d.ts +26 -0
  595. package/operator/telemetry.d.ts.map +1 -0
  596. package/operator/telemetry.js +9 -0
  597. package/operator/theming/index.d.ts +12 -0
  598. package/operator/theming/index.d.ts.map +1 -0
  599. package/operator/theming/index.js +9 -0
  600. package/operator/theming/provider.d.ts +27 -0
  601. package/operator/theming/provider.d.ts.map +1 -0
  602. package/operator/theming/provider.js +26 -0
  603. package/operator/theming/tokens.d.ts +28 -0
  604. package/operator/theming/tokens.d.ts.map +1 -0
  605. package/operator/theming/tokens.js +65 -0
  606. package/operator/workspace/events.d.ts +70 -0
  607. package/operator/workspace/events.d.ts.map +1 -0
  608. package/operator/workspace/events.js +9 -0
  609. package/operator/workspace/index.d.ts +12 -0
  610. package/operator/workspace/index.d.ts.map +1 -0
  611. package/operator/workspace/index.js +8 -0
  612. package/operator/workspace/types.d.ts +178 -0
  613. package/operator/workspace/types.d.ts.map +1 -0
  614. package/operator/workspace/types.js +47 -0
  615. package/operator/workspace/workspace.d.ts +58 -0
  616. package/operator/workspace/workspace.d.ts.map +1 -0
  617. package/operator/workspace/workspace.js +339 -0
  618. package/package.json +105 -0
  619. package/realtime/exploration.d.ts +16 -0
  620. package/realtime/exploration.d.ts.map +1 -0
  621. package/realtime/exploration.js +32 -0
  622. package/realtime/honua-server.d.ts +123 -0
  623. package/realtime/honua-server.d.ts.map +1 -0
  624. package/realtime/honua-server.js +188 -0
  625. package/realtime/index.d.ts +20 -0
  626. package/realtime/index.d.ts.map +1 -0
  627. package/realtime/index.js +14 -0
  628. package/realtime/projections.d.ts +30 -0
  629. package/realtime/projections.d.ts.map +1 -0
  630. package/realtime/projections.js +51 -0
  631. package/realtime/reducer.d.ts +14 -0
  632. package/realtime/reducer.d.ts.map +1 -0
  633. package/realtime/reducer.js +351 -0
  634. package/realtime/sse.d.ts +23 -0
  635. package/realtime/sse.d.ts.map +1 -0
  636. package/realtime/sse.js +143 -0
  637. package/realtime/store.d.ts +18 -0
  638. package/realtime/store.d.ts.map +1 -0
  639. package/realtime/store.js +63 -0
  640. package/realtime/types.d.ts +190 -0
  641. package/realtime/types.d.ts.map +1 -0
  642. package/realtime/types.js +10 -0
  643. package/replica-sync/client.d.ts +32 -0
  644. package/replica-sync/client.d.ts.map +1 -0
  645. package/replica-sync/client.js +52 -0
  646. package/replica-sync/errors.d.ts +22 -0
  647. package/replica-sync/errors.d.ts.map +1 -0
  648. package/replica-sync/errors.js +29 -0
  649. package/replica-sync/fixture.d.ts +40 -0
  650. package/replica-sync/fixture.d.ts.map +1 -0
  651. package/replica-sync/fixture.js +364 -0
  652. package/replica-sync/index.d.ts +22 -0
  653. package/replica-sync/index.d.ts.map +1 -0
  654. package/replica-sync/index.js +17 -0
  655. package/replica-sync/types.d.ts +270 -0
  656. package/replica-sync/types.d.ts.map +1 -0
  657. package/replica-sync/types.js +13 -0
  658. package/runtime/diff.d.ts +31 -0
  659. package/runtime/diff.d.ts.map +1 -0
  660. package/runtime/diff.js +143 -0
  661. package/runtime/errors.d.ts +40 -0
  662. package/runtime/errors.d.ts.map +1 -0
  663. package/runtime/errors.js +35 -0
  664. package/runtime/index.d.ts +59 -0
  665. package/runtime/index.d.ts.map +1 -0
  666. package/runtime/index.js +40 -0
  667. package/runtime/legend.d.ts +23 -0
  668. package/runtime/legend.d.ts.map +1 -0
  669. package/runtime/legend.js +38 -0
  670. package/runtime/load-package.d.ts +125 -0
  671. package/runtime/load-package.d.ts.map +1 -0
  672. package/runtime/load-package.js +272 -0
  673. package/runtime/map-package-fetch.d.ts +107 -0
  674. package/runtime/map-package-fetch.d.ts.map +1 -0
  675. package/runtime/map-package-fetch.js +336 -0
  676. package/runtime/map-package-realtime.d.ts +169 -0
  677. package/runtime/map-package-realtime.d.ts.map +1 -0
  678. package/runtime/map-package-realtime.js +350 -0
  679. package/runtime/map-package-validation.d.ts +30 -0
  680. package/runtime/map-package-validation.d.ts.map +1 -0
  681. package/runtime/map-package-validation.js +257 -0
  682. package/runtime/map-package-watch.d.ts +78 -0
  683. package/runtime/map-package-watch.d.ts.map +1 -0
  684. package/runtime/map-package-watch.js +695 -0
  685. package/runtime/map-package.d.ts +167 -0
  686. package/runtime/map-package.d.ts.map +1 -0
  687. package/runtime/map-package.js +15 -0
  688. package/runtime/ogc-styles.d.ts +110 -0
  689. package/runtime/ogc-styles.d.ts.map +1 -0
  690. package/runtime/ogc-styles.js +195 -0
  691. package/runtime/pmtiles-protocol.d.ts +77 -0
  692. package/runtime/pmtiles-protocol.d.ts.map +1 -0
  693. package/runtime/pmtiles-protocol.js +120 -0
  694. package/runtime/popups.d.ts +62 -0
  695. package/runtime/popups.d.ts.map +1 -0
  696. package/runtime/popups.js +95 -0
  697. package/runtime/query-tiles.d.ts +217 -0
  698. package/runtime/query-tiles.d.ts.map +1 -0
  699. package/runtime/query-tiles.js +801 -0
  700. package/runtime/runtime.d.ts +243 -0
  701. package/runtime/runtime.d.ts.map +1 -0
  702. package/runtime/runtime.js +1147 -0
  703. package/runtime/source-bridge.d.ts +99 -0
  704. package/runtime/source-bridge.d.ts.map +1 -0
  705. package/runtime/source-bridge.js +428 -0
  706. package/runtime/style-compose.d.ts +46 -0
  707. package/runtime/style-compose.d.ts.map +1 -0
  708. package/runtime/style-compose.js +144 -0
  709. package/runtime/style-interactions.d.ts +141 -0
  710. package/runtime/style-interactions.d.ts.map +1 -0
  711. package/runtime/style-interactions.js +574 -0
  712. package/runtime/style-spec-validation.d.ts +23 -0
  713. package/runtime/style-spec-validation.d.ts.map +1 -0
  714. package/runtime/style-spec-validation.js +357 -0
  715. package/scene-workspace/analysis-widgets.d.ts +334 -0
  716. package/scene-workspace/analysis-widgets.d.ts.map +1 -0
  717. package/scene-workspace/analysis-widgets.js +424 -0
  718. package/scene-workspace/cesium-adapter.d.ts +438 -0
  719. package/scene-workspace/cesium-adapter.d.ts.map +1 -0
  720. package/scene-workspace/cesium-adapter.js +493 -0
  721. package/scene-workspace/index.d.ts +21 -0
  722. package/scene-workspace/index.d.ts.map +1 -0
  723. package/scene-workspace/index.js +14 -0
  724. package/scene-workspace/primitives.d.ts +162 -0
  725. package/scene-workspace/primitives.d.ts.map +1 -0
  726. package/scene-workspace/primitives.js +255 -0
  727. package/scene-workspace/scene-discovery.d.ts +196 -0
  728. package/scene-workspace/scene-discovery.d.ts.map +1 -0
  729. package/scene-workspace/scene-discovery.js +228 -0
  730. package/scene-workspace/scene-view.d.ts +209 -0
  731. package/scene-workspace/scene-view.d.ts.map +1 -0
  732. package/scene-workspace/scene-view.js +267 -0
  733. package/scene-workspace/types.d.ts +229 -0
  734. package/scene-workspace/types.d.ts.map +1 -0
  735. package/scene-workspace/types.js +23 -0
  736. package/scene-workspace/workspace.d.ts +13 -0
  737. package/scene-workspace/workspace.d.ts.map +1 -0
  738. package/scene-workspace/workspace.js +391 -0
  739. package/share/denial.d.ts +78 -0
  740. package/share/denial.d.ts.map +1 -0
  741. package/share/denial.js +61 -0
  742. package/share/embed-token.d.ts +71 -0
  743. package/share/embed-token.d.ts.map +1 -0
  744. package/share/embed-token.js +99 -0
  745. package/share/index.d.ts +35 -0
  746. package/share/index.d.ts.map +1 -0
  747. package/share/index.js +30 -0
  748. package/share/open-data.d.ts +114 -0
  749. package/share/open-data.d.ts.map +1 -0
  750. package/share/open-data.js +81 -0
  751. package/share/types.d.ts +163 -0
  752. package/share/types.d.ts.map +1 -0
  753. package/share/types.js +17 -0
  754. package/studio/capability-manifest.d.ts +285 -0
  755. package/studio/capability-manifest.d.ts.map +1 -0
  756. package/studio/capability-manifest.js +59 -0
  757. package/studio/chart-spec.d.ts +85 -0
  758. package/studio/chart-spec.d.ts.map +1 -0
  759. package/studio/chart-spec.js +106 -0
  760. package/studio/index.d.ts +34 -0
  761. package/studio/index.d.ts.map +1 -0
  762. package/studio/index.js +27 -0
  763. package/studio/provenance.d.ts +131 -0
  764. package/studio/provenance.d.ts.map +1 -0
  765. package/studio/provenance.js +39 -0
  766. package/studio/publish.d.ts +64 -0
  767. package/studio/publish.d.ts.map +1 -0
  768. package/studio/publish.js +13 -0
  769. package/studio/types.d.ts +278 -0
  770. package/studio/types.d.ts.map +1 -0
  771. package/studio/types.js +71 -0
  772. package/studio/validate.d.ts +45 -0
  773. package/studio/validate.d.ts.map +1 -0
  774. package/studio/validate.js +255 -0
  775. package/studio/validation.d.ts +112 -0
  776. package/studio/validation.d.ts.map +1 -0
  777. package/studio/validation.js +42 -0
  778. package/style/factory.d.ts +30 -0
  779. package/style/factory.d.ts.map +1 -0
  780. package/style/factory.js +61 -0
  781. package/style/index.d.ts +25 -0
  782. package/style/index.d.ts.map +1 -0
  783. package/style/index.js +24 -0
  784. package/style/specification.d.ts +203 -0
  785. package/style/specification.d.ts.map +1 -0
  786. package/style/specification.js +178 -0
  787. package/style/wms-wmts-resolvers.d.ts +38 -0
  788. package/style/wms-wmts-resolvers.d.ts.map +1 -0
  789. package/style/wms-wmts-resolvers.js +92 -0
  790. package/web-components/controller.d.ts +39 -0
  791. package/web-components/controller.d.ts.map +1 -0
  792. package/web-components/controller.js +640 -0
  793. package/web-components/elements.d.ts +210 -0
  794. package/web-components/elements.d.ts.map +1 -0
  795. package/web-components/elements.js +1651 -0
  796. package/web-components/index.d.ts +24 -0
  797. package/web-components/index.d.ts.map +1 -0
  798. package/web-components/index.js +22 -0
  799. package/web-components/maplibre-renderer.d.ts +22 -0
  800. package/web-components/maplibre-renderer.d.ts.map +1 -0
  801. package/web-components/maplibre-renderer.js +474 -0
  802. package/web-components/types.d.ts +397 -0
  803. package/web-components/types.d.ts.map +1 -0
  804. package/web-components/types.js +1 -0
  805. package/webmap/contract.d.ts +28 -0
  806. package/webmap/contract.d.ts.map +1 -0
  807. package/webmap/contract.js +130 -0
  808. package/webmap/convert-basemap.d.ts +17 -0
  809. package/webmap/convert-basemap.d.ts.map +1 -0
  810. package/webmap/convert-basemap.js +78 -0
  811. package/webmap/convert-extent.d.ts +17 -0
  812. package/webmap/convert-extent.d.ts.map +1 -0
  813. package/webmap/convert-extent.js +114 -0
  814. package/webmap/convert-label.d.ts +13 -0
  815. package/webmap/convert-label.d.ts.map +1 -0
  816. package/webmap/convert-label.js +125 -0
  817. package/webmap/convert-layer.d.ts +22 -0
  818. package/webmap/convert-layer.d.ts.map +1 -0
  819. package/webmap/convert-layer.js +181 -0
  820. package/webmap/convert-popup.d.ts +34 -0
  821. package/webmap/convert-popup.d.ts.map +1 -0
  822. package/webmap/convert-popup.js +68 -0
  823. package/webmap/convert-renderer.d.ts +17 -0
  824. package/webmap/convert-renderer.d.ts.map +1 -0
  825. package/webmap/convert-renderer.js +161 -0
  826. package/webmap/convert-symbol.d.ts +17 -0
  827. package/webmap/convert-symbol.d.ts.map +1 -0
  828. package/webmap/convert-symbol.js +122 -0
  829. package/webmap/index.d.ts +44 -0
  830. package/webmap/index.d.ts.map +1 -0
  831. package/webmap/index.js +33 -0
  832. package/webmap/parse.d.ts +25 -0
  833. package/webmap/parse.d.ts.map +1 -0
  834. package/webmap/parse.js +83 -0
  835. package/webmap/types.d.ts +264 -0
  836. package/webmap/types.d.ts.map +1 -0
  837. package/webmap/types.js +13 -0
  838. package/webmap/warnings.d.ts +30 -0
  839. package/webmap/warnings.d.ts.map +1 -0
  840. package/webmap/warnings.js +37 -0
@@ -0,0 +1,121 @@
1
+ /**
2
+ * `ClarificationController` — typed form derived from
3
+ * `intent.clarifications[]`. Submission is a pass-through to
4
+ * `OperatorClient.operator.clarify` and yields a fresh intent revision.
5
+ *
6
+ * @module
7
+ */
8
+ import { HonuaOperatorIntentError } from "../errors.js";
9
+ import { ListenerBag, withTelemetrySpan } from "./base.js";
10
+ export class ClarificationController {
11
+ #client;
12
+ #telemetry;
13
+ #bag = new ListenerBag();
14
+ #intent;
15
+ #answers = new Map();
16
+ #submitting = false;
17
+ // Bumped on every load() and submit(); an in-flight submit checks
18
+ // this on resolution so a slow clarify() response cannot revive a
19
+ // superseded intent after the host has already moved on to a newer
20
+ // one. Generation > captured generation ⇒ drop the result silently.
21
+ #generation = 0;
22
+ constructor(options) {
23
+ this.#client = options.client;
24
+ this.#telemetry = options.telemetry;
25
+ }
26
+ get state() {
27
+ return {
28
+ intent: this.#intent,
29
+ fields: this.#intent?.clarifications ?? [],
30
+ answers: new Map(this.#answers),
31
+ submitting: this.#submitting,
32
+ };
33
+ }
34
+ on(listener) {
35
+ return this.#bag.on(listener);
36
+ }
37
+ load(intent) {
38
+ this.#generation += 1;
39
+ // Reset the submitting flag here too: a load() that supersedes a
40
+ // pending submit() leaves the in-flight call unable to clear it
41
+ // (its `finally` is generation-gated), so without this the
42
+ // observable `state.submitting` would stay true forever.
43
+ this.#submitting = false;
44
+ this.#intent = intent;
45
+ this.#answers.clear();
46
+ this.#bag.emit({ kind: "loaded", intent });
47
+ }
48
+ setAnswer(fieldId, value) {
49
+ if (!this.#intent) {
50
+ throw new HonuaOperatorIntentError("setAnswer called before clarification load");
51
+ }
52
+ const exists = this.#intent.clarifications?.some((field) => field.id === fieldId);
53
+ if (!exists) {
54
+ throw new HonuaOperatorIntentError(`unknown clarification field "${fieldId}"`, {
55
+ intentId: this.#intent.id,
56
+ detail: { fieldId },
57
+ });
58
+ }
59
+ this.#answers.set(fieldId, value);
60
+ this.#bag.emit({ kind: "answer-changed", fieldId, value });
61
+ }
62
+ /**
63
+ * Submit the current answers and resolve with the revised intent.
64
+ * Missing required answers reject with `HonuaOperatorIntentError`
65
+ * before any network call so the controller never depends on the
66
+ * server for required-field validation.
67
+ */
68
+ async submit(signal) {
69
+ if (!this.#intent) {
70
+ throw new HonuaOperatorIntentError("submit called before clarification load");
71
+ }
72
+ const intent = this.#intent;
73
+ const missing = [];
74
+ for (const field of intent.clarifications ?? []) {
75
+ if (field.required && !(this.#answers.get(field.id) ?? "").trim())
76
+ missing.push(field.id);
77
+ }
78
+ if (missing.length > 0) {
79
+ throw new HonuaOperatorIntentError("missing required clarification answers", {
80
+ intentId: intent.id,
81
+ detail: { missing },
82
+ });
83
+ }
84
+ const answers = [...this.#answers.entries()].map(([fieldId, value]) => ({
85
+ fieldId,
86
+ value,
87
+ }));
88
+ const gen = ++this.#generation;
89
+ this.#submitting = true;
90
+ try {
91
+ const revised = await withTelemetrySpan(this.#telemetry, "clarify", intent.id, () => this.#client.operator.clarify(intent.id, answers, signal), { fieldCount: answers.length });
92
+ if (gen !== this.#generation) {
93
+ // A newer load()/submit() superseded this submission while it
94
+ // was in flight. Drop the response without committing or
95
+ // emitting so the workspace cannot be driven back to a stale
96
+ // intent.
97
+ return revised;
98
+ }
99
+ this.#intent = revised;
100
+ this.#answers.clear();
101
+ this.#bag.emit({ kind: "submitted", intent: revised });
102
+ return revised;
103
+ }
104
+ catch (error) {
105
+ const wrapped = error instanceof HonuaOperatorIntentError
106
+ ? error
107
+ : new HonuaOperatorIntentError("clarification submit failed", {
108
+ intentId: intent.id,
109
+ cause: error,
110
+ });
111
+ if (gen === this.#generation) {
112
+ this.#bag.emit({ kind: "error", error: wrapped });
113
+ }
114
+ throw wrapped;
115
+ }
116
+ finally {
117
+ if (gen === this.#generation)
118
+ this.#submitting = false;
119
+ }
120
+ }
121
+ }
@@ -0,0 +1,60 @@
1
+ /**
2
+ * `ExecutionController` — thin adapter on `IJobRun<ExecutionResult>`.
3
+ * Subscribes to `watch()`, surfaces snapshot transitions on a controller
4
+ * event stream, and routes the terminal payload onto the workspace.
5
+ *
6
+ * @module
7
+ */
8
+ import { type IJobRun, type JobProgress, type JobSnapshot } from "../../contract/index.js";
9
+ import { type OperatorClient } from "../client.js";
10
+ import { HonuaOperatorExecutionError } from "../errors.js";
11
+ import type { OperatorTelemetry } from "../telemetry.js";
12
+ import type { ExecutionResult, OperatorPlan } from "../workspace/types.js";
13
+ import { type Unsubscribe } from "./base.js";
14
+ export type ExecutionEvent = {
15
+ kind: "started";
16
+ executionId: string;
17
+ } | {
18
+ kind: "progress";
19
+ executionId: string;
20
+ progress: JobProgress;
21
+ } | {
22
+ kind: "successful";
23
+ executionId: string;
24
+ result: ExecutionResult;
25
+ } | {
26
+ kind: "failed";
27
+ executionId: string;
28
+ error: HonuaOperatorExecutionError;
29
+ } | {
30
+ kind: "dismissed";
31
+ executionId: string;
32
+ } | {
33
+ kind: "error";
34
+ error: HonuaOperatorExecutionError;
35
+ };
36
+ export interface ExecutionControllerOptions {
37
+ client: OperatorClient;
38
+ telemetry?: OperatorTelemetry;
39
+ }
40
+ export declare class ExecutionController {
41
+ #private;
42
+ constructor(options: ExecutionControllerOptions);
43
+ get run(): IJobRun<ExecutionResult> | undefined;
44
+ get snapshot(): JobSnapshot<ExecutionResult> | undefined;
45
+ on(listener: (event: ExecutionEvent) => void): Unsubscribe;
46
+ /**
47
+ * Submit a plan and start watching the resulting job. Resolves with
48
+ * the live `IJobRun` once the watch subscription is active.
49
+ *
50
+ * Concurrent calls supersede each other: the second call disposes
51
+ * the first (which aborts its in-flight `submitPlan`); if the older
52
+ * `submitPlan` still resolves, the result is cancelled and the
53
+ * promise rejects so the older caller does not see a started event
54
+ * for a run that is no longer authoritative.
55
+ */
56
+ start(plan: OperatorPlan, signal?: AbortSignal): Promise<IJobRun<ExecutionResult>>;
57
+ cancel(): Promise<void>;
58
+ dispose(): void;
59
+ }
60
+ //# sourceMappingURL=execution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../../../src/operator/controllers/execution.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,KAAK,OAAO,EAEZ,KAAK,WAAW,EAChB,KAAK,WAAW,EAGjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAiC,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAClF,OAAO,EAAE,2BAA2B,EAA0C,MAAM,cAAc,CAAC;AACnG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAe,KAAK,WAAW,EAAqB,MAAM,WAAW,CAAC;AAE7E,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,WAAW,CAAA;CAAE,GAChE;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,eAAe,CAAA;CAAE,GACpE;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,2BAA2B,CAAA;CAAE,GAC3E;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,2BAA2B,CAAA;CAAE,CAAC;AAE1D,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,CAAC,EAAE,iBAAiB,CAAC;CAC/B;AAED,qBAAa,mBAAmB;;gBAeX,OAAO,EAAE,0BAA0B;IAKtD,IAAW,GAAG,IAAI,OAAO,CAAC,eAAe,CAAC,GAAG,SAAS,CAErD;IAED,IAAW,QAAQ,IAAI,WAAW,CAAC,eAAe,CAAC,GAAG,SAAS,CAE9D;IAEM,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,GAAG,WAAW;IAIjE;;;;;;;;;OASG;IACU,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IAoFlF,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IA2C7B,OAAO,IAAI,IAAI;CAqEvB"}
@@ -0,0 +1,286 @@
1
+ /**
2
+ * `ExecutionController` — thin adapter on `IJobRun<ExecutionResult>`.
3
+ * Subscribes to `watch()`, surfaces snapshot transitions on a controller
4
+ * event stream, and routes the terminal payload onto the workspace.
5
+ *
6
+ * @module
7
+ */
8
+ import { isJobTerminal, } from "../../contract/index.js";
9
+ import { OPERATOR_EXECUTION_OUTPUT_KEY } from "../client.js";
10
+ import { HonuaOperatorExecutionError } from "../errors.js";
11
+ import { ListenerBag, withTelemetrySpan } from "./base.js";
12
+ export class ExecutionController {
13
+ #client;
14
+ #telemetry;
15
+ #bag = new ListenerBag();
16
+ #activeRun;
17
+ #unsubscribe;
18
+ #activePlan;
19
+ #lastSnapshot;
20
+ // Per-start abort controller. dispose() aborts it so the in-flight
21
+ // submitPlan() can short-circuit; the start path also uses identity
22
+ // comparison (this.#startAbort === captured) to detect the case
23
+ // where submitPlan resolved despite the abort and a newer start
24
+ // already took ownership.
25
+ #startAbort;
26
+ constructor(options) {
27
+ this.#client = options.client;
28
+ this.#telemetry = options.telemetry;
29
+ }
30
+ get run() {
31
+ return this.#activeRun;
32
+ }
33
+ get snapshot() {
34
+ return this.#lastSnapshot;
35
+ }
36
+ on(listener) {
37
+ return this.#bag.on(listener);
38
+ }
39
+ /**
40
+ * Submit a plan and start watching the resulting job. Resolves with
41
+ * the live `IJobRun` once the watch subscription is active.
42
+ *
43
+ * Concurrent calls supersede each other: the second call disposes
44
+ * the first (which aborts its in-flight `submitPlan`); if the older
45
+ * `submitPlan` still resolves, the result is cancelled and the
46
+ * promise rejects so the older caller does not see a started event
47
+ * for a run that is no longer authoritative.
48
+ */
49
+ async start(plan, signal) {
50
+ this.dispose();
51
+ const startAbort = new AbortController();
52
+ this.#startAbort = startAbort;
53
+ const linkedSignal = linkSignals(signal, startAbort);
54
+ let run;
55
+ try {
56
+ run = await withTelemetrySpan(this.#telemetry, "execution-start", plan.intentId, () => this.#client.operator.submitPlan(plan, linkedSignal), { planId: plan.id, planKind: plan.kind });
57
+ }
58
+ catch (error) {
59
+ const wrapped = wrapExecutionError(error, "plan submission failed", {
60
+ intentId: plan.intentId,
61
+ detail: { planId: plan.id, planKind: plan.kind },
62
+ });
63
+ // Suppress the error event when this start was superseded — the
64
+ // newer start owns the surface and a stale error would mislead
65
+ // observers about the current execution.
66
+ if (this.#startAbort === startAbort) {
67
+ this.#bag.emit({ kind: "error", error: wrapped });
68
+ }
69
+ throw wrapped;
70
+ }
71
+ if (this.#startAbort !== startAbort) {
72
+ // A newer start took ownership while we were awaiting submitPlan.
73
+ // Cancel this run silently and reject so the original caller is
74
+ // not handed a stale IJobRun.
75
+ void run.cancel().catch(() => { });
76
+ throw new HonuaOperatorExecutionError("execution superseded by a newer start", {
77
+ intentId: plan.intentId,
78
+ executionId: run.id,
79
+ failureKind: "Cancelled",
80
+ });
81
+ }
82
+ this.#activeRun = run;
83
+ this.#activePlan = plan;
84
+ this.#bag.emit({ kind: "started", executionId: run.id });
85
+ this.#unsubscribe = run.watch((snapshot) => {
86
+ // Stale-watch guard: an older watch subscription can fire after
87
+ // dispose() if the underlying adapter has already buffered the
88
+ // snapshot. `#activeRun !== run` means we are no longer the
89
+ // authoritative run; drop without emitting.
90
+ if (this.#activeRun !== run)
91
+ return;
92
+ // Double-emit guard: cancel() may have already synthesized a
93
+ // terminal snapshot for the same run. Detect via the prior
94
+ // #lastSnapshot's status before overwriting it.
95
+ const alreadyTerminal = this.#lastSnapshot !== undefined && isJobTerminal(this.#lastSnapshot.status);
96
+ this.#lastSnapshot = snapshot;
97
+ if (snapshot.progress) {
98
+ this.#bag.emit({ kind: "progress", executionId: run.id, progress: snapshot.progress });
99
+ }
100
+ if (!isJobTerminal(snapshot.status))
101
+ return;
102
+ if (alreadyTerminal)
103
+ return;
104
+ this.#emitTerminal(run.id, snapshot);
105
+ });
106
+ // The shared `IJobRun` contract permits passive `watch()` implementations
107
+ // (the OGC adapter only registers listeners; polling is driven by
108
+ // `results()`). Kick off the polling path so snapshots actually flow.
109
+ // `results()` rejects with `HonuaJobFailedError` on failed/dismissed
110
+ // terminals — those are already surfaced by the watcher above, so we
111
+ // suppress them when the watcher already observed a terminal snapshot.
112
+ // Any other rejection (poll-side network failure that prevents reaching
113
+ // a terminal state) routes through the error event surface.
114
+ void run.results().catch((error) => {
115
+ if (this.#activeRun !== run)
116
+ return;
117
+ if (this.#lastSnapshot && isJobTerminal(this.#lastSnapshot.status))
118
+ return;
119
+ const wrapped = wrapExecutionError(error, "execution polling failed", {
120
+ intentId: plan.intentId,
121
+ executionId: run.id,
122
+ });
123
+ this.#bag.emit({ kind: "error", error: wrapped });
124
+ });
125
+ return run;
126
+ }
127
+ async cancel() {
128
+ if (!this.#activeRun)
129
+ return;
130
+ const run = this.#activeRun;
131
+ let status;
132
+ try {
133
+ status = await run.cancel();
134
+ }
135
+ catch (error) {
136
+ if (this.#activeRun !== run)
137
+ return;
138
+ const wrapped = wrapExecutionError(error, "execution cancel failed", {
139
+ intentId: this.#activePlan?.intentId,
140
+ executionId: run.id,
141
+ });
142
+ this.#bag.emit({ kind: "error", error: wrapped });
143
+ throw wrapped;
144
+ }
145
+ if (this.#activeRun !== run)
146
+ return;
147
+ if (!isJobTerminal(status))
148
+ return;
149
+ // The IJobRun contract does not require watch() to fire during
150
+ // cancellation, so a conforming adapter can dismiss the run
151
+ // without ever delivering a terminal snapshot. Synthesize one when
152
+ // the watcher has not already produced a terminal. The watcher's
153
+ // double-emit guard handles the converse race (watcher fires after
154
+ // we synthesize).
155
+ if (this.#lastSnapshot !== undefined && isJobTerminal(this.#lastSnapshot.status))
156
+ return;
157
+ let snapshot = { status };
158
+ if (status !== "dismissed") {
159
+ // The server may have raced cancel to a successful/failed
160
+ // terminal. poll() carries the authoritative payload; fall back
161
+ // to the bare status if poll fails so #emitTerminal still routes
162
+ // to a terminal event rather than silently dropping it.
163
+ try {
164
+ const polled = await run.poll();
165
+ if (this.#activeRun !== run)
166
+ return;
167
+ snapshot = polled;
168
+ }
169
+ catch {
170
+ // Best-effort poll; emit the bare status snapshot.
171
+ }
172
+ }
173
+ if (this.#lastSnapshot !== undefined && isJobTerminal(this.#lastSnapshot.status))
174
+ return;
175
+ this.#lastSnapshot = snapshot;
176
+ this.#emitTerminal(run.id, snapshot);
177
+ }
178
+ dispose() {
179
+ this.#startAbort?.abort();
180
+ this.#startAbort = undefined;
181
+ this.#unsubscribe?.();
182
+ this.#unsubscribe = undefined;
183
+ this.#activeRun = undefined;
184
+ this.#activePlan = undefined;
185
+ this.#lastSnapshot = undefined;
186
+ }
187
+ #emitTerminal(executionId, snapshot) {
188
+ const intentId = this.#activePlan?.intentId;
189
+ const startedAt = Date.now();
190
+ const detail = { executionId, status: snapshot.status };
191
+ if (snapshot.status === "successful") {
192
+ const result = snapshot.result?.outputs?.[OPERATOR_EXECUTION_OUTPUT_KEY];
193
+ if (!result) {
194
+ const error = new HonuaOperatorExecutionError("execution succeeded but no result was returned", {
195
+ intentId,
196
+ executionId,
197
+ failureKind: "OutputBindingFailed",
198
+ });
199
+ this.#bag.emit({ kind: "failed", executionId, error });
200
+ this.#telemetry?.error?.({
201
+ kind: "execution-terminal",
202
+ intentId,
203
+ startedAt,
204
+ finishedAt: startedAt,
205
+ durationMs: 0,
206
+ detail,
207
+ error,
208
+ });
209
+ return;
210
+ }
211
+ this.#bag.emit({ kind: "successful", executionId, result });
212
+ this.#telemetry?.after?.({
213
+ kind: "execution-terminal",
214
+ intentId,
215
+ startedAt,
216
+ finishedAt: startedAt,
217
+ durationMs: 0,
218
+ detail: { ...detail, resultKind: result.kind },
219
+ });
220
+ return;
221
+ }
222
+ if (snapshot.status === "dismissed") {
223
+ this.#bag.emit({ kind: "dismissed", executionId });
224
+ this.#telemetry?.after?.({
225
+ kind: "execution-terminal",
226
+ intentId,
227
+ startedAt,
228
+ finishedAt: startedAt,
229
+ durationMs: 0,
230
+ detail,
231
+ });
232
+ return;
233
+ }
234
+ const wrapped = jobErrorToExecutionError(snapshot.error, executionId, intentId);
235
+ this.#bag.emit({ kind: "failed", executionId, error: wrapped });
236
+ this.#telemetry?.error?.({
237
+ kind: "execution-terminal",
238
+ intentId,
239
+ startedAt,
240
+ finishedAt: startedAt,
241
+ durationMs: 0,
242
+ detail,
243
+ error: wrapped,
244
+ });
245
+ }
246
+ }
247
+ function jobErrorToExecutionError(jobError, executionId, intentId) {
248
+ if (!jobError) {
249
+ return new HonuaOperatorExecutionError("execution failed", {
250
+ intentId,
251
+ executionId,
252
+ failureKind: "ExecutionFailed",
253
+ });
254
+ }
255
+ const failureKind = jobError.code;
256
+ return new HonuaOperatorExecutionError(jobError.message, {
257
+ intentId,
258
+ executionId,
259
+ failureKind,
260
+ detail: jobError.details ? { details: jobError.details } : undefined,
261
+ });
262
+ }
263
+ function wrapExecutionError(error, fallbackMessage, context) {
264
+ if (error instanceof HonuaOperatorExecutionError)
265
+ return error;
266
+ return new HonuaOperatorExecutionError(fallbackMessage, {
267
+ ...context,
268
+ failureKind: "ExecutionFailed",
269
+ cause: error,
270
+ });
271
+ }
272
+ /**
273
+ * Returns an `AbortSignal` that fires when either the externally-supplied
274
+ * caller signal aborts or the per-start internal controller is aborted by
275
+ * `dispose()`. Lets `submitPlan` be cancelled by either source.
276
+ */
277
+ function linkSignals(external, internal) {
278
+ if (!external)
279
+ return internal.signal;
280
+ if (external.aborted) {
281
+ internal.abort();
282
+ return internal.signal;
283
+ }
284
+ external.addEventListener("abort", () => internal.abort(), { once: true });
285
+ return internal.signal;
286
+ }
@@ -0,0 +1,23 @@
1
+ /**
2
+ * `@honua/sdk-js/operator/controllers` — framework-neutral controllers behind the
3
+ * operator-native component architecture.
4
+ *
5
+ * @experimental This entrypoint is not yet covered by the SDK's semver contract
6
+ * — the surface may change in any minor release prior to `1.0.0`.
7
+ * @module
8
+ */
9
+ export { ApprovalController } from "./approval.js";
10
+ export type { ApprovalControllerOptions, ApprovalEvent } from "./approval.js";
11
+ export { BuilderWorkspaceController } from "./builder-workspace.js";
12
+ export type { BuilderWorkspaceControllerOptions, BuilderWorkspaceEvent, PreviewHandle, } from "./builder-workspace.js";
13
+ export { ChatController } from "./chat.js";
14
+ export type { ChatControllerOptions, ChatEvent, DecorateTurn } from "./chat.js";
15
+ export { ClarificationController } from "./clarification.js";
16
+ export type { ClarificationControllerOptions, ClarificationEvent, ClarificationState, } from "./clarification.js";
17
+ export { ExecutionController } from "./execution.js";
18
+ export type { ExecutionControllerOptions, ExecutionEvent } from "./execution.js";
19
+ export { MapWorkspaceController } from "./map-workspace.js";
20
+ export type { MapFactory, MapFactoryResult, MapWorkspaceControllerOptions, MapWorkspaceEvent, } from "./map-workspace.js";
21
+ export { PlanReviewController } from "./plan-review.js";
22
+ export type { DecorateStep, PlanReviewControllerOptions, PlanReviewEvent, PlanRevisionRequest, } from "./plan-review.js";
23
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/operator/controllers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,YAAY,EAAE,yBAAyB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9E,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AACpE,YAAY,EACV,iCAAiC,EACjC,qBAAqB,EACrB,aAAa,GACd,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,YAAY,EAAE,qBAAqB,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEhF,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,YAAY,EACV,8BAA8B,EAC9B,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,YAAY,EAAE,0BAA0B,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,YAAY,EACV,UAAU,EACV,gBAAgB,EAChB,6BAA6B,EAC7B,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,YAAY,EACV,YAAY,EACZ,2BAA2B,EAC3B,eAAe,EACf,mBAAmB,GACpB,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * `@honua/sdk-js/operator/controllers` — framework-neutral controllers behind the
3
+ * operator-native component architecture.
4
+ *
5
+ * @experimental This entrypoint is not yet covered by the SDK's semver contract
6
+ * — the surface may change in any minor release prior to `1.0.0`.
7
+ * @module
8
+ */
9
+ export { ApprovalController } from "./approval.js";
10
+ export { BuilderWorkspaceController } from "./builder-workspace.js";
11
+ export { ChatController } from "./chat.js";
12
+ export { ClarificationController } from "./clarification.js";
13
+ export { ExecutionController } from "./execution.js";
14
+ export { MapWorkspaceController } from "./map-workspace.js";
15
+ export { PlanReviewController } from "./plan-review.js";
@@ -0,0 +1,85 @@
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 { type ExplorationContext, type LinkedViewPresetName } from "../../exploration/index.js";
10
+ import { type HonuaMapPackage, type HonuaMapPackagePopupBinding, type HonuaMapRuntime, type LegendEntry, type LoadMapPackageOptions, type MaplibreMap, type SetViewStateInput } from "../../runtime/index.js";
11
+ import type { OperatorClient } from "../client.js";
12
+ import { HonuaOperatorMapError } from "../errors.js";
13
+ import type { OperatorTelemetry } from "../telemetry.js";
14
+ import { type Unsubscribe } from "./base.js";
15
+ export type MapWorkspaceEvent = {
16
+ kind: "package-loaded";
17
+ pkg: HonuaMapPackage;
18
+ } | {
19
+ kind: "package-refined";
20
+ pkg: HonuaMapPackage;
21
+ } | {
22
+ kind: "package-disposed";
23
+ } | {
24
+ kind: "error";
25
+ error: HonuaOperatorMapError;
26
+ };
27
+ /**
28
+ * Caller-supplied factory that builds the host MapLibre map and returns
29
+ * a teardown handle. The host owns the `MaplibreMap` lifecycle.
30
+ */
31
+ export type MapFactory = () => MapFactoryResult | Promise<MapFactoryResult>;
32
+ export interface MapFactoryResult {
33
+ map: MaplibreMap;
34
+ dispose?: () => void;
35
+ }
36
+ export interface MapWorkspaceControllerOptions {
37
+ client: OperatorClient;
38
+ mapFactory: MapFactory;
39
+ /** Linked-view preset for the embedded `ExplorationContext`. Default `"mapDriven"`. */
40
+ explorationPreset?: LinkedViewPresetName;
41
+ telemetry?: OperatorTelemetry;
42
+ /**
43
+ * Pass-through options handed to `loadMapPackage`. The controller
44
+ * never instantiates a `HonuaClient` itself — the host wires the
45
+ * runtime client through this hook.
46
+ */
47
+ loadOptions?: Omit<LoadMapPackageOptions, "telemetry">;
48
+ }
49
+ export declare class MapWorkspaceController {
50
+ #private;
51
+ constructor(options: MapWorkspaceControllerOptions);
52
+ get runtime(): HonuaMapRuntime | undefined;
53
+ get exploration(): ExplorationContext | undefined;
54
+ on(listener: (event: MapWorkspaceEvent) => void): Unsubscribe;
55
+ /**
56
+ * Bind the controller to an intent so that subsequent `refine()` calls
57
+ * have an intent id to attach to the server request. Idempotent.
58
+ */
59
+ bindIntent(intentId: string): void;
60
+ /**
61
+ * Load a `MapPackage` into a fresh runtime + exploration context.
62
+ * Tears down any previously loaded package; safe to call repeatedly.
63
+ *
64
+ * Concurrent loads supersede each other via `#opGeneration`: an
65
+ * older load whose factory or `loadMapPackage` is still pending when
66
+ * a newer load arrives discards its locally-built runtime/context
67
+ * instead of overwriting the newer state.
68
+ */
69
+ loadPackage(pkg: HonuaMapPackage): Promise<HonuaMapRuntime>;
70
+ /**
71
+ * Natural-language refinement. The server returns an updated
72
+ * `MapPackage`; the runtime's diff path applies it incrementally.
73
+ * Source-binding failures inside the runtime are forwarded via
74
+ * `runtime.reportSourceError(...)` rather than thrown.
75
+ */
76
+ refine(prompt: string, signal?: AbortSignal): Promise<HonuaMapPackage>;
77
+ setLayerVisibility(layerId: string, visible: boolean): void;
78
+ bindPopup(layerId: string, binding?: HonuaMapPackagePopupBinding): {
79
+ remove(): void;
80
+ };
81
+ setViewState(view: SetViewStateInput): void;
82
+ getLegend(): LegendEntry[];
83
+ dispose(): void;
84
+ }
85
+ //# sourceMappingURL=map-workspace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map-workspace.d.ts","sourceRoot":"","sources":["../../../../src/operator/controllers/map-workspace.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAG1B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,2BAA2B,EAChC,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAC1B,KAAK,WAAW,EAChB,KAAK,iBAAiB,EAEvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAe,KAAK,WAAW,EAAqB,MAAM,WAAW,CAAC;AAE7E,MAAM,MAAM,iBAAiB,GACzB;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,GAAG,EAAE,eAAe,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,GAAG,EAAE,eAAe,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,kBAAkB,CAAA;CAAE,GAC5B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,qBAAqB,CAAA;CAAE,CAAC;AAEpD;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAE5E,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,WAAW,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,6BAA6B;IAC5C,MAAM,EAAE,cAAc,CAAC;IACvB,UAAU,EAAE,UAAU,CAAC;IACvB,uFAAuF;IACvF,iBAAiB,CAAC,EAAE,oBAAoB,CAAC;IACzC,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B;;;;OAIG;IACH,WAAW,CAAC,EAAE,IAAI,CAAC,qBAAqB,EAAE,WAAW,CAAC,CAAC;CACxD;AAID,qBAAa,sBAAsB;;gBAoBd,OAAO,EAAE,6BAA6B;IAQzD,IAAW,OAAO,IAAI,eAAe,GAAG,SAAS,CAEhD;IAED,IAAW,WAAW,IAAI,kBAAkB,GAAG,SAAS,CAEvD;IAEM,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,GAAG,WAAW;IAIpE;;;OAGG;IACI,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIzC;;;;;;;;OAQG;IACU,WAAW,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;IAgFxE;;;;;OAKG;IACU,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC;IAsD5E,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAI3D,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,2BAA2B,GAAG;QAAE,MAAM,IAAI,IAAI,CAAA;KAAE;IAIrF,YAAY,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI;IAI3C,SAAS,IAAI,WAAW,EAAE;IAI1B,OAAO,IAAI,IAAI;CAyEvB"}