@arcgis/ai-components 5.1.0-next.98 → 5.2.0-next.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 (375) hide show
  1. package/README.md +2 -2
  2. package/dist/agent-utils/BaseAgent.d.ts +90 -0
  3. package/dist/agent-utils/BaseAgent.js +87 -0
  4. package/dist/agent-utils/FunctionAgent.d.ts +64 -0
  5. package/dist/agent-utils/FunctionAgent.js +98 -0
  6. package/dist/agent-utils/LLMAgent.d.ts +65 -0
  7. package/dist/agent-utils/LLMAgent.js +139 -0
  8. package/dist/agent-utils/WorkflowAgent.d.ts +44 -0
  9. package/dist/agent-utils/WorkflowAgent.js +70 -0
  10. package/dist/agent-utils/middlewares/humanInTheLoop.d.ts +152 -0
  11. package/dist/agent-utils/middlewares/humanInTheLoop.js +94 -0
  12. package/dist/agent-utils/middlewares/middleware.d.ts +25 -0
  13. package/dist/agent-utils/middlewares/middleware.js +44 -0
  14. package/dist/agent-utils/middlewares/trace.d.ts +25 -0
  15. package/dist/agent-utils/middlewares/trace.js +50 -0
  16. package/dist/agent-utils/middlewares/types.d.ts +123 -0
  17. package/dist/agent-utils/middlewares/types.js +2 -0
  18. package/dist/agent-utils/tools/FunctionTool.d.ts +127 -0
  19. package/dist/agent-utils/tools/FunctionTool.js +80 -0
  20. package/dist/agent-utils/types.d.ts +152 -0
  21. package/dist/agent-utils/workflows/BaseWorkflow.d.ts +87 -0
  22. package/dist/agent-utils/workflows/ConditionalWorkflow.d.ts +72 -0
  23. package/dist/agent-utils/workflows/ConditionalWorkflow.js +61 -0
  24. package/dist/agent-utils/workflows/LoopWorkflow.d.ts +58 -0
  25. package/dist/agent-utils/workflows/LoopWorkflow.js +56 -0
  26. package/dist/agent-utils/workflows/ParallelWorkflow.d.ts +68 -0
  27. package/dist/agent-utils/workflows/ParallelWorkflow.js +129 -0
  28. package/dist/agent-utils/workflows/RouterWorkflow.d.ts +63 -0
  29. package/dist/agent-utils/workflows/RouterWorkflow.js +75 -0
  30. package/dist/agent-utils/workflows/SequentialWorkflow.d.ts +56 -0
  31. package/dist/agent-utils/workflows/SequentialWorkflow.js +69 -0
  32. package/dist/agent-utils/workflows/SwitchWorkflow.d.ts +74 -0
  33. package/dist/agent-utils/workflows/SwitchWorkflow.js +84 -0
  34. package/dist/assets/embeddings.worker-k9_Ou679.js +1 -0
  35. package/dist/cdn/{24MYCR6F.js → 23EQTPO3.js} +2 -2
  36. package/dist/cdn/{Z3DVGFEE.js → 2AXF774U.js} +2 -2
  37. package/dist/cdn/{UK6CP7BR.js → 3PKJWIC3.js} +2 -2
  38. package/dist/cdn/462JBSEV.js +422 -0
  39. package/dist/cdn/5QAHYX7Y.js +5 -0
  40. package/dist/cdn/{YVTKUITE.js → 5ZZGKP7N.js} +2 -2
  41. package/dist/cdn/{VHOF6SUZ.js → 6MAINSY5.js} +4 -3
  42. package/dist/cdn/6R6AY3D3.js +42 -0
  43. package/dist/cdn/{DMLSCJAM.js → 6YMR4QSD.js} +2 -2
  44. package/dist/cdn/{LXFCO34K.js → 7BCR6TUO.js} +2 -2
  45. package/dist/cdn/{EUNEQNYC.js → 7GH7VSB2.js} +1 -1
  46. package/dist/cdn/{YNJYG2RG.js → 7PLV4QH6.js} +2 -2
  47. package/dist/cdn/{JDL3HFFX.js → 7RCQFLPP.js} +2 -2
  48. package/dist/cdn/AMP6IALT.js +2 -0
  49. package/dist/cdn/{Y3AUHNRX.js → AO7BQHKC.js} +2 -2
  50. package/dist/cdn/AXDZBBNL.js +45 -0
  51. package/dist/cdn/{WBRZZ4FB.js → DDLZOMUY.js} +2 -2
  52. package/dist/cdn/DHOVCT6R.js +2 -0
  53. package/dist/cdn/EF453FJ2.js +3 -0
  54. package/dist/cdn/{ESTSYVJP.js → F2AHA4GB.js} +2 -2
  55. package/dist/cdn/FB5DRKEB.js +14 -0
  56. package/dist/cdn/FX5JFRDL.js +2 -0
  57. package/dist/cdn/{CFT5BBC6.js → FX7UOGHP.js} +2 -2
  58. package/dist/cdn/{5PT7ZFXF.js → GM3QP65I.js} +2 -2
  59. package/dist/cdn/H7422XUG.js +2 -0
  60. package/dist/cdn/HB5A5R2E.js +2 -0
  61. package/dist/cdn/{LSGRWCAO.js → KMQ3SP4I.js} +2 -2
  62. package/dist/cdn/{7EXACS27.js → LBVX2JYG.js} +2 -2
  63. package/dist/cdn/{MZJGADGH.js → LQ6R5YRN.js} +2 -2
  64. package/dist/cdn/METXWS7V.js +166 -0
  65. package/dist/cdn/{3QC3BRZP.js → MH5RPXHM.js} +2 -2
  66. package/dist/cdn/N2VQD46V.js +106 -0
  67. package/dist/cdn/{54ATSQPS.js → NAUXSHIE.js} +18 -18
  68. package/dist/cdn/{SFREIREB.js → NE7E52YR.js} +2 -2
  69. package/dist/cdn/{2YEKZADB.js → NVI3I46B.js} +2 -2
  70. package/dist/cdn/{YGW7TUNX.js → OAVEHGB6.js} +1 -1
  71. package/dist/cdn/{DSEMD4M2.js → OH64RMOR.js} +3 -3
  72. package/dist/cdn/{PTGKT5P6.js → P6OPJQMC.js} +2 -2
  73. package/dist/cdn/QDO2AO53.js +36 -0
  74. package/dist/cdn/{TRDKA5Y6.js → QR54T33D.js} +2 -2
  75. package/dist/cdn/{457RLS3H.js → RVOAPUBN.js} +2 -2
  76. package/dist/cdn/{5JBT3YNY.js → SXDLXCIM.js} +2 -2
  77. package/dist/cdn/SZOVY2QU.js +2 -0
  78. package/dist/cdn/U3QQW6VA.js +16 -0
  79. package/dist/cdn/{G4SVCCJH.js → USMDJUFS.js} +2 -2
  80. package/dist/cdn/{Q5D5LJS5.js → V2P4AIGG.js} +2 -2
  81. package/dist/cdn/Y333DGV6.js +2 -0
  82. package/dist/cdn/Y67XAMT4.js +22 -0
  83. package/dist/cdn/{CFDTXKJ6.js → YIMNOUTF.js} +1 -1
  84. package/dist/cdn/ZS2TZ6BF.js +31 -0
  85. package/dist/cdn/{W5CHGOOR.js → ZTBA5PM7.js} +2 -2
  86. package/dist/cdn/assets/assistant/t9n/messages.ar.json +1 -1
  87. package/dist/cdn/assets/assistant/t9n/messages.bg.json +1 -1
  88. package/dist/cdn/assets/assistant/t9n/messages.bs.json +1 -1
  89. package/dist/cdn/assets/assistant/t9n/messages.ca.json +1 -1
  90. package/dist/cdn/assets/assistant/t9n/messages.cs.json +1 -1
  91. package/dist/cdn/assets/assistant/t9n/messages.da.json +1 -1
  92. package/dist/cdn/assets/assistant/t9n/messages.de.json +1 -1
  93. package/dist/cdn/assets/assistant/t9n/messages.el.json +1 -1
  94. package/dist/cdn/assets/assistant/t9n/messages.es.json +1 -1
  95. package/dist/cdn/assets/assistant/t9n/messages.et.json +1 -1
  96. package/dist/cdn/assets/assistant/t9n/messages.fi.json +1 -1
  97. package/dist/cdn/assets/assistant/t9n/messages.fr.json +1 -1
  98. package/dist/cdn/assets/assistant/t9n/messages.he.json +1 -1
  99. package/dist/cdn/assets/assistant/t9n/messages.hr.json +1 -1
  100. package/dist/cdn/assets/assistant/t9n/messages.hu.json +1 -1
  101. package/dist/cdn/assets/assistant/t9n/messages.id.json +1 -1
  102. package/dist/cdn/assets/assistant/t9n/messages.it.json +1 -1
  103. package/dist/cdn/assets/assistant/t9n/messages.ja.json +1 -1
  104. package/dist/cdn/assets/assistant/t9n/messages.ko.json +1 -1
  105. package/dist/cdn/assets/assistant/t9n/messages.lt.json +1 -1
  106. package/dist/cdn/assets/assistant/t9n/messages.lv.json +1 -1
  107. package/dist/cdn/assets/assistant/t9n/messages.nl.json +1 -1
  108. package/dist/cdn/assets/assistant/t9n/messages.no.json +1 -1
  109. package/dist/cdn/assets/assistant/t9n/messages.pl.json +1 -1
  110. package/dist/cdn/assets/assistant/t9n/messages.pt-BR.json +1 -1
  111. package/dist/cdn/assets/assistant/t9n/messages.pt-PT.json +1 -1
  112. package/dist/cdn/assets/assistant/t9n/messages.ro.json +1 -1
  113. package/dist/cdn/assets/assistant/t9n/messages.ru.json +1 -1
  114. package/dist/cdn/assets/assistant/t9n/messages.sk.json +1 -1
  115. package/dist/cdn/assets/assistant/t9n/messages.sl.json +1 -1
  116. package/dist/cdn/assets/assistant/t9n/messages.sr.json +1 -1
  117. package/dist/cdn/assets/assistant/t9n/messages.sv.json +1 -1
  118. package/dist/cdn/assets/assistant/t9n/messages.th.json +1 -1
  119. package/dist/cdn/assets/assistant/t9n/messages.tr.json +1 -1
  120. package/dist/cdn/assets/assistant/t9n/messages.uk.json +1 -1
  121. package/dist/cdn/assets/assistant/t9n/messages.vi.json +1 -1
  122. package/dist/cdn/assets/assistant/t9n/messages.zh-CN.json +1 -1
  123. package/dist/cdn/assets/assistant/t9n/messages.zh-HK.json +1 -1
  124. package/dist/cdn/assets/assistant/t9n/messages.zh-TW.json +1 -1
  125. package/dist/cdn/assets/assistant-message-feedback/t9n/messages.ar.json +1 -1
  126. package/dist/cdn/assets/assistant-message-feedback/t9n/messages.bg.json +1 -1
  127. package/dist/cdn/assets/assistant-message-feedback/t9n/messages.bs.json +1 -1
  128. package/dist/cdn/assets/assistant-message-feedback/t9n/messages.ca.json +1 -1
  129. package/dist/cdn/assets/assistant-message-feedback/t9n/messages.cs.json +1 -1
  130. package/dist/cdn/assets/assistant-message-feedback/t9n/messages.da.json +1 -1
  131. package/dist/cdn/assets/assistant-message-feedback/t9n/messages.de.json +1 -1
  132. package/dist/cdn/assets/assistant-message-feedback/t9n/messages.el.json +1 -1
  133. package/dist/cdn/assets/assistant-message-feedback/t9n/messages.es.json +1 -1
  134. package/dist/cdn/assets/assistant-message-feedback/t9n/messages.et.json +1 -1
  135. package/dist/cdn/assets/assistant-message-feedback/t9n/messages.fi.json +1 -1
  136. package/dist/cdn/assets/assistant-message-feedback/t9n/messages.fr.json +1 -1
  137. package/dist/cdn/assets/assistant-message-feedback/t9n/messages.he.json +1 -1
  138. package/dist/cdn/assets/assistant-message-feedback/t9n/messages.hr.json +1 -1
  139. package/dist/cdn/assets/assistant-message-feedback/t9n/messages.hu.json +1 -1
  140. package/dist/cdn/assets/assistant-message-feedback/t9n/messages.id.json +1 -1
  141. package/dist/cdn/assets/assistant-message-feedback/t9n/messages.it.json +1 -1
  142. package/dist/cdn/assets/assistant-message-feedback/t9n/messages.ja.json +1 -1
  143. package/dist/cdn/assets/assistant-message-feedback/t9n/messages.ko.json +1 -1
  144. package/dist/cdn/assets/assistant-message-feedback/t9n/messages.lt.json +1 -1
  145. package/dist/cdn/assets/assistant-message-feedback/t9n/messages.lv.json +1 -1
  146. package/dist/cdn/assets/assistant-message-feedback/t9n/messages.nl.json +1 -1
  147. package/dist/cdn/assets/assistant-message-feedback/t9n/messages.no.json +1 -1
  148. package/dist/cdn/assets/assistant-message-feedback/t9n/messages.pl.json +1 -1
  149. package/dist/cdn/assets/assistant-message-feedback/t9n/messages.pt-BR.json +1 -1
  150. package/dist/cdn/assets/assistant-message-feedback/t9n/messages.pt-PT.json +1 -1
  151. package/dist/cdn/assets/assistant-message-feedback/t9n/messages.ro.json +1 -1
  152. package/dist/cdn/assets/assistant-message-feedback/t9n/messages.ru.json +1 -1
  153. package/dist/cdn/assets/assistant-message-feedback/t9n/messages.sk.json +1 -1
  154. package/dist/cdn/assets/assistant-message-feedback/t9n/messages.sl.json +1 -1
  155. package/dist/cdn/assets/assistant-message-feedback/t9n/messages.sr.json +1 -1
  156. package/dist/cdn/assets/assistant-message-feedback/t9n/messages.sv.json +1 -1
  157. package/dist/cdn/assets/assistant-message-feedback/t9n/messages.th.json +1 -1
  158. package/dist/cdn/assets/assistant-message-feedback/t9n/messages.tr.json +1 -1
  159. package/dist/cdn/assets/assistant-message-feedback/t9n/messages.uk.json +1 -1
  160. package/dist/cdn/assets/assistant-message-feedback/t9n/messages.vi.json +1 -1
  161. package/dist/cdn/assets/assistant-message-feedback/t9n/messages.zh-CN.json +1 -1
  162. package/dist/cdn/assets/assistant-message-feedback/t9n/messages.zh-HK.json +1 -1
  163. package/dist/cdn/assets/assistant-message-feedback/t9n/messages.zh-TW.json +1 -1
  164. package/dist/cdn/assets/assistant-message-footer/t9n/messages.ar.json +1 -1
  165. package/dist/cdn/assets/assistant-message-footer/t9n/messages.bg.json +1 -1
  166. package/dist/cdn/assets/assistant-message-footer/t9n/messages.bs.json +1 -1
  167. package/dist/cdn/assets/assistant-message-footer/t9n/messages.ca.json +1 -1
  168. package/dist/cdn/assets/assistant-message-footer/t9n/messages.cs.json +1 -1
  169. package/dist/cdn/assets/assistant-message-footer/t9n/messages.da.json +1 -1
  170. package/dist/cdn/assets/assistant-message-footer/t9n/messages.de.json +1 -1
  171. package/dist/cdn/assets/assistant-message-footer/t9n/messages.el.json +1 -1
  172. package/dist/cdn/assets/assistant-message-footer/t9n/messages.es.json +1 -1
  173. package/dist/cdn/assets/assistant-message-footer/t9n/messages.et.json +1 -1
  174. package/dist/cdn/assets/assistant-message-footer/t9n/messages.fi.json +1 -1
  175. package/dist/cdn/assets/assistant-message-footer/t9n/messages.fr.json +1 -1
  176. package/dist/cdn/assets/assistant-message-footer/t9n/messages.he.json +1 -1
  177. package/dist/cdn/assets/assistant-message-footer/t9n/messages.hr.json +1 -1
  178. package/dist/cdn/assets/assistant-message-footer/t9n/messages.hu.json +1 -1
  179. package/dist/cdn/assets/assistant-message-footer/t9n/messages.id.json +1 -1
  180. package/dist/cdn/assets/assistant-message-footer/t9n/messages.it.json +1 -1
  181. package/dist/cdn/assets/assistant-message-footer/t9n/messages.ja.json +1 -1
  182. package/dist/cdn/assets/assistant-message-footer/t9n/messages.ko.json +1 -1
  183. package/dist/cdn/assets/assistant-message-footer/t9n/messages.lt.json +1 -1
  184. package/dist/cdn/assets/assistant-message-footer/t9n/messages.lv.json +1 -1
  185. package/dist/cdn/assets/assistant-message-footer/t9n/messages.nl.json +1 -1
  186. package/dist/cdn/assets/assistant-message-footer/t9n/messages.no.json +1 -1
  187. package/dist/cdn/assets/assistant-message-footer/t9n/messages.pl.json +1 -1
  188. package/dist/cdn/assets/assistant-message-footer/t9n/messages.pt-BR.json +1 -1
  189. package/dist/cdn/assets/assistant-message-footer/t9n/messages.pt-PT.json +1 -1
  190. package/dist/cdn/assets/assistant-message-footer/t9n/messages.ro.json +1 -1
  191. package/dist/cdn/assets/assistant-message-footer/t9n/messages.ru.json +1 -1
  192. package/dist/cdn/assets/assistant-message-footer/t9n/messages.sk.json +1 -1
  193. package/dist/cdn/assets/assistant-message-footer/t9n/messages.sl.json +1 -1
  194. package/dist/cdn/assets/assistant-message-footer/t9n/messages.sr.json +1 -1
  195. package/dist/cdn/assets/assistant-message-footer/t9n/messages.sv.json +1 -1
  196. package/dist/cdn/assets/assistant-message-footer/t9n/messages.th.json +1 -1
  197. package/dist/cdn/assets/assistant-message-footer/t9n/messages.tr.json +1 -1
  198. package/dist/cdn/assets/assistant-message-footer/t9n/messages.uk.json +1 -1
  199. package/dist/cdn/assets/assistant-message-footer/t9n/messages.vi.json +1 -1
  200. package/dist/cdn/assets/assistant-message-footer/t9n/messages.zh-CN.json +1 -1
  201. package/dist/cdn/assets/assistant-message-footer/t9n/messages.zh-HK.json +1 -1
  202. package/dist/cdn/assets/assistant-message-footer/t9n/messages.zh-TW.json +1 -1
  203. package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.ar.json +1 -1
  204. package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.bg.json +1 -1
  205. package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.bs.json +1 -1
  206. package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.ca.json +1 -1
  207. package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.cs.json +1 -1
  208. package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.da.json +1 -1
  209. package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.de.json +1 -1
  210. package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.el.json +1 -1
  211. package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.es.json +1 -1
  212. package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.et.json +1 -1
  213. package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.fi.json +1 -1
  214. package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.fr.json +1 -1
  215. package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.he.json +1 -1
  216. package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.hr.json +1 -1
  217. package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.hu.json +1 -1
  218. package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.id.json +1 -1
  219. package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.it.json +1 -1
  220. package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.ja.json +1 -1
  221. package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.ko.json +1 -1
  222. package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.lt.json +1 -1
  223. package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.lv.json +1 -1
  224. package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.nl.json +1 -1
  225. package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.no.json +1 -1
  226. package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.pl.json +1 -1
  227. package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.pt-BR.json +1 -1
  228. package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.pt-PT.json +1 -1
  229. package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.ro.json +1 -1
  230. package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.ru.json +1 -1
  231. package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.sk.json +1 -1
  232. package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.sl.json +1 -1
  233. package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.sr.json +1 -1
  234. package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.sv.json +1 -1
  235. package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.th.json +1 -1
  236. package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.tr.json +1 -1
  237. package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.uk.json +1 -1
  238. package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.vi.json +1 -1
  239. package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.zh-CN.json +1 -1
  240. package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.zh-HK.json +1 -1
  241. package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.zh-TW.json +1 -1
  242. package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.ar.json +1 -1
  243. package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.bg.json +1 -1
  244. package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.bs.json +1 -1
  245. package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.ca.json +1 -1
  246. package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.cs.json +1 -1
  247. package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.da.json +1 -1
  248. package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.de.json +1 -1
  249. package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.el.json +1 -1
  250. package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.es.json +1 -1
  251. package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.et.json +1 -1
  252. package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.fi.json +1 -1
  253. package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.fr.json +1 -1
  254. package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.he.json +1 -1
  255. package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.hr.json +1 -1
  256. package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.hu.json +1 -1
  257. package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.id.json +1 -1
  258. package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.it.json +1 -1
  259. package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.ja.json +1 -1
  260. package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.ko.json +1 -1
  261. package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.lt.json +1 -1
  262. package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.lv.json +1 -1
  263. package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.nl.json +1 -1
  264. package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.no.json +1 -1
  265. package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.pl.json +1 -1
  266. package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.pt-BR.json +1 -1
  267. package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.pt-PT.json +1 -1
  268. package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.ro.json +1 -1
  269. package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.ru.json +1 -1
  270. package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.sk.json +1 -1
  271. package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.sl.json +1 -1
  272. package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.sr.json +1 -1
  273. package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.sv.json +1 -1
  274. package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.th.json +1 -1
  275. package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.tr.json +1 -1
  276. package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.uk.json +1 -1
  277. package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.vi.json +1 -1
  278. package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.zh-CN.json +1 -1
  279. package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.zh-HK.json +1 -1
  280. package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.zh-TW.json +1 -1
  281. package/dist/cdn/index.js +2 -2
  282. package/dist/cdn/main.css +1 -1
  283. package/dist/chunks/BaseWorkflow.js +107 -0
  284. package/dist/chunks/adapter.js +2964 -0
  285. package/dist/chunks/arcgisKnowledgeGraph.js +174 -0
  286. package/dist/chunks/arcgis_knowledge_current_lc_context.js +8 -0
  287. package/dist/chunks/arcgis_knowledge_current_map_context.js +8 -0
  288. package/dist/chunks/arcgis_knowledge_lucene_generation_prompt.js +101 -0
  289. package/dist/chunks/arcgis_knowledge_summarize_result_prompt.js +48 -0
  290. package/dist/chunks/arcgis_knowledge_tool_prompt.js +34 -0
  291. package/dist/chunks/converterUtils.js +1 -1
  292. package/dist/chunks/dataExplorationGraph.js +289 -0
  293. package/dist/chunks/data_explore_filter_prompt.js +125 -0
  294. package/dist/chunks/data_explore_query_prompt.js +131 -0
  295. package/dist/chunks/embeddings.worker.js +25 -0
  296. package/dist/chunks/field_descriptions_prompt.js +112 -0
  297. package/dist/chunks/generateLayerDescriptions.js +413 -0
  298. package/dist/chunks/graph.js +86 -0
  299. package/dist/chunks/helpGraph.js +123 -0
  300. package/dist/chunks/help_prompt.js +57 -0
  301. package/dist/chunks/intent_prompt.js +124 -0
  302. package/dist/chunks/layerStylingGraph.js +189 -0
  303. package/dist/chunks/layer_descriptions_prompt.js +59 -0
  304. package/dist/chunks/layer_styling_prompt.js +72 -0
  305. package/dist/chunks/navigationGraph.js +266 -0
  306. package/dist/chunks/navigation_intent_prompt.js +46 -0
  307. package/dist/chunks/navigation_tool_prompt.js +39 -0
  308. package/dist/chunks/orchestrator.js +528 -0
  309. package/dist/chunks/runtime.js +2 -2
  310. package/dist/chunks/slottableRequestUtils.js +1 -1
  311. package/dist/chunks/state.js +71 -0
  312. package/dist/chunks/summarize_query_response_prompt.js +77 -0
  313. package/dist/chunks/toolCallResponse.js +29 -0
  314. package/dist/chunks/useT9n.js +1 -1
  315. package/dist/chunks/utils.js +47 -29
  316. package/dist/chunks/utils2.js +42 -7
  317. package/dist/chunks/utils3.js +16 -0
  318. package/dist/components/arcgis-assistant/customElement.d.ts +60 -8
  319. package/dist/components/arcgis-assistant/customElement.js +32 -24
  320. package/dist/components/arcgis-assistant/types.d.ts +1 -1
  321. package/dist/components/arcgis-assistant-agent/customElement.d.ts +1 -1
  322. package/dist/components/arcgis-assistant-agent/customElement.js +2 -2
  323. package/dist/components/arcgis-assistant-chat/customElement.js +1 -1
  324. package/dist/components/arcgis-assistant-chat-entry/customElement.js +1 -1
  325. package/dist/components/arcgis-assistant-data-exploration-agent/customElement.js +25 -9
  326. package/dist/components/arcgis-assistant-help-agent/customElement.js +28 -9
  327. package/dist/components/arcgis-assistant-interrupt/customElement.js +8 -12
  328. package/dist/components/arcgis-assistant-knowledge-agent/customElement.d.ts +158 -0
  329. package/dist/components/arcgis-assistant-knowledge-agent/customElement.js +68 -0
  330. package/dist/components/arcgis-assistant-knowledge-agent/index.d.ts +1 -0
  331. package/dist/components/arcgis-assistant-knowledge-agent/index.js +1 -0
  332. package/dist/components/arcgis-assistant-layer-styling-agent/customElement.js +28 -9
  333. package/dist/components/arcgis-assistant-message/customElement.js +1 -1
  334. package/dist/components/arcgis-assistant-message-block/customElement.d.ts +1 -1
  335. package/dist/components/arcgis-assistant-message-block/customElement.js +1 -1
  336. package/dist/components/arcgis-assistant-message-feedback/customElement.js +1 -1
  337. package/dist/components/arcgis-assistant-message-footer/customElement.js +1 -1
  338. package/dist/components/arcgis-assistant-message-loading/customElement.js +1 -1
  339. package/dist/components/arcgis-assistant-message-log/customElement.js +1 -1
  340. package/dist/components/arcgis-assistant-message-read-aloud/customElement.js +24 -28
  341. package/dist/components/arcgis-assistant-message-text/customElement.js +1 -1
  342. package/dist/components/arcgis-assistant-navigation-agent/customElement.js +26 -8
  343. package/dist/components/arcgis-assistant-speech-input/customElement.js +1 -1
  344. package/dist/components/arcgis-assistant-suggested-prompts/customElement.js +1 -1
  345. package/dist/components/arcgis-assistant-user-message/customElement.js +1 -1
  346. package/dist/docs/api.json +1 -1
  347. package/dist/docs/docs.json +1 -1
  348. package/dist/docs/vscode.html-custom-data.json +1 -1
  349. package/dist/docs/web-types.json +1 -1
  350. package/dist/index.d.ts +4 -0
  351. package/dist/index.js +1 -1
  352. package/dist/loader.js +2 -1
  353. package/dist/types/lumina.d.ts +6 -1
  354. package/dist/types/preact.d.ts +7 -1
  355. package/dist/types/react.d.ts +8 -1
  356. package/dist/types/stencil.d.ts +6 -1
  357. package/dist/utils/index.d.ts +203 -9
  358. package/dist/utils/index.js +109 -11
  359. package/package.json +26 -11
  360. package/dist/cdn/4CPZZBYD.js +0 -2
  361. package/dist/cdn/5JS65BCP.js +0 -29
  362. package/dist/cdn/7EHQLXMU.js +0 -2
  363. package/dist/cdn/AKOWC7YT.js +0 -18
  364. package/dist/cdn/ARCP5UZY.js +0 -2
  365. package/dist/cdn/B4DEC7PH.js +0 -2
  366. package/dist/cdn/D7WNBUVK.js +0 -106
  367. package/dist/cdn/I2KPFZDL.js +0 -2
  368. package/dist/cdn/KVH3PDVW.js +0 -2
  369. package/dist/cdn/M73KKJSM.js +0 -2
  370. package/dist/cdn/O62HTIOD.js +0 -2
  371. package/dist/cdn/R5FWFRWW.js +0 -2
  372. package/dist/cdn/YW52XJMM.js +0 -396
  373. package/dist/cdn/Z4N6N4OZ.js +0 -271
  374. package/dist/cdn/ZLO73NU6.js +0 -2
  375. package/dist/cdn/ZPNJGIAF.js +0 -2
