@arcgis/ai-components 5.2.0-next.3 → 5.2.0-next.30

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 (207) hide show
  1. package/dist/agent-utils/FunctionAgent.d.ts +2 -2
  2. package/dist/agent-utils/LLMAgent.d.ts +2 -2
  3. package/dist/agent-utils/LLMAgent.js +23 -22
  4. package/dist/agent-utils/WorkflowAgent.d.ts +2 -2
  5. package/dist/agent-utils/index.d.ts +177 -0
  6. package/dist/agent-utils/index.js +167 -0
  7. package/dist/agent-utils/middlewares/trace.d.ts +2 -0
  8. package/dist/agent-utils/middlewares/trace.js +25 -33
  9. package/dist/agent-utils/tools/FunctionTool.d.ts +2 -2
  10. package/dist/agent-utils/types.d.ts +36 -7
  11. package/dist/agent-utils/workflows/ConditionalWorkflow.d.ts +2 -2
  12. package/dist/agent-utils/workflows/LoopWorkflow.d.ts +2 -2
  13. package/dist/agent-utils/workflows/ParallelWorkflow.d.ts +2 -2
  14. package/dist/agent-utils/workflows/RouterWorkflow.d.ts +2 -2
  15. package/dist/agent-utils/workflows/SequentialWorkflow.d.ts +2 -2
  16. package/dist/agent-utils/workflows/SwitchWorkflow.d.ts +2 -2
  17. package/dist/cdn/27NEUQN3.js +2 -0
  18. package/dist/cdn/2NMR43NW.js +2 -0
  19. package/dist/cdn/3AXQTBIA.js +134 -0
  20. package/dist/cdn/434TAA3J.js +2 -0
  21. package/dist/cdn/4I4MCV7V.js +71 -0
  22. package/dist/cdn/4RZPOYZ7.js +9 -0
  23. package/dist/cdn/5SBLS4NW.js +2 -0
  24. package/dist/cdn/{AMP6IALT.js → 5W7S2RS4.js} +1 -1
  25. package/dist/cdn/6LZ6GOHF.js +56 -0
  26. package/dist/cdn/7IFCBXV7.js +2 -0
  27. package/dist/cdn/ADYIXCSG.js +2 -0
  28. package/dist/cdn/AFLQZIKS.js +180 -0
  29. package/dist/cdn/AMVOJNWN.js +2 -0
  30. package/dist/cdn/C7E7MJSR.js +2 -0
  31. package/dist/cdn/CAECQD75.js +2 -0
  32. package/dist/cdn/CIW3QMKV.js +2 -0
  33. package/dist/cdn/CJIV4KJZ.js +179 -0
  34. package/dist/cdn/CVHJMR5X.js +2 -0
  35. package/dist/cdn/DEAYZ3MK.js +2 -0
  36. package/dist/cdn/{H7422XUG.js → E2HENO3T.js} +1 -1
  37. package/dist/cdn/E7TMP4YV.js +3 -0
  38. package/dist/cdn/EBRNMPPO.js +48 -0
  39. package/dist/cdn/FWU6DFIB.js +2 -0
  40. package/dist/cdn/HBYZSLEZ.js +22 -0
  41. package/dist/cdn/HOCTVCHH.js +2 -0
  42. package/dist/cdn/{4HU7735A.js → HXOSLGWU.js} +6 -4
  43. package/dist/cdn/I64KIZG3.js +2 -0
  44. package/dist/cdn/IB4WTK74.js +2 -0
  45. package/dist/cdn/IC5P5NYY.js +2 -0
  46. package/dist/cdn/IGZWQJW7.js +3 -0
  47. package/dist/cdn/IKEF7ZHH.js +181 -0
  48. package/dist/cdn/IXAKT6L3.js +2 -0
  49. package/dist/cdn/JEIMRNYM.js +2 -0
  50. package/dist/cdn/JN744CAW.js +2 -0
  51. package/dist/cdn/KRE4U7V7.js +2 -0
  52. package/dist/cdn/{NE7E52YR.js → KTK4HNL2.js} +8 -2
  53. package/dist/cdn/L77BTGXY.js +2 -0
  54. package/dist/cdn/LEPJUN3X.js +22 -0
  55. package/dist/cdn/LODKJRS4.js +2 -0
  56. package/dist/cdn/M3SWPT3M.js +2 -0
  57. package/dist/cdn/MAV3DW27.js +4 -0
  58. package/dist/cdn/NOJYPREL.js +3 -0
  59. package/dist/cdn/NXKKG5TK.js +2 -0
  60. package/dist/cdn/O3F47IO5.js +2 -0
  61. package/dist/cdn/O7TGCM5P.js +6 -0
  62. package/dist/cdn/PBTINZTK.js +65 -0
  63. package/dist/cdn/PKHQW7QU.js +18 -0
  64. package/dist/cdn/PSWI3MFB.js +2 -0
  65. package/dist/cdn/Q73PK7Q7.js +2 -0
  66. package/dist/cdn/Q7TL5Q5N.js +2 -0
  67. package/dist/cdn/QSA4T3BU.js +2 -0
  68. package/dist/cdn/RMLXVQZ5.js +2 -0
  69. package/dist/cdn/RX45PCYB.js +9 -0
  70. package/dist/cdn/S27EJSLC.js +14 -0
  71. package/dist/cdn/SMADRJ67.js +2 -0
  72. package/dist/cdn/{ZLXN7NMF.js → T537PKP4.js} +9 -7
  73. package/dist/cdn/{X2ZDYHCG.js → TNMXWUXU.js} +9 -4
  74. package/dist/cdn/TSEQVE2H.js +36 -0
  75. package/dist/cdn/VKU4WAQV.js +2 -0
  76. package/dist/cdn/W2IHPJ54.js +34 -0
  77. package/dist/cdn/W2JAKE2M.js +2 -0
  78. package/dist/cdn/WAVKMZA6.js +2 -0
  79. package/dist/cdn/WDE3HN7K.js +2 -0
  80. package/dist/cdn/WH6QQK6N.js +2 -0
  81. package/dist/cdn/WNS5ZUF5.js +2 -0
  82. package/dist/cdn/{FL4W4VYN.js → X7GE26KU.js} +16 -0
  83. package/dist/cdn/XVQJBUMY.js +2 -0
  84. package/dist/cdn/YJ3QQXF6.js +2 -0
  85. package/dist/cdn/YRBANNQ5.js +2 -0
  86. package/dist/cdn/YYY7HKYX.js +2 -0
  87. package/dist/cdn/ZEYIBYSF.js +66 -0
  88. package/dist/cdn/ZMSJQB65.js +99 -0
  89. package/dist/cdn/ZOSUDIJH.js +2 -0
  90. package/dist/cdn/ZPLFFLPF.js +2 -0
  91. package/dist/cdn/agent-utils/index.js +2 -0
  92. package/dist/cdn/agent-utils/middlewares/humanInTheLoop.js +3 -0
  93. package/dist/cdn/agent-utils/middlewares/middleware.js +2 -0
  94. package/dist/cdn/agent-utils/middlewares/trace.js +2 -0
  95. package/dist/cdn/index.js +1 -1
  96. package/dist/cdn/main.css +1 -1
  97. package/dist/chunks/adapter.js +1794 -1597
  98. package/dist/chunks/arcgisKnowledgeGraph.js +126 -71
  99. package/dist/chunks/arcgis_knowledge_current_lc_context.js +19 -2
  100. package/dist/chunks/arcgis_knowledge_current_map_context.js +31 -2
  101. package/dist/chunks/arcgis_knowledge_cypher_query_prompt.js +102 -0
  102. package/dist/chunks/arcgis_knowledge_summarize_result_prompt.js +116 -27
  103. package/dist/chunks/converterUtils.js +39 -32
  104. package/dist/chunks/dataExplorationGraph.js +139 -113
  105. package/dist/chunks/data_explore_query_prompt.js +9 -4
  106. package/dist/chunks/generateLayerDescriptions.js +231 -191
  107. package/dist/chunks/helpGraph.js +17 -13
  108. package/dist/chunks/help_prompt.js +34 -17
  109. package/dist/chunks/index.js +11 -0
  110. package/dist/chunks/intent_prompt.js +16 -0
  111. package/dist/chunks/layerStylingGraph.js +24 -20
  112. package/dist/chunks/navigationGraph.js +33 -28
  113. package/dist/chunks/navigation_intent_prompt.js +8 -2
  114. package/dist/chunks/orchestrator.js +267 -226
  115. package/dist/chunks/slottableRequestUtils.js +3 -7
  116. package/dist/chunks/state.js +1 -1
  117. package/dist/chunks/summarize_query_response_prompt.js +9 -7
  118. package/dist/chunks/toolCallResponse.js +12 -9
  119. package/dist/chunks/utils2.js +8 -8
  120. package/dist/components/arcgis-assistant/customElement.d.ts +27 -0
  121. package/dist/components/arcgis-assistant/customElement.js +385 -152
  122. package/dist/components/arcgis-assistant/index.js +2 -3
  123. package/dist/components/arcgis-assistant/types.d.ts +14 -1
  124. package/dist/components/arcgis-assistant-agent/customElement.js +5 -1
  125. package/dist/components/arcgis-assistant-chat/customElement.d.ts +8 -2
  126. package/dist/components/arcgis-assistant-chat/customElement.js +23 -18
  127. package/dist/components/arcgis-assistant-chat-entry/customElement.d.ts +4 -1
  128. package/dist/components/arcgis-assistant-chat-entry/customElement.js +25 -18
  129. package/dist/components/arcgis-assistant-data-exploration-agent/customElement.js +11 -5
  130. package/dist/components/arcgis-assistant-help-agent/customElement.js +8 -2
  131. package/dist/components/arcgis-assistant-interrupt/customElement.d.ts +4 -1
  132. package/dist/components/arcgis-assistant-interrupt/customElement.js +12 -8
  133. package/dist/components/arcgis-assistant-interrupt-preview/customElement.js +20 -0
  134. package/dist/components/arcgis-assistant-interrupt-preview/index.js +2 -0
  135. package/dist/components/arcgis-assistant-knowledge-agent/customElement.d.ts +7 -7
  136. package/dist/components/arcgis-assistant-knowledge-agent/customElement.js +17 -11
  137. package/dist/components/arcgis-assistant-layer-styling-agent/customElement.js +10 -4
  138. package/dist/components/arcgis-assistant-message/customElement.d.ts +23 -0
  139. package/dist/components/arcgis-assistant-message/customElement.js +28 -26
  140. package/dist/components/arcgis-assistant-message/index.d.ts +1 -0
  141. package/dist/components/arcgis-assistant-message/index.js +2 -0
  142. package/dist/components/arcgis-assistant-message-block/customElement.d.ts +1 -1
  143. package/dist/components/arcgis-assistant-message-block/customElement.js +18 -11
  144. package/dist/components/arcgis-assistant-message-block/index.js +1 -0
  145. package/dist/components/arcgis-assistant-message-feedback/customElement.d.ts +4 -1
  146. package/dist/components/arcgis-assistant-message-footer/customElement.d.ts +4 -1
  147. package/dist/components/arcgis-assistant-message-loading/customElement.d.ts +8 -1
  148. package/dist/components/arcgis-assistant-message-loading/customElement.js +8 -8
  149. package/dist/components/arcgis-assistant-message-loading/index.js +1 -0
  150. package/dist/components/arcgis-assistant-message-log/customElement.d.ts +4 -1
  151. package/dist/components/arcgis-assistant-message-read-aloud/customElement.d.ts +4 -1
  152. package/dist/components/arcgis-assistant-message-text/customElement.d.ts +5 -1
  153. package/dist/components/arcgis-assistant-message-text/customElement.js +12 -12
  154. package/dist/components/arcgis-assistant-navigation-agent/customElement.js +11 -5
  155. package/dist/components/arcgis-assistant-speech-input/customElement.d.ts +6 -1
  156. package/dist/components/arcgis-assistant-suggested-prompts/customElement.d.ts +4 -1
  157. package/dist/components/arcgis-assistant-suggested-prompts/customElement.js +8 -8
  158. package/dist/components/arcgis-assistant-user-message/customElement.d.ts +4 -1
  159. package/dist/components/arcgis-assistant-user-message/customElement.js +10 -8
  160. package/dist/docs/api.json +1 -1
  161. package/dist/docs/docs.json +1 -1
  162. package/dist/docs/vscode.html-custom-data.json +1 -1
  163. package/dist/docs/web-types.json +1 -1
  164. package/dist/index.d.ts +4 -0
  165. package/dist/loader.js +7 -6
  166. package/dist/types/lumina.d.ts +11 -5
  167. package/dist/types/preact.d.ts +12 -5
  168. package/dist/types/react.d.ts +13 -5
  169. package/dist/types/stencil.d.ts +11 -5
  170. package/dist/utils/index.d.ts +85 -42
  171. package/dist/utils/index.js +54 -49
  172. package/package.json +8 -7
  173. package/dist/cdn/2AXF774U.js +0 -2
  174. package/dist/cdn/3PKJWIC3.js +0 -2
  175. package/dist/cdn/462JBSEV.js +0 -422
  176. package/dist/cdn/5QAHYX7Y.js +0 -5
  177. package/dist/cdn/7BCR6TUO.js +0 -2
  178. package/dist/cdn/7GH7VSB2.js +0 -2
  179. package/dist/cdn/7PLV4QH6.js +0 -2
  180. package/dist/cdn/AO7BQHKC.js +0 -2
  181. package/dist/cdn/AXDZBBNL.js +0 -45
  182. package/dist/cdn/DDLZOMUY.js +0 -2
  183. package/dist/cdn/DHOVCT6R.js +0 -2
  184. package/dist/cdn/F2AHA4GB.js +0 -54
  185. package/dist/cdn/FHVXO2WG.js +0 -166
  186. package/dist/cdn/FX5JFRDL.js +0 -2
  187. package/dist/cdn/GSEPHN3A.js +0 -106
  188. package/dist/cdn/HB5A5R2E.js +0 -2
  189. package/dist/cdn/JY6LLOUJ.js +0 -22
  190. package/dist/cdn/KMQ3SP4I.js +0 -5
  191. package/dist/cdn/MDVYQQUG.js +0 -14
  192. package/dist/cdn/MH5RPXHM.js +0 -2
  193. package/dist/cdn/NAUXSHIE.js +0 -72
  194. package/dist/cdn/NVI3I46B.js +0 -2
  195. package/dist/cdn/OAVEHGB6.js +0 -2
  196. package/dist/cdn/OH64RMOR.js +0 -4
  197. package/dist/cdn/ON2V5XI2.js +0 -3
  198. package/dist/cdn/P6OPJQMC.js +0 -3
  199. package/dist/cdn/QR54T33D.js +0 -2
  200. package/dist/cdn/RVOAPUBN.js +0 -2
  201. package/dist/cdn/S6W6HV4T.js +0 -36
  202. package/dist/cdn/SXDLXCIM.js +0 -2
  203. package/dist/cdn/USMDJUFS.js +0 -2
  204. package/dist/cdn/V2P4AIGG.js +0 -2
  205. package/dist/cdn/V5YEZSRY.js +0 -16
  206. package/dist/cdn/Y333DGV6.js +0 -2
  207. package/dist/cdn/YY2SBO3V.js +0 -2