@@ -0,0 +1,528 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
+ import S from "@arcgis/core/identity/IdentityManager.js";
3
+ import b from "@arcgis/core/portal/Portal.js";
4
+ import { p as I, s as l, D as R, q as k, r as M, W as C } from "./generateLayerDescriptions.js";
5
+ import { isGraphInterrupt as A, StateGraph as F, START as L, END as W, MemorySaver as $ } from "@langchain/langgraph/web";
6
+ import { HumanMessage as D, AIMessage as j } from "@langchain/core/messages";
7
+ import * as P from "@arcgis/core/core/reactiveUtils.js";
8
+ import q from "@arcgis/core/layers/FeatureLayer.js";
9
+ import H from "@arcgis/core/request.js";
10
+ const O = async (t) => {
11
+ const e = await T(), s = await I("default"), n = b.getDefault(), i = (await S.getCredential(`${n.url}/sharing`)).token, a = {
12
+ type: "generateEmbeddings",
13
+ webmapEmbeddings: t,
14
+ auth: { apiUrl: s, token: i }
15
+ };
16
+ return e.postMessage(a), await new Promise((c, d) => {
17
+ const o = (u) => {
18
+ u.data === "completed" && (e.removeEventListener("message", o), c());
19
+ }, g = (u) => {
20
+ e.removeEventListener("message", o), d(u instanceof Error ? u : new Error("Embeddings worker error"));
21
+ };
22
+ e.addEventListener("message", o), e.addEventListener("error", g, { once: !0 });
23
+ }), e;
24
+ }, T = async () => {
25
+ {
26
+ const t = (await import("./embeddings.worker.js")).default;
27
+ return new t();
28
+ }
29
+ }, U = (t) => {
30
+ t.currentIntent = "none";
31
+ }, N = async (t, e) => {
32
+ if (t.agentExecutionContext.userRequest) {
33
+ const n = new D(t.agentExecutionContext.userRequest.trim());
34
+ t.agentExecutionContext.messages = [...t.agentExecutionContext.messages, n], U(t);
35
+ }
36
+ const s = e?.configurable?.services.agentRegistry.list().map((n) => n.agent.id) ?? [];
37
+ return await l({ text: `Available agents: ${[...s].join(", ")}` }, e), await l({ text: "Analyzing user input" }, e), t;
38
+ }, G = async (t, e) => (await l({ text: "Exiting..." }, e), t), y = (t) => typeof t == "object" && t !== null && !Array.isArray(t), _ = (t, e) => {
39
+ if (!y(t)) {
40
+ t !== void 0 && console.warn(`Agent "${e}" returned invalid sharedStatePatch. Ignoring it.`);
41
+ return;
42
+ }
43
+ const s = {};
44
+ for (const [n, r] of Object.entries(t)) {
45
+ if (!y(r) || !("value" in r)) {
46
+ console.warn(
47
+ `Agent "${e}" returned invalid sharedStatePatch entry for key "${n}". Ignoring that entry.`
48
+ );
49
+ continue;
50
+ }
51
+ s[n] = { value: r.value };
52
+ }
53
+ return s;
54
+ }, V = (t) => {
55
+ const { previousSharedState: e, patch: s, agentId: n } = t;
56
+ if (!s)
57
+ return e;
58
+ const r = Date.now(), i = {
59
+ ...e
60
+ };
61
+ for (const [a, c] of Object.entries(s))
62
+ c?.value !== void 0 && (i[a] = {
63
+ value: c.value,
64
+ meta: {
65
+ updatedByAgentId: n,
66
+ updatedAt: r
67
+ }
68
+ });
69
+ return i;
70
+ }, w = (t) => {
71
+ if (typeof t != "string")
72
+ return;
73
+ const e = t.trim();
74
+ return e || void 0;
75
+ }, z = (t) => {
76
+ switch (t) {
77
+ case "failed":
78
+ return "Agent failed without a summary.";
79
+ case "unknown":
80
+ return "Agent returned with unknown status.";
81
+ case "success":
82
+ return "Agent completed without a summary.";
83
+ default:
84
+ return "Agent completed without a summary.";
85
+ }
86
+ }, Q = (t, e) => {
87
+ const s = w(e?.outputMessage), n = w(e?.summary), r = e?.status, i = r === "success" || r === "failed" ? r : "unknown";
88
+ i === "unknown" && console.warn(`Agent "${t}" returned missing/invalid status. Defaulting to "unknown".`);
89
+ const a = _(e?.sharedStatePatch, t);
90
+ return {
91
+ outputMessage: s,
92
+ summary: n ?? s ?? z(i),
93
+ status: i,
94
+ sharedStatePatch: a
95
+ };
96
+ }, f = 4e3, B = async (t, e) => {
97
+ const s = e?.configurable, { agentRegistry: n } = s.services, r = n?.get(t.currentIntent);
98
+ if (!r)
99
+ return console.warn(`No agent found for intent: ${t.currentIntent}`), t;
100
+ await l({ text: `Executing registered agent: ${r.agent.name}` }, e);
101
+ const i = {
102
+ ...e ?? {},
103
+ configurable: {
104
+ ...s ?? {},
105
+ agentId: r.agent.id,
106
+ context: r.getContext ? await r.getContext() : void 0
107
+ }
108
+ };
109
+ let a;
110
+ try {
111
+ const o = await r.agent.createGraph().compile().invoke(
112
+ {
113
+ agentExecutionContext: {
114
+ ...t.agentExecutionContext,
115
+ // deep clone on messages did not work in agents, so its a shallow clone here.
116
+ messages: [...t.agentExecutionContext.messages],
117
+ // deep clone to prevent accidental mutations by agents
118
+ priorSteps: structuredClone(t.agentExecutionContext.priorSteps ?? []),
119
+ sharedState: structuredClone(t.agentExecutionContext.sharedState ?? {})
120
+ }
121
+ },
122
+ i
123
+ );
124
+ a = Q(r.agent.name, o), await l({ text: `Finished executing registered agent: ${r.agent.name}` }, e);
125
+ } catch (o) {
126
+ if (A(o))
127
+ throw o;
128
+ const g = o instanceof Error ? o.message : String(o);
129
+ console.error(`Agent "${r.agent.name}" failed:`, o), await l({ text: `Registered agent failed: ${r.agent.name}. ${g}` }, e), a = {
130
+ status: "failed",
131
+ outputMessage: `Agent execution failed: ${g}`,
132
+ summary: `Agent execution failed: ${g}`
133
+ };
134
+ }
135
+ const c = a.outputMessage, d = [...t.agentExecutionContext.messages];
136
+ if (c) {
137
+ const o = c.length > f ? `${c.slice(0, f - 14)}
138
+ [truncated]` : c;
139
+ d.push(new j(o));
140
+ }
141
+ return {
142
+ ...t,
143
+ stepCount: t.stepCount + 1,
144
+ lastExecutedAgent: r.agent.id,
145
+ requiresFollowUp: a.status === "failed" ? !0 : t.requiresFollowUp,
146
+ finalOutputMessage: c ?? "",
147
+ agentExecutionContext: {
148
+ ...t.agentExecutionContext,
149
+ messages: d,
150
+ priorSteps: [
151
+ ...t.agentExecutionContext.priorSteps ?? [],
152
+ {
153
+ agentId: r.agent.id,
154
+ assignedTask: t.agentExecutionContext.assignedTask,
155
+ summary: a?.summary || "No summary provided.",
156
+ status: a?.status || "unknown"
157
+ }
158
+ ],
159
+ sharedState: V({
160
+ previousSharedState: t.agentExecutionContext.sharedState,
161
+ patch: a.sharedStatePatch,
162
+ agentId: r.agent.id
163
+ })
164
+ }
165
+ };
166
+ }, J = 3, K = () => new F(R).addNode("ingestInput", N).addNode("intentLLM", k).addNode("executeRegisteredAgent", B).addNode("exit", G).addEdge(L, "ingestInput").addEdge("ingestInput", "intentLLM").addConditionalEdges("intentLLM", (e) => e.currentIntent === "none" || e.currentIntent === e.lastExecutedAgent ? "exit" : "executeRegisteredAgent").addConditionalEdges(
167
+ "executeRegisteredAgent",
168
+ (e) => e.stepCount >= J || !e.requiresFollowUp ? "exit" : "intentLLM"
169
+ ).addEdge("exit", W);
170
+ class X {
171
+ constructor() {
172
+ this.agentRegistry = /* @__PURE__ */ new Map();
173
+ }
174
+ register(e) {
175
+ const { agent: s } = e;
176
+ if (this.agentRegistry.has(s.id))
177
+ throw new Error(`Duplicate agent id: ${s.id}`);
178
+ this.agentRegistry.set(s.id, e);
179
+ }
180
+ get(e) {
181
+ return this.agentRegistry.get(e);
182
+ }
183
+ list() {
184
+ return [...this.agentRegistry.values()];
185
+ }
186
+ }
187
+ class Y {
188
+ /**
189
+ * Create a new InterruptHandler tied to a specific compiled graph and config.
190
+ */
191
+ constructor(e, s) {
192
+ this.graph = e, this.config = { ...s };
193
+ }
194
+ /**
195
+ * Returns a promise that resolves when the user provides a HITL response.
196
+ */
197
+ async waitForUser() {
198
+ return await new Promise((e, s) => {
199
+ this.resolveWait = e, this.rejectWait = s;
200
+ });
201
+ }
202
+ /**
203
+ * Resume graph execution after the UI responds to an interrupt.
204
+ */
205
+ handle(e, s) {
206
+ try {
207
+ const n = {
208
+ agentId: e.agentId,
209
+ id: e.id,
210
+ payload: s
211
+ }, r = this.graph.streamEvents(null, {
212
+ ...this.config,
213
+ configurable: {
214
+ ...this.config.configurable,
215
+ hitlResponse: n
216
+ },
217
+ subgraphs: !0,
218
+ version: "v2"
219
+ });
220
+ this.resolveWait?.(r);
221
+ } catch (n) {
222
+ this.rejectWait?.(n);
223
+ } finally {
224
+ this.resolveWait = void 0, this.rejectWait = void 0;
225
+ }
226
+ }
227
+ /**
228
+ * Abort the HITL wait and reject any pending continuation.
229
+ */
230
+ cancel() {
231
+ this.rejectWait && (this.rejectWait(new Error("Request cancelled by user.")), this.resolveWait = void 0, this.rejectWait = void 0);
232
+ }
233
+ }
234
+ const Z = async (t) => {
235
+ try {
236
+ return await (await M()).embedDocuments(t);
237
+ } catch (e) {
238
+ throw console.error("Failed to generate embeddings:", e), e;
239
+ }
240
+ }, E = async (t, e) => {
241
+ const s = e.get(t);
242
+ if (s)
243
+ return s;
244
+ const n = await Z([t]);
245
+ return e.set(t, n[0]), n[0];
246
+ };
247
+ async function ee(t, e, s, n) {
248
+ const r = `req-${Date.now()}`, a = {
249
+ type: "layerSearch",
250
+ precomputedEmbedding: n ? await E(t, n) : void 0,
251
+ requestId: r,
252
+ minScore: s
253
+ };
254
+ return await new Promise((c) => {
255
+ const d = (o) => {
256
+ o.data.requestId === r && c(o.data.results);
257
+ };
258
+ e.addEventListener("message", d, { once: !0 }), e.postMessage(a);
259
+ });
260
+ }
261
+ function te(t) {
262
+ const { worker: e } = t;
263
+ return {
264
+ async searchLayers({
265
+ text: s,
266
+ minScore: n,
267
+ embeddingCache: r
268
+ }) {
269
+ return await ee(s, e, n, r);
270
+ }
271
+ };
272
+ }
273
+ const re = async ({
274
+ combinedQuery: t,
275
+ layerIds: e,
276
+ embeddingsWorker: s,
277
+ minScore: n,
278
+ topResults: r,
279
+ embeddingCache: i
280
+ }) => {
281
+ const a = `req-${Date.now()}`, c = i ? await E(t, i) : void 0, d = {
282
+ type: "fieldSearch",
283
+ layerIdForFieldsSearch: e,
284
+ precomputedEmbedding: c,
285
+ requestId: a,
286
+ minScore: n,
287
+ topResults: r
288
+ };
289
+ return await new Promise((o) => {
290
+ const g = (u) => {
291
+ if (u.data.requestId !== a)
292
+ return;
293
+ const p = u.data.results.map(({ layerId: m, results: h }) => ({
294
+ layerId: m,
295
+ results: h
296
+ }));
297
+ o(p);
298
+ };
299
+ s.addEventListener("message", g, { once: !0 }), s.postMessage(d);
300
+ });
301
+ };
302
+ function ne(t) {
303
+ const { worker: e } = t;
304
+ return {
305
+ async searchFields({ text: s, layerIds: n, minScore: r, topResults: i, embeddingCache: a }) {
306
+ return await re({
307
+ combinedQuery: s,
308
+ layerIds: n,
309
+ embeddingsWorker: e,
310
+ minScore: r,
311
+ topResults: i,
312
+ embeddingCache: a
313
+ });
314
+ }
315
+ };
316
+ }
317
+ const se = (t) => {
318
+ const e = C.safeParse(t);
319
+ if (!e.success)
320
+ throw new Error("Embeddings response validation failed. Regenerate embeddings.");
321
+ return e.data;
322
+ }, ae = (t, e) => {
323
+ const s = /* @__PURE__ */ new Map(), n = /* @__PURE__ */ new Map();
324
+ if (e.allLayers.forEach((r) => {
325
+ r instanceof q && n.set(r.id, r);
326
+ }), t.length !== n.size)
327
+ throw new Error("Layer count mismatch during registry restoration. Regenerate embeddings.");
328
+ for (const r of t) {
329
+ const i = n.get(r.id);
330
+ if (!i)
331
+ throw new Error(
332
+ `Layer with ID ${r.id} not found in the original map during registry restoration. Regenerate embeddings.`
333
+ );
334
+ if (r.fields.length !== i.fields.length)
335
+ throw new Error(
336
+ `Field count mismatch for layer ID ${r.id} during registry restoration. Regenerate embeddings.`
337
+ );
338
+ const a = {
339
+ name: r.name,
340
+ title: r.title,
341
+ description: r.description
342
+ }, c = /* @__PURE__ */ new Map();
343
+ for (const d of r.fields) {
344
+ const o = i.fieldsIndex.get(d.name);
345
+ if (!o)
346
+ throw new Error(
347
+ `Field with name ${d.name} not found in the original layer ${r.id} during registry restoration. Regenerate embeddings.`
348
+ );
349
+ c.set(d.name, {
350
+ name: d.name,
351
+ alias: i.getFieldAlias(d.name) ?? d.alias,
352
+ description: d.description,
353
+ type: o.type || "unknown",
354
+ valueType: o.valueType || "unknown",
355
+ domain: i.getFieldDomain(d.name) ?? void 0
356
+ });
357
+ }
358
+ s.set(r.id, {
359
+ layerItem: a,
360
+ fieldRegistry: c
361
+ });
362
+ }
363
+ return s;
364
+ }, ie = async (t) => {
365
+ try {
366
+ return (await H(t, {
367
+ responseType: "json"
368
+ })).data;
369
+ } catch (e) {
370
+ throw new Error(`Failed to fetch data from ${t}: ${String(e)}`);
371
+ }
372
+ }, oe = async (t) => {
373
+ const e = t.map;
374
+ if (!e?.portalItem)
375
+ throw new Error("WebMap portal item is missing.");
376
+ const { resources: s } = await e.portalItem.fetchResources(), n = s.find((a) => a.resource.path === "embeddings-v01.json");
377
+ if (!n?.resource.url)
378
+ throw new Error("Embeddings resource 'embeddings-v01.json' not found in the webmap portal item.");
379
+ const r = await ie(n.resource.url);
380
+ return se(r);
381
+ };
382
+ class v {
383
+ constructor() {
384
+ this.orchestratorReady = !1, this.chatHistory = [], this.priorSteps = [], this.sharedState = {}, this.threadId = "", this.agentRegistry = new X(), this.streamEpoch = 0;
385
+ }
386
+ /**
387
+ * Creates and returns an AI-ready Orchestrator instance.
388
+ * @param deps Core dependencies (layer/field registry plus optional map views).
389
+ * @returns Ready Orchestrator.
390
+ */
391
+ static async init(e) {
392
+ const s = new v();
393
+ try {
394
+ if (e.view?.map) {
395
+ await P.whenOnce(() => e.view.ready);
396
+ const n = await oe(e.view), r = ae(
397
+ n.layers,
398
+ e.view.map
399
+ );
400
+ s.layersAndFieldsRegistry = r, s.embeddingsWorker = await O(n);
401
+ }
402
+ return e.agents?.forEach((n) => {
403
+ s.agentRegistry.register(n);
404
+ }), s.orchestratorReady = !0, s;
405
+ } catch (n) {
406
+ throw console.error("Orchestrator initialization failed:", n), n;
407
+ }
408
+ }
409
+ /**
410
+ * Run a new chat turn through the graph.
411
+ * Yields structured events for the UI to consume:
412
+ * - `trace`: intermediate model output
413
+ * - `interrupt`: HITL required, wait for `resumeInterrupt()`
414
+ * - `completed`: final result with chat history + layer styling
415
+ * - `cancelled`: user aborted the run
416
+ */
417
+ async *ask(e) {
418
+ if (!this.orchestratorReady)
419
+ throw new Error("Orchestrator is not ready yet.");
420
+ if (!this.agentRegistry.list().length)
421
+ throw new Error("Orchestrator has no registered agents.");
422
+ if (++this.streamEpoch, !e.trim())
423
+ return;
424
+ this.threadId = String(Date.now()), this.graph || (this.graph = K().compile({ checkpointer: new $() }));
425
+ const s = this.embeddingsWorker ? te({ worker: this.embeddingsWorker }) : void 0, n = this.embeddingsWorker ? ne({ worker: this.embeddingsWorker }) : void 0, r = /* @__PURE__ */ new Map(), a = {
426
+ version: "v2",
427
+ streamMode: "custom",
428
+ configurable: {
429
+ // eslint-disable-next-line @typescript-eslint/naming-convention
430
+ thread_id: this.threadId,
431
+ hitlResponse: null,
432
+ services: {
433
+ layerSearch: s,
434
+ fieldSearch: n,
435
+ layersAndFieldsRegistry: this.layersAndFieldsRegistry,
436
+ agentRegistry: this.agentRegistry,
437
+ embeddingCache: r
438
+ }
439
+ },
440
+ subgraphs: !0
441
+ }, c = this.graph?.streamEvents(
442
+ {
443
+ agentExecutionContext: {
444
+ userRequest: e,
445
+ messages: this.chatHistory,
446
+ priorSteps: this.priorSteps,
447
+ sharedState: this.sharedState
448
+ }
449
+ },
450
+ a
451
+ ), d = ++this.streamEpoch;
452
+ for (yield* this.pipeStream(c, d); ; ) {
453
+ const m = (await this.graph.getState(a, { subgraphs: !0 })).tasks.find((h) => h.interrupts.length > 0)?.interrupts[0]?.value;
454
+ if (!m)
455
+ break;
456
+ this.currentInterrupt = m, this.interruptHandler = new Y(this.graph, a), yield { runId: this.threadId, timestamp: Date.now(), type: "interrupt", interrupt: m };
457
+ try {
458
+ const h = await this.interruptHandler.waitForUser(), x = ++this.streamEpoch;
459
+ yield* this.pipeStream(h, x);
460
+ } catch (h) {
461
+ if (h) {
462
+ yield {
463
+ runId: this.threadId,
464
+ timestamp: Date.now(),
465
+ type: "error",
466
+ error: { message: h?.message }
467
+ };
468
+ return;
469
+ }
470
+ yield { runId: this.threadId, timestamp: Date.now(), type: "cancelled" };
471
+ return;
472
+ }
473
+ }
474
+ const g = (await this.graph.getState(a, { subgraphs: !0 })).values;
475
+ this.chatHistory = g.agentExecutionContext.messages.length ? g.agentExecutionContext.messages : this.chatHistory, this.priorSteps = g.agentExecutionContext.priorSteps?.slice(-5) ?? [], this.sharedState = g.agentExecutionContext.sharedState ?? {}, yield {
476
+ runId: this.threadId,
477
+ timestamp: Date.now(),
478
+ type: "completed",
479
+ result: { content: g.finalOutputMessage }
480
+ };
481
+ }
482
+ /**
483
+ * Start a new conversation by clearing chat history, prior steps, and shared state.
484
+ */
485
+ newConversation() {
486
+ this.chatHistory = [], this.priorSteps = [], this.sharedState = {};
487
+ }
488
+ /**
489
+ * Generic resume for any HITL interrupt.
490
+ * The payload is whatever the UI collected (e.g. "yes", "no", layerId, etc).
491
+ */
492
+ resumeInterrupt(e) {
493
+ if (!this.currentInterrupt || !this.interruptHandler)
494
+ throw new Error("No pending interrupt to resume.");
495
+ this.interruptHandler.handle(this.currentInterrupt, e);
496
+ }
497
+ /**
498
+ * Optional: allow UI to cancel the current HITL.
499
+ */
500
+ cancelInterrupt() {
501
+ this.interruptHandler && this.interruptHandler.cancel();
502
+ }
503
+ async *pipeStream(e, s) {
504
+ for await (const n of e) {
505
+ if (s !== this.streamEpoch) {
506
+ console.log("Stale stream detected, aborting.");
507
+ break;
508
+ }
509
+ n.event === "on_custom_event" && n.name === "trace_message" ? yield { runId: this.threadId, timestamp: Date.now(), type: "trace", data: n.data } : n.name === "graph_ux_suggestion" && (yield {
510
+ runId: this.threadId,
511
+ timestamp: Date.now(),
512
+ type: "ux-suggestion",
513
+ suggestion: n.data
514
+ });
515
+ }
516
+ }
517
+ /**
518
+ * Disposes this instance by terminating the embeddings worker
519
+ * and cleaning up all related resources.
520
+ */
521
+ dispose() {
522
+ this.embeddingsWorker && (this.embeddingsWorker.terminate(), this.embeddingsWorker = void 0), this.orchestratorReady = !1;
523
+ }
524
+ }
525
+ export {
526
+ v as O,
527
+ Z as g
528
+ };
@@ -1,8 +1,8 @@
1
- /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
2
  import "../cdn/main.css";