@@ -1,43 +1,45 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import { c as d } from "../../chunks/runtime.js";
3
- import { css as m, html as a } from "lit";
4
- import { LitElement as g, nothing as i } from "@arcgis/lumina";
5
- import { useSlottableRequest as b } from "@arcgis/lumina/controllers";
6
- import { g as c, a as r } from "../../chunks/slottableRequestUtils.js";
7
- const f = m`:host{display:block;container-type:inline-size}.container{display:flex;flex-direction:column;align-items:flex-start;gap:var(--calcite-spacing-sm);width:100%;text-align:left}.icon{padding:var(--calcite-spacing-sm);border-radius:var(--calcite-spacing-xl);background:var(--calcite-color-brand);color:var(--calcite-color-foreground-1)}.content-container{display:flex;flex:1;flex-direction:column;width:100%;gap:var(--calcite-spacing-md)}.content,.blocks{display:flex;flex-direction:column;gap:var(--calcite-spacing-sm)}@container (min-width: 480px){.container{max-width:80%}}`;
8
- function p({ message: t }) {
9
- const e = /* @__PURE__ */ new Map();
10
- if (!t)
11
- return e;
12
- const s = c(t.id);
13
- return e.set(s, { data: { message: t }, name: "message", slotName: s }), t.blocks?.forEach((l, o) => {
14
- const n = r(t.id, o);
15
- e.set(n, { data: { block: l, index: o, message: t }, name: "block", slotName: n });
16
- }), e;
2
+ import { c as o } from "../../chunks/runtime.js";
3
+ import { css as l, html as e } from "lit";
4
+ import { LitElement as c, nothing as d } from "@arcgis/lumina";
5
+ import { useSlottableRequest as g } from "@arcgis/lumina/controllers";
6
+ import { g as r } from "../../chunks/slottableRequestUtils.js";
7
+ const m = l`:host{display:block;container-type:inline-size}.container{display:flex;flex-direction:column;align-items:flex-start;gap:var(--calcite-spacing-sm);width:100%;text-align:left}.icon{padding:var(--calcite-spacing-sm);border-radius:var(--calcite-spacing-xl);background:var(--calcite-color-brand);color:var(--calcite-color-foreground-1)}.content-container{display:flex;flex:1;flex-direction:column;width:100%;gap:var(--calcite-spacing-md)}.content,.blocks{display:flex;flex-direction:column;gap:var(--calcite-spacing-sm)}.block-pending{display:flex;justify-content:center;align-items:center;padding:var(--calcite-spacing-sm);background:linear-gradient(90deg,color-mix(in srgb,var(--calcite-color-foreground-2) 65%,transparent),color-mix(in srgb,var(--calcite-color-foreground-3) 85%,transparent),color-mix(in srgb,var(--calcite-color-foreground-2) 65%,transparent));background-size:200% 100%;animation:assistant-message-loading-shimmer 2s ease-in-out infinite;border-radius:var(--calcite-border-radius);min-height:100px}.message-error{font-style:italic}@container (min-width: 480px){.container{max-width:80%}}@keyframes assistant-message-loading-shimmer{0%{background-position:-150% 0}to{background-position:150% 0}}@media(prefers-reduced-motion){.block-pending{animation:none}}`;
8
+ function b({ message: t }) {
9
+ const s = /* @__PURE__ */ new Map();
10
+ return t && t.blocks?.forEach((a, i) => {
11
+ if (!a.isPending) {
12
+ const n = r(t.id, i);
13
+ s.set(n, { data: { block: a, index: i, message: t }, name: "block", slotName: n });
14
+ }
15
+ }), s;
17
16
  }
18
- class h extends g {
17
+ class p extends c {
19
18
  constructor() {
20
- super(...arguments), this.arcgisSlottableRequest = b(this, ["message"], p), this.feedbackEnabled = !1, this.logEnabled = !1, this.copyEnabled = !1, this.readAloudEnabled = !1, this.footerDisabled = !1;
19
+ super(...arguments), this.arcgisSlottableRequest = g(this, ["message"], b), this.feedbackEnabled = !1, this.logEnabled = !1, this.copyEnabled = !1, this.readAloudEnabled = !1, this.footerDisabled = !1, this.assistantAvatarEnabled = !1;
21
20
  }
22
21
  static {
23
- this.properties = { feedbackEnabled: 5, logEnabled: 5, copyEnabled: 5, readAloudEnabled: 5, footerDisabled: 5, message: 0 };
22
+ this.properties = { _isStreaming: 16, feedbackEnabled: 5, logEnabled: 5, copyEnabled: 5, readAloudEnabled: 5, footerDisabled: 5, message: 0, assistantAvatarEnabled: 5 };
24
23
  }
25
24
  static {
26
- this.styles = f;
25
+ this.styles = m;
26
+ }
27
+ get _isStreaming() {
28
+ return !!this.message?.isStreaming;
27
29
  }
28
30
  _renderContent() {
29
- const e = this.message, s = e?.id;
30
- if (s)
31
- return a`<div class="content"><slot name=${c(s) ?? i}></slot>${e.blocks?.length ? a`<div class="blocks">${e.blocks.map((l, o) => a`<slot name=${r(s, o) ?? i}></slot>`)}</div>` : null}</div>`;
31
+ const s = this.message, a = s?.id;
32
+ if (a)
33
+ return e`<div class="content"><arcgis-assistant-interrupt-preview .interrupts=${this.message?.interrupts}></arcgis-assistant-interrupt-preview>${s.blocks?.length ? e`<div class="blocks">${s.blocks.map((i, n) => i.isPending && i.type !== "text" ? e`<div class="block-pending"></div>` : e`<slot name=${r(a, n) ?? d}></slot>`)}</div>` : null}</div>`;
32
34
  }
33
35
  _renderFooter() {
34
- return a`<arcgis-assistant-message-footer .message=${this.message} .feedbackEnabled=${this.feedbackEnabled} .logEnabled=${this.logEnabled} .copyEnabled=${this.copyEnabled} .readAloudEnabled=${this.readAloudEnabled}></arcgis-assistant-message-footer>`;
36
+ return e`<arcgis-assistant-message-footer .message=${this.message} .feedbackEnabled=${this.feedbackEnabled} .logEnabled=${this.logEnabled} .copyEnabled=${this.copyEnabled} .readAloudEnabled=${this.readAloudEnabled}></arcgis-assistant-message-footer>`;
35
37
  }
36
38
  render() {
37
- return a`<div class="container"><slot name=icon><calcite-icon icon=effects class="icon" scale=s></calcite-icon></slot><div class="content-container"><slot name=content>${this._renderContent()}</slot>${this.footerDisabled ? null : a`<slot name=footer>${this._renderFooter()}</slot>`}</div></div>`;
39
+ return e`<div class="container">${this.assistantAvatarEnabled ? e`<slot name=icon><calcite-icon icon=effects class="icon" scale=s></calcite-icon></slot>` : null}<div class="content-container"><slot name=content>${this._renderContent()}</slot>${this.message?.error ? e`<div class="message-error">${this.message.error}</div>` : null}${this._isStreaming ? e`<div class="streaming-indicator"><calcite-loader label=loading inline></calcite-loader></div>` : null}${!this.footerDisabled && !this._isStreaming ? e`<slot name=footer>${this._renderFooter()}</slot>` : null}</div></div>`;
38
40
  }
39
41
  }
40
- d("arcgis-assistant-message", h);
42
+ o("arcgis-assistant-message", p);
41
43
  export {
42
- h as ArcgisAssistantMessage
44
+ p as ArcgisAssistantMessage
43
45
  };
@@ -0,0 +1 @@
1
+ export * from "./customElement.js";
@@ -1,3 +1,5 @@
1
+ import "../arcgis-assistant-interrupt-preview/index.js";
1
2
  import "../arcgis-assistant-message-footer/index.js";
2
3
  import "@esri/calcite-components/components/calcite-icon";
4
+ import "@esri/calcite-components/components/calcite-loader";
3
5
  export * from "./customElement.js";
@@ -2,7 +2,7 @@
2
2
  import type { PublicLitElement as LitElement } from "@arcgis/lumina";
3
3
  import type { UXSuggestion } from "../../utils/index.js";
4
4
 
5
- /** A primitive for rendering a default assistant output block. */
5
+ /** Renders one structured assistant block. Offers default block rendering for supported suggestion-style blocks. */
6
6
  export abstract class ArcgisAssistantMessageBlock extends LitElement {
7
7
  accessor block: UXSuggestion | undefined;
8
8
  }
@@ -1,29 +1,36 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import { c as o } from "../../chunks/runtime.js";
3
- import { css as i, html as p } from "lit";
4
- import { LitElement as n } from "@arcgis/lumina";
5
- const l = i`:host{display:block}`;
6
- class a extends n {
2
+ import { c as n } from "../../chunks/runtime.js";
3
+ import { css as i, html as r } from "lit";
4
+ import { LitElement as o } from "@arcgis/lumina";
5
+ const p = i`:host{display:block}`;
6
+ class c extends o {
7
7
  static {
8
8
  this.properties = { block: 0 };
9
9
  }
10
10
  static {
11
- this.styles = l;
11
+ this.styles = p;
12
12
  }
13
13
  _renderSuggestedPrompts(s) {
14
14
  if (s.type !== "suggested-prompts")
15
15
  return null;
16
- const t = s.data?.prompts, e = Array.isArray(t) ? t.filter((r) => typeof r == "string") : [];
17
- return e.length ? p`<arcgis-assistant-suggested-prompts .prompts=${e}></arcgis-assistant-suggested-prompts>` : null;
16
+ const t = s.data?.prompts, e = Array.isArray(t) ? t.filter((a) => typeof a == "string") : [];
17
+ return e.length ? r`<arcgis-assistant-suggested-prompts .prompts=${e}></arcgis-assistant-suggested-prompts>` : null;
18
18
  }
19
19
  _renderBlock(s) {
20
- return s.type === "suggested-prompts" ? this._renderSuggestedPrompts(s) : null;
20
+ switch (s.type) {
21
+ case "suggested-prompts":
22
+ return this._renderSuggestedPrompts(s);
23
+ case "text":
24
+ return r`<arcgis-assistant-message-text .content=${s.data?.content} .parts=${s.data?.parts}></arcgis-assistant-message-text>`;
25
+ default:
26
+ return null;
27
+ }
21
28
  }
22
29
  render() {
23
30
  return this.block ? this._renderBlock(this.block) : null;
24
31
  }
25
32
  }
26
- o("arcgis-assistant-message-block", a);
33
+ n("arcgis-assistant-message-block", c);
27
34
  export {
28
- a as ArcgisAssistantMessageBlock
35
+ c as ArcgisAssistantMessageBlock
29
36
  };
@@ -1,2 +1,3 @@
1
1
  import "../arcgis-assistant-suggested-prompts/index.js";
2
+ import "../arcgis-assistant-message-text/index.js";
2
3
  export * from "./customElement.js";
@@ -3,7 +3,10 @@ import type { PublicLitElement as LitElement } from "@arcgis/lumina";
3
3
  import type { AssistantMessage } from "../arcgis-assistant/types.js";
4
4
  import type { T9nMeta } from "@arcgis/lumina/controllers";
5
5
 
6
- /** @internal */
6
+ /**
7
+ * Handles thumbs up or down feedback UI. Use it to capture helpful or not helpful signals per response.
8
+ * Offers feedback toggle behavior and emits feedback updates for the associated assistant message.
9
+ */
7
10
  export abstract class ArcgisAssistantMessageFeedback extends LitElement {
8
11
  /** @internal */
9
12
  protected _messages: {
@@ -3,7 +3,10 @@ import type { PublicLitElement as LitElement } from "@arcgis/lumina";
3
3
  import type { AssistantMessage } from "../arcgis-assistant/types.js";
4
4
  import type { T9nMeta } from "@arcgis/lumina/controllers";
5
5
 
6
- /** @internal */
6
+ /**
7
+ * Renders the action row under an assistant message. Use it when you want feedback, log, copy, or read-aloud controls.
8
+ * Offers one footer surface that composes common assistant response actions.
9
+ */
7
10
  export abstract class ArcgisAssistantMessageFooter extends LitElement {
8
11
  /** @internal */
9
12
  protected _messages: {
@@ -1,8 +1,15 @@
1
1
  /// <reference path="../../index.d.ts" />
2
2
  import type { PublicLitElement as LitElement } from "@arcgis/lumina";
3
+ import type { AssistantMessage } from "../arcgis-assistant/types.js";
3
4
 
4
- /** @internal */
5
+ /**
6
+ * Shows in-progress assistant response UI. Use it to display thinking or loading state while work is running.
7
+ * Offers a default loading message shell with icon/content slot overrides.
8
+ */
5
9
  export abstract class ArcgisAssistantMessageLoading extends LitElement {
10
+ /** @default false */
11
+ accessor assistantAvatarEnabled: boolean;
12
+ accessor interrupts: AssistantMessage["interrupts"] | undefined;
6
13
  /** @default false */
7
14
  accessor loading: boolean;
8
15
  /** @default "" */
@@ -1,23 +1,23 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import { c as a } from "../../chunks/runtime.js";
3
- import { css as e, html as s } from "lit";
2
+ import { c as s } from "../../chunks/runtime.js";
3
+ import { css as e, html as a } from "lit";
4
4
  import { LitElement as i } from "@arcgis/lumina";
5
5
  const t = e`:host{display:contents}.icon{padding:var(--calcite-spacing-sm);border-radius:var(--calcite-spacing-xl);background:var(--calcite-color-brand);color:var(--calcite-color-foreground-1)}.loading-container{display:flex;flex-direction:column;gap:var(--calcite-spacing-sm);padding:0 var(--calcite-spacing-sm)}.loading{display:flex;align-items:center;gap:var(--calcite-spacing-sm)}.text{font-style:italic;word-wrap:break-word;word-break:break-all;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;line-clamp:1;-webkit-box-orient:vertical}.skeleton-block{display:flex;flex-direction:column;gap:var(--calcite-spacing-sm);width:100%}.skeleton-text{display:block;height:.95em;border-radius:var(--calcite-border-radius);background:linear-gradient(90deg,color-mix(in srgb,var(--calcite-color-foreground-2) 65%,transparent),color-mix(in srgb,var(--calcite-color-foreground-3) 85%,transparent),color-mix(in srgb,var(--calcite-color-foreground-2) 65%,transparent));background-size:200% 100%;animation:assistant-message-loading-shimmer 1.2s ease-in-out infinite;width:85%}.skeleton-text:last-child{width:70%}@keyframes assistant-message-loading-shimmer{0%{background-position:-150% 0}to{background-position:150% 0}}@media(prefers-reduced-motion){.skeleton-text{animation:none}}`;
6
- class o extends i {
6
+ class n extends i {
7
7
  constructor() {
8
- super(...arguments), this.loading = !1, this.loadingMessage = "";
8
+ super(...arguments), this.loading = !1, this.loadingMessage = "", this.assistantAvatarEnabled = !1;
9
9
  }
10
10
  static {
11
- this.properties = { loading: 5, loadingMessage: 1 };
11
+ this.properties = { loading: 5, loadingMessage: 1, assistantAvatarEnabled: 5, interrupts: 0 };
12
12
  }
13
13
  static {
14
14
  this.styles = t;
15
15
  }
16
16
  render() {
17
- return this.loading ? s`<arcgis-assistant-message footer-disabled><slot name=icon slot=icon><calcite-icon class="icon" icon=effects scale=s></calcite-icon></slot><slot name=content slot=content><div class="loading-container"><div class="loading"><calcite-loader label=loading inline></calcite-loader><div class="text">${this.loadingMessage}</div></div><div class="skeleton-block"><span class="skeleton-text"></span><span class="skeleton-text"></span></div></div></slot></arcgis-assistant-message>` : null;
17
+ return this.loading ? a`<arcgis-assistant-message footer-disabled>${this.assistantAvatarEnabled ? a`<slot name=icon slot=icon><calcite-icon class="icon" icon=effects scale=s></calcite-icon></slot>` : null}<slot name=content slot=content><arcgis-assistant-interrupt-preview .interrupts=${this.interrupts}></arcgis-assistant-interrupt-preview><div class="loading-container"><div class="loading"><calcite-loader label=loading inline></calcite-loader><div class="text">${this.loadingMessage}</div></div><div class="skeleton-block"><span class="skeleton-text"></span><span class="skeleton-text"></span></div></div></slot></arcgis-assistant-message>` : null;
18
18
  }
19
19
  }
20
- a("arcgis-assistant-message-loading", o);
20
+ s("arcgis-assistant-message-loading", n);
21
21
  export {
22
- o as ArcgisAssistantMessageLoading
22
+ n as ArcgisAssistantMessageLoading
23
23
  };
@@ -1,4 +1,5 @@
1
1
  import "../arcgis-assistant-message/index.js";
2
2
  import "@esri/calcite-components/components/calcite-icon";
3
+ import "../arcgis-assistant-interrupt-preview/index.js";
3
4
  import "@esri/calcite-components/components/calcite-loader";
4
5
  export * from "./customElement.js";
@@ -1,7 +1,10 @@
1
1
  /// <reference path="../../index.d.ts" />
2
2
  import type { PublicLitElement as LitElement } from "@arcgis/lumina";
3
3
 
4
- /** @internal */
4
+ /**
5
+ * Renders expandable execution log details. Use it when exposing agent or tool trace output.
6
+ * Offers collapsible log entry rendering for debugging and troubleshooting.
7
+ */
5
8
  export abstract class ArcgisAssistantMessageLog extends LitElement {
6
9
  accessor log: string[] | undefined;
7
10
  /** @default false */
@@ -3,7 +3,10 @@ import type { PublicLitElement as LitElement } from "@arcgis/lumina";
3
3
  import type { AssistantMessage } from "../arcgis-assistant/types.js";
4
4
  import type { T9nMeta } from "@arcgis/lumina/controllers";
5
5
 
6
- /** @internal */
6
+ /**
7
+ * Adds text-to-speech playback controls. Use it to read assistant responses aloud.
8
+ * Offers read-aloud start/stop behavior with supported-state handling.
9
+ */
7
10
  export abstract class ArcgisAssistantMessageReadAloud extends LitElement {
8
11
  /** @internal */
9
12
  protected _messages: {
@@ -1,7 +1,11 @@
1
1
  /// <reference path="../../index.d.ts" />
2
2
  import type { PublicLitElement as LitElement } from "@arcgis/lumina";
3
3
 
4
- /** @internal */
4
+ /**
5
+ * Renders assistant message text content. Use it when the block is plain text output.
6
+ * Offers sanitized rich-text rendering for assistant-generated message content.
7
+ */
5
8
  export abstract class ArcgisAssistantMessageText extends LitElement {
6
9
  accessor content: string | undefined;
10
+ accessor parts: string[] | undefined;
7
11
  }
@@ -1,22 +1,22 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import { c as t } from "../../chunks/runtime.js";
3
- import { css as e, html as c } from "lit";
4
- import { LitElement as a } from "@arcgis/lumina";
5
- import { unsafeHTML as o } from "lit/directives/unsafe-html.js";
6
- import { p as r } from "../../chunks/converterUtils.js";
7
- const i = e`.container{color:var(--calcite-color-text-1)}.content>*{margin:0}.content>*+*{margin-block-start:var(--calcite-spacing-sm)}.content :is(ol,ul){padding-inline-start:var(--calcite-spacing-lg)}.content>calcite-table{display:block;max-width:100%}.content pre{background-color:var(--calcite-color-foreground-1);padding:var(--calcite-spacing-sm);border-radius:var(--calcite-border-radius);color:var(--calcite-color-text-1);direction:ltr;max-width:100%;overflow:auto}.content pre code{display:block;white-space:pre;font-family:var(--calcite-code-family)}`;
8
- class s extends a {
2
+ import { c as r } from "../../chunks/runtime.js";
3
+ import { css as i, html as t } from "lit";
4
+ import { LitElement as c } from "@arcgis/lumina";
5
+ import { unsafeHTML as a } from "lit/directives/unsafe-html.js";
6
+ import { a as s, p as o } from "../../chunks/converterUtils.js";
7
+ const n = i`.container{color:var(--calcite-color-text-1)}.content>*{margin:0}.content>*+*{margin-block-start:var(--calcite-spacing-sm)}.content :is(ol,ul){padding-inline-start:var(--calcite-spacing-lg)}.content>calcite-table{display:block;max-width:100%}.content pre{background-color:var(--calcite-color-foreground-1);padding:var(--calcite-spacing-sm);border-radius:var(--calcite-border-radius);color:var(--calcite-color-text-1);direction:ltr;max-width:100%;overflow:auto}.content pre code{display:block;white-space:pre;font-family:var(--calcite-code-family)}.part{animation:part-reveal calc(3 * var(--calcite-animation-timing)) ease-out}@keyframes part-reveal{0%{opacity:0;transform:translateY(var(--calcite-size-fixed-xxs))}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.part{animation:none}}`;
8
+ class l extends c {
9
9
  static {
10
- this.properties = { content: 1 };
10
+ this.properties = { content: 1, parts: 0 };
11
11
  }
12
12
  static {
13
- this.styles = i;
13
+ this.styles = n;
14
14
  }
15
15
  render() {
16
- return c`<div class="container"><div class="content">${o(r(this.content))}</div></div>`;
16
+ return t`<div class="container"><div class="content">${this.parts?.map((e) => t`<span class="part">${a(s(e))}</span>`) ?? a(o(this.content))}</div></div>`;
17
17
  }
18
18
  }
19
- t("arcgis-assistant-message-text", s);
19
+ r("arcgis-assistant-message-text", l);
20
20
  export {
21
- s as ArcgisAssistantMessageText
21
+ l as ArcgisAssistantMessageText
22
22
  };
@@ -6,10 +6,12 @@ import "@langchain/langgraph/web";
6
6
  import "../../chunks/adapter.js";
7
7
  import "@arcgis/core/identity/IdentityManager.js";
8
8
  import "@arcgis/core/portal/Portal.js";
9
+ import "@arcgis/toolkit/string";
9
10
  import "../../chunks/generateLayerDescriptions.js";
10
11
  import "@langchain/core/messages";
11
12
  import "@langchain/core/callbacks/dispatch/web";
12
13
  import "@langchain/openai";
14
+ import "@arcgis/core/config.js";
13
15
  import "@arcgis/core/core/reactiveUtils.js";
14
16
  import "@arcgis/core/layers/FeatureLayer.js";
15
17
  import "@arcgis/core/request.js";
@@ -20,8 +22,8 @@ import "@arcgis/core/smartMapping/statistics/summaryStatistics.js";
20
22
  import "@arcgis/core/smartMapping/statistics/uniqueValues.js";
21
23
  import "@arcgis/core/views/LinkChartView.js";
22
24
  import "@arcgis/core/rest/knowledgeGraphService.js";
23
- import { r as o, a as s } from "../../chunks/utils2.js";
24
- class a extends i {
25
+ import { r as s, a } from "../../chunks/utils2.js";
26
+ class e extends i {
25
27
  constructor() {
26
28
  super(...arguments), this.agent = r;
27
29
  }
@@ -29,16 +31,20 @@ class a extends i {
29
31
  this.properties = { referenceElement: 1 };
30
32
  }
31
33
  #t;
34
+ #i;
32
35
  getContext() {
33
36
  if (!this.#t)
34
37
  throw new Error("arcgis-assistant-navigation-agent requires a mapView");
35
38
  return { mapView: this.#t };
36
39
  }
37
40
  load() {
38
- this.#t = o(this, "arcgis-assistant-navigation-agent"), s(this);
41
+ this.#t = s(this, "arcgis-assistant-navigation-agent"), this.#i = a(this);
42
+ }
43
+ disconnectedCallback() {
44
+ this.#i?.unregister(this.agent.id), super.disconnectedCallback();
39
45
  }
40
46
  }
41
- t("arcgis-assistant-navigation-agent", a);
47
+ t("arcgis-assistant-navigation-agent", e);
42
48
  export {
43
- a as ArcgisAssistantNavigationAgent
49
+ e as ArcgisAssistantNavigationAgent
44
50
  };
@@ -2,7 +2,12 @@
2
2
  import type { PublicLitElement as LitElement } from "@arcgis/lumina";
3
3
  import type { VoiceInputDraftChangeDetail, VoiceInputErrorCode, VoiceInputMode, VoiceInputTranscriptDetail, VoiceInputTranscriptionStreamChunkDetail } from "./support/types.js";
4
4
 
5
- /** @internal */
5
+ /**
6
+ * Captures voice input and drafts transcript text. Use it to support microphone-based prompt entry.
7
+ * Offers voice session lifecycle management and transcription event streams.
8
+ *
9
+ * @internal
10
+ */
6
11
  export abstract class ArcgisAssistantSpeechInput extends LitElement {
7
12
  /** @default false */
8
13
  accessor awaitingResponse: boolean;
@@ -3,7 +3,10 @@ import type { PublicLitElement as LitElement } from "@arcgis/lumina";
3
3
  import type { AssistantPromptSelectDetail } from "../arcgis-assistant/types.js";
4
4
  import type { T9nMeta } from "@arcgis/lumina/controllers";
5
5
 
6
- /** A prompt chip list primitive for rendering assistant suggested prompts. */
6
+ /**
7
+ * Displays prompt chips and emits selection events. Use it to offer quick starter prompts.
8
+ * Offers selectable prompt chips with a prompt-select event for host synchronization.
9
+ */
7
10
  export abstract class ArcgisAssistantSuggestedPrompts extends LitElement {
8
11
  /** @internal */
9
12
  protected _messages: { suggestedPromptsLabel: string; } & T9nMeta<{ suggestedPromptsLabel: string; }>;
@@ -1,27 +1,27 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import { c as e } from "../../chunks/runtime.js";
3
- import { css as i, html as s } from "lit";
2
+ import { c as s } from "../../chunks/runtime.js";
3
+ import { css as i, html as e } from "lit";
4
4
  import { LitElement as r, createEvent as l } from "@arcgis/lumina";
5
- import { u as c } from "../../chunks/useT9n.js";
6
- const a = i`:host{display:block;max-width:100%}.group{max-width:100%}.prompt{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-style:normal;cursor:pointer}calcite-chip{max-width:100%}`;
5
+ import { u as a } from "../../chunks/useT9n.js";
6
+ const c = i`:host{display:block;max-width:100%}.group{max-width:100%}.prompt{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-style:normal;cursor:pointer;font-weight:var(--calcite-font-weight-regular)}calcite-chip{max-width:100%}`;
7
7
  class o extends r {
8
8
  constructor() {
9
- super(...arguments), this._messages = c({ blocking: !0 }), this.prompts = [], this.arcgisPromptSelect = l();
9
+ super(...arguments), this._messages = a({ blocking: !0 }), this.prompts = [], this.arcgisPromptSelect = l();
10
10
  }
11
11
  static {
12
12
  this.properties = { label: 1, prompts: 0 };
13
13
  }
14
14
  static {
15
- this.styles = a;
15
+ this.styles = c;
16
16
  }
17
17
  _emitPromptSelect(t) {
18
18
  this.arcgisPromptSelect.emit({ prompt: t });
19
19
  }
20
20
  render() {
21
- return this.prompts.length ? s`<calcite-chip-group class="group" .label=${this.label ?? this._messages.suggestedPromptsLabel}>${this.prompts.map((t) => s`<calcite-chip .value=${t} .label=${t} appearance=outline-fill kind=brand @calciteChipSelect=${() => this._emitPromptSelect(t)}><div class="prompt">${t}</div></calcite-chip>`)}</calcite-chip-group>` : null;
21
+ return this.prompts.length ? e`<calcite-chip-group class="group" .label=${this.label ?? this._messages.suggestedPromptsLabel}>${this.prompts.map((t) => e`<calcite-chip .value=${t} .label=${t} appearance=outline-fill kind=brand @calciteChipSelect=${() => this._emitPromptSelect(t)}><div class="prompt">${t}</div></calcite-chip>`)}</calcite-chip-group>` : null;
22
22
  }
23
23
  }
24
- e("arcgis-assistant-suggested-prompts", o);
24
+ s("arcgis-assistant-suggested-prompts", o);
25
25
  export {
26
26
  o as ArcgisAssistantSuggestedPrompts
27
27
  };
@@ -2,7 +2,10 @@
2
2
  import type { PublicLitElement as LitElement } from "@arcgis/lumina";
3
3
  import type { ChatMessage } from "../arcgis-assistant/types.js";
4
4
 
5
- /** @internal */
5
+ /**
6
+ * Renders one user-authored chat message row. Use it for displaying what the user sent.
7
+ * Offers a simple user message presentation primitive for custom message-list rendering.
8
+ */
6
9
  export abstract class ArcgisAssistantUserMessage extends LitElement {
7
10
  accessor content: string | undefined;
8
11
  accessor message: ChatMessage | undefined;
@@ -1,23 +1,25 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
2
  import { c as t } from "../../chunks/runtime.js";
3
- import { css as e, html as s } from "lit";
4
- import { LitElement as a } from "@arcgis/lumina";
5
- const i = e`.container{display:flex;align-items:center;gap:var(--calcite-spacing-md);background:color-mix(in srgb,var(--calcite-color-brand) 25%,transparent);color:var(--calcite-color-text-1);padding:var(--calcite-spacing-md);border-radius:var(--calcite-border-radius);width:fit-content;margin-left:auto;justify-content:flex-end}.avatar{display:flex;align-items:center;justify-content:center}@container (min-width: 480px){.container{max-width:80%}}`;
6
- class r extends a {
3
+ import { css as a, html as e } from "lit";
4
+ import { LitElement as i } from "@arcgis/lumina";
5
+ import { p as r } from "../../chunks/converterUtils.js";
6
+ import { unsafeHTML as c } from "lit/directives/unsafe-html.js";
7
+ const s = a`:host{overflow:auto}.container{display:flex;align-items:center;gap:var(--calcite-spacing-md);background:color-mix(in srgb,var(--calcite-color-brand) 15%,var(--calcite-color-foreground-1));color:var(--calcite-color-text-1);padding:var(--calcite-spacing-md);border-radius:var(--calcite-border-radius);width:fit-content;margin-left:auto;justify-content:flex-end}.avatar{display:flex;align-items:center;justify-content:center}.content{>*{margin:0}>*+*{margin-block-start:var(--calcite-spacing-sm)}:is(ol,ul){padding-inline-start:var(--calcite-spacing-lg)}>calcite-table{display:block;max-width:100%}pre{background-color:var(--calcite-color-foreground-1);padding:var(--calcite-spacing-sm);border-radius:var(--calcite-border-radius);color:var(--calcite-color-text-1);direction:ltr;max-width:100%;overflow:auto}pre code{display:block;white-space:pre;font-family:var(--calcite-code-family)}}@container (min-width: 480px){.container{max-width:80%}}`;
8
+ class o extends i {
7
9
  static {
8
10
  this.properties = { content: 1, user: 1, message: 0 };
9
11
  }
10
12
  static {
11
- this.styles = i;
13
+ this.styles = s;
12
14
  }
13
15
  _getContent() {
14
16
  return this.message?.role === "user" ? this.message.content : this.content;
15
17
  }
16
18
  render() {
17
- return s`<div class="container"><div><slot name=content>${this._getContent()}</slot></div><slot name=icon><div class="avatar"><calcite-avatar .fullName=${this.user} scale=s></calcite-avatar></div></slot></div>`;
19
+ return e`<div class="container"><div><slot name=content><div class="content">${c(r(this._getContent()))}</div></slot></div><slot name=icon><div class="avatar"><calcite-avatar .fullName=${this.user} scale=s></calcite-avatar></div></slot></div>`;
18
20
  }
19
21
  }
20
- t("arcgis-assistant-user-message", r);
22
+ t("arcgis-assistant-user-message", o);
21
23
  export {
22
- r as ArcgisAssistantUserMessage
24
+ o as ArcgisAssistantUserMessage
23
25
  };