3
3
  import { makeRuntime as e } from "@arcgis/lumina";
4
4
  import { trackAccess as s, createObservable as a, createTrackingTarget as r, runTracked as c } from "@arcgis/core/applications/Components/reactiveUtils.js";
5
- const t = e({ defaultAssetPath: "https://jsdev.arcgis.com/5.1.0-next/ai-components/", hydratedAttribute: "hydrated" }), { customElement: n, getAssetPath: i, setAssetPath: d } = t;
5
+ const t = e({ defaultAssetPath: "https://jsdev.arcgis.com/5.2.0-next/ai-components/", hydratedAttribute: "hydrated" }), { customElement: n, getAssetPath: i, setAssetPath: d } = t;
6
6
  t.t = s;
7
7
  t.o = a;
8
8
  t.c = r;
@@ -1,4 +1,4 @@
1
- /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
2
  function a(e) {
3
3
  return `message-${e}`;
4
4
  }
@@ -0,0 +1,71 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
+ import { Annotation as s } from "@langchain/langgraph/web";
3
+ const c = /* @__PURE__ */ new Set(["agentExecutionContext", "outputMessage", "summary", "status"]);
4
+ function u() {
5
+ return {
6
+ assignedTask: "",
7
+ messages: [],
8
+ priorSteps: [],
9
+ sharedState: {},
10
+ userRequest: ""
11
+ };
12
+ }
13
+ function i(r) {
14
+ const n = [...new Set([...r].filter((t) => c.has(t)))];
15
+ if (n.length !== 0)
16
+ throw new Error(`ADK custom state cannot define reserved runtime fields: ${n.join(", ")}.`);
17
+ }
18
+ function f(r) {
19
+ const n = Object.entries(r);
20
+ return Object.fromEntries(
21
+ n.map(([t, e]) => [
22
+ t,
23
+ s({
24
+ reducer: (o, a) => a,
25
+ default: () => e
26
+ })
27
+ ])
28
+ );
29
+ }
30
+ function m(r = {}) {
31
+ i(Object.keys(r));
32
+ const n = f(r);
33
+ return s.Root({
34
+ ...n,
35
+ agentExecutionContext: s({
36
+ reducer: (t, e) => ({
37
+ ...t,
38
+ ...e
39
+ }),
40
+ default: u
41
+ }),
42
+ outputMessage: s({
43
+ // Preserve the last meaningful user-facing message produced by the graph.
44
+ reducer: (t = "", e) => typeof e == "string" && e.trim() ? e : t,
45
+ default: () => ""
46
+ }),
47
+ summary: s({
48
+ // Summary is a compact orchestrator-facing outcome, so replacement semantics are enough.
49
+ reducer: (t = "", e) => typeof e == "string" ? e : t,
50
+ default: () => ""
51
+ }),
52
+ status: s({
53
+ // Keep the first meaningful status until a later node explicitly replaces it.
54
+ reducer: (t, e) => e ?? t,
55
+ default: () => {
56
+ }
57
+ })
58
+ });
59
+ }
60
+ function l(r) {
61
+ const n = /* @__PURE__ */ new Set();
62
+ for (const e of r)
63
+ for (const o of Object.keys(e.shape ?? {}))
64
+ n.add(o);
65
+ const t = Object.fromEntries([...n].map((e) => [e, void 0]));
66
+ return m(t);
67
+ }
68
+ export {
69
+ m as a,
70
+ l as c
71
+ };
@@ -0,0 +1,77 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
+ const e = `## Task: Summarize Geographic Features
3
+
4
+ You are given features from ArcGIS Feature layer for multiple layers:
5
+ {queryResponse}
6
+
7
+ ## Input
8
+
9
+ Assigned task:
10
+ {assignedTask}
11
+
12
+ Latest user request:
13
+ {userRequest}
14
+
15
+ Prior steps:
16
+ {priorSteps}
17
+
18
+ Use the assigned task as the primary instruction for the current query.
19
+ Use the latest user request as supporting context when needed.
20
+ Use prior steps only when the assigned task clearly depends on earlier results.
21
+ Use chat history only when necessary to understand conversational references, and do not override the assigned task.
22
+
23
+ ### Your goal:
24
+
25
+ 1. If the assigned task is about a **specific calculation** (e.g., average, total, count, min, max), return only the **direct numeric answer** — short and clear.
26
+ - Example: “The average price is $4.00.”
27
+ - When a value is already present in \`queryResponse\` (for example in \`details.value\` or \`summary\`), copy that value **verbatim**.
28
+ - Do NOT reformat values (including numbers, dates, and times):
29
+ - Do not add/remove grouping commas.
30
+ - Do not change decimals, round values, or change numeric type/text.
31
+ - Do not change date/time format, timezone notation, separators, or precision.
32
+
33
+ 2. If the question is more general or there are **multiple features with varying attributes**, write a **brief summary** (2–3 sentences max) that highlights key patterns or insights.
34
+
35
+ 3. The response can be per layer, or summarize based on the question.
36
+
37
+ 4. DO NOT ramble.
38
+
39
+ 5. If a \`geometryFilter\` is used, do NOT assume the feature referenced in that geometry (e.g., "ApplicationNumber = 'XYZ'") must appear in the results. It may only be used as a spatial anchor.
40
+
41
+ Only describe what _was_ found — not what was _used to search_.
42
+
43
+ 6. If no feature \`attributes\` are returned but \`totalCount\` is present, assume the spatial filter was applied correctly. There is no need to say the subset was not returned — just summarize based on the count and available context.
44
+
45
+ 7. Do not give suggestions like exporting the results as the tools are not capable to do that.
46
+
47
+ 8. Format all responses using **Markdown** suitable for chat display.
48
+
49
+ - Use bullet points for lists and use new lines (\\n) and appropriate formatting in your response.
50
+ - Use Markdown emphasis (for example, **bold**) only when it improves clarity; keep formatting minimal and readable.
51
+ - If results are best presented in rows/columns (for example, multiple features sharing the same fields), format them as a **Markdown table**.
52
+ - The table must be valid Markdown with a header row and separator row (e.g., \`| Column |\` and \`| --- |\`).
53
+ - Do not use plain aligned text, CSV-like output, or code fences for tabular data.
54
+
55
+ 9. Do NOT say things like "I can't change the map", "I can't highlight features", or suggest WHERE clauses for the user to run manually. A separate system handles map visualization automatically after this step. Your job is ONLY to summarize the data returned by the query.
56
+
57
+ In all cases:
58
+
59
+ - Focus on **notable attribute values**, **commonalities or differences**, and **interesting trends**.
60
+ - If the feature list is empty or not meaningful, state that clearly.
61
+
62
+ ### STRICT OUTPUT RULES
63
+
64
+ - Do NOT ask follow-up questions.
65
+ - Do NOT offer additional actions or suggestions.
66
+ - Do NOT explain what you can do next.
67
+ - Do NOT add conversational phrases.
68
+ - Do NOT add any text beyond the requested summary or numeric answer.
69
+ - End the response immediately after the summary.
70
+ - Do NOT include introductory phrases (e.g., "Found", "Here are", "The results show").
71
+ - Do NOT restate the assigned task or user’s question.
72
+ - Use Markdown formatting for the response.
73
+ - When presenting tabular data, output a valid Markdown table.
74
+ `;
75
+ export {
76
+ e as default
77
+ };