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

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.
@@ -1,43 +1,43 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
2
  import { Annotation as d } from "@langchain/langgraph/web";
3
- import p, { z as r } from "zod";
4
- import { ChatPromptTemplate as C, SystemMessagePromptTemplate as K } from "@langchain/core/prompts";
5
- import { dispatchCustomEvent as F } from "@langchain/core/callbacks/dispatch/web";
6
- import { AIMessage as B, isAIMessage as W, isToolMessage as H } from "@langchain/core/messages";
7
- import { createAgent as J, summarizationMiddleware as X, modelCallLimitMiddleware as G } from "langchain";
8
- import { ChatOpenAI as Q, OpenAIEmbeddings as Y } from "@langchain/openai";
9
- import U from "@arcgis/core/identity/IdentityManager.js";
10
- import S from "@arcgis/core/portal/Portal.js";
11
- const _ = {
3
+ import p, { z as o } from "zod";
4
+ import { ChatPromptTemplate as F, SystemMessagePromptTemplate as B } from "@langchain/core/prompts";
5
+ import { dispatchCustomEvent as U } from "@langchain/core/callbacks/dispatch/web";
6
+ import { AIMessage as W, isAIMessage as H, isToolMessage as J } from "@langchain/core/messages";
7
+ import { createAgent as X, summarizationMiddleware as G, modelCallLimitMiddleware as Q } from "langchain";
8
+ import { ChatOpenAI as Y, OpenAIEmbeddings as Z } from "@langchain/openai";
9
+ import _ from "@arcgis/core/identity/IdentityManager.js";
10
+ import k from "@arcgis/core/portal/Portal.js";
11
+ const P = {
12
12
  advanced: "gpt-5.2",
13
13
  default: "gpt-5-mini",
14
14
  fast: "gpt-5.4-nano"
15
- }, k = {
15
+ }, A = {
16
16
  default: "text-embedding-ada-002"
17
- }, M = /* @__PURE__ */ new Map();
18
- let T = null;
19
- const Z = () => {
20
- const t = S.getDefault().helperServices;
17
+ }, S = /* @__PURE__ */ new Map();
18
+ let v = null;
19
+ const ee = () => {
20
+ const t = k.getDefault().helperServices;
21
21
  if (!t?.aiModels?.url)
22
22
  throw new Error("AI Models Service URL is not defined in the portal's helper services.");
23
23
  return t.aiModels.url;
24
- }, P = async (e) => {
25
- const t = Z();
26
- M.size === 0 && (T || (T = (async () => {
24
+ }, q = async (e) => {
25
+ const t = ee();
26
+ S.size === 0 && (v || (v = (async () => {
27
27
  try {
28
28
  const n = await fetch(`${t}/models`);
29
29
  if (!n.ok)
30
30
  throw new Error("Failed to fetch AI service discovery data.");
31
- (await n.json()).models.forEach((o) => M.set(o.name, o));
31
+ (await n.json()).models.forEach((r) => S.set(r.name, r));
32
32
  } catch (n) {
33
- throw T = null, n;
33
+ throw v = null, n;
34
34
  }
35
- })()), await T);
36
- const s = M.get(e);
35
+ })()), await v);
36
+ const s = S.get(e);
37
37
  if (!s)
38
38
  throw new Error(`Model '${e}' is not available in the discovery service.`);
39
39
  return s.endpoint;
40
- }, ee = async (e = "default") => await P(_[e]), te = async (e = "default") => await P(k[e]), u = (e, t) => t, q = (e, t) => ({
40
+ }, te = async (e = "default") => await q(P[e]), ne = async (e = "default") => await q(A[e]), f = (e, t) => t, j = (e, t) => ({
41
41
  ...e,
42
42
  ...t
43
43
  }), $ = (e = "", t) => {
@@ -55,49 +55,49 @@ const Z = () => {
55
55
  return i[i.length - 1]?.trim() === s ? e : `${e}
56
56
 
57
57
  ${s}`;
58
- }, j = () => ({
58
+ }, N = () => ({
59
59
  userRequest: "",
60
60
  assignedTask: "",
61
61
  messages: [],
62
62
  priorSteps: [],
63
63
  sharedState: {}
64
- }), ne = () => ({
64
+ }), se = () => ({
65
65
  agentExecutionContext: d({
66
- reducer: q,
67
- default: j
66
+ reducer: j,
67
+ default: N
68
68
  }),
69
69
  outputMessage: d({
70
70
  reducer: $,
71
71
  default: () => ""
72
72
  }),
73
73
  summary: d({
74
- reducer: u,
74
+ reducer: f,
75
75
  default: () => ""
76
76
  }),
77
77
  status: d({
78
- reducer: u
78
+ reducer: f
79
79
  })
80
- }), Ee = () => ({
81
- ...ne(),
80
+ }), Re = () => ({
81
+ ...se(),
82
82
  sharedStatePatch: d({
83
- reducer: u
83
+ reducer: f
84
84
  })
85
- }), Ie = d.Root({
85
+ }), De = d.Root({
86
86
  agentExecutionContext: d({
87
- default: j,
88
- reducer: q
87
+ default: N,
88
+ reducer: j
89
89
  }),
90
90
  currentIntent: d({
91
91
  default: () => "none",
92
- reducer: u
92
+ reducer: f
93
93
  }),
94
94
  lastExecutedAgent: d({
95
95
  default: () => "",
96
- reducer: u
96
+ reducer: f
97
97
  }),
98
98
  requiresFollowUp: d({
99
99
  default: () => !0,
100
- reducer: u
100
+ reducer: f
101
101
  }),
102
102
  stepCount: d({
103
103
  default: () => 0,
@@ -107,16 +107,24 @@ ${s}`;
107
107
  default: () => "",
108
108
  reducer: $
109
109
  })
110
- }), y = async (e, t) => {
111
- await F("trace_message", e, t);
112
- }, De = async (e, t) => {
113
- await F("graph_ux_suggestion", e, t);
114
- }, se = (e, t, s) => {
110
+ }), g = async (e, t) => {
111
+ await U("trace_message", e, t);
112
+ }, Fe = async (e, t) => {
113
+ await U("graph_ux_suggestion", e, t);
114
+ }, ie = (e) => {
115
+ if (!e || typeof e != "object" || !("services" in e))
116
+ return !1;
117
+ const t = e.services;
118
+ return !!t && typeof t == "object" && "agentRegistry" in t;
119
+ }, re = (e) => {
120
+ const t = e?.configurable;
121
+ return ie(t) ? t : void 0;
122
+ }, oe = (e, t, s) => {
115
123
  const n = e[t];
116
- return n ? typeof n == "function" ? n() : Promise.resolve(n) : new Promise((i, o) => {
117
- (typeof queueMicrotask == "function" ? queueMicrotask : setTimeout)(o.bind(null, /* @__PURE__ */ new Error("Unknown variable dynamic import: " + t + (t.split("/").length !== s ? ". Note that variables only represent file names one level deep." : ""))));
124
+ return n ? typeof n == "function" ? n() : Promise.resolve(n) : new Promise((i, r) => {
125
+ (typeof queueMicrotask == "function" ? queueMicrotask : setTimeout)(r.bind(null, /* @__PURE__ */ new Error("Unknown variable dynamic import: " + t + (t.split("/").length !== s ? ". Note that variables only represent file names one level deep." : ""))));
118
126
  });
119
- }, A = async (e) => (await se(/* @__PURE__ */ Object.assign({ "./field_descriptions_prompt.md": () => import("./field_descriptions_prompt.js"), "./intent_prompt.md": () => import("./intent_prompt.js"), "./layer_descriptions_prompt.md": () => import("./layer_descriptions_prompt.js") }), `./${e}.md`, 2)).default, ie = async (e) => {
127
+ }, E = async (e) => (await oe(/* @__PURE__ */ Object.assign({ "./field_descriptions_prompt.md": () => import("./field_descriptions_prompt.js"), "./intent_prompt.md": () => import("./intent_prompt.js"), "./layer_descriptions_prompt.md": () => import("./layer_descriptions_prompt.js") }), `./${e}.md`, 2)).default, ae = async (e) => {
120
128
  const { agent: t, messages: s, config: n } = e;
121
129
  return { structuredResponse: (await t.invoke(
122
130
  {
@@ -124,107 +132,117 @@ ${s}`;
124
132
  },
125
133
  n
126
134
  )).structuredResponse };
127
- }, N = (e) => async (t, s) => {
128
- const n = new Headers(s?.headers);
129
- return n.delete("Authorization"), n.delete("api-key"), e && e.length > 0 && (n.set("X-Esri-Authorization", `Bearer ${e}`), n.set("X-Esri-Request-Source", "MapsSDK")), await fetch(t, {
130
- ...s,
131
- headers: n
135
+ }, O = (e, t) => async (s, n) => {
136
+ const i = new Headers(n?.headers);
137
+ i.delete("Authorization"), i.delete("api-key"), e && e.length > 0 && (i.set("X-Esri-Authorization", `Bearer ${e}`), i.set("X-Esri-Request-Source", "MapsSDK"));
138
+ const r = t && n?.signal ? AbortSignal.any([t, n.signal]) : n?.signal ?? t;
139
+ return await fetch(s, {
140
+ ...n,
141
+ headers: i,
142
+ signal: r
132
143
  });
133
- }, x = async (e = "default", t = 0) => {
134
- const s = S.getDefault(), n = await U.getCredential(`${s.url}/sharing`), i = _[e], o = await ee(e);
135
- return new Q({
136
- modelName: i,
144
+ }, b = async (e = {}) => {
145
+ const { modelTier: t = "default", temperature: s = 0, abortSignal: n } = e, i = k.getDefault(), r = await _.getCredential(`${i.url}/sharing`), a = P[t], c = await te(t);
146
+ return new Y({
147
+ modelName: a,
137
148
  apiKey: "dummy-key",
138
149
  // 5-mini does not support temperature parameter
139
- ...e !== "default" && { temperature: t },
150
+ ...t !== "default" && { temperature: s },
140
151
  configuration: {
141
- baseURL: o,
142
- fetch: N(n.token)
152
+ baseURL: c,
153
+ fetch: O(r.token, n)
143
154
  }
144
155
  });
145
- }, Re = async (e = "default") => {
146
- const t = S.getDefault(), s = await U.getCredential(`${t.url}/sharing`), n = k[e], i = await te(e);
147
- return new Y({
148
- modelName: n,
156
+ }, Ue = async (e = "default", t) => {
157
+ const s = k.getDefault(), n = await _.getCredential(`${s.url}/sharing`), i = A[e], r = await ne(e);
158
+ return new Z({
159
+ modelName: i,
149
160
  apiKey: "dummy-key",
150
161
  configuration: {
151
- baseURL: i,
152
- fetch: N(s.token)
162
+ baseURL: r,
163
+ fetch: O(n.token, t)
153
164
  },
154
165
  batchSize: 2048,
155
166
  maxConcurrency: 10
156
167
  });
157
- }, re = r.object({
158
- id: r.string().min(1),
159
- name: r.string().min(1),
160
- description: r.string().min(1)
168
+ }, ce = o.object({
169
+ id: o.string().min(1),
170
+ name: o.string().min(1),
171
+ description: o.string().min(1)
161
172
  });
162
- r.array(re);
163
- const D = (e) => JSON.stringify(e, null, 2), oe = (e) => {
164
- const t = e.map((n) => n.id), s = r.enum(t);
165
- return r.object({
173
+ o.array(ce);
174
+ const R = (e) => JSON.stringify(e, null, 2), le = (e) => {
175
+ const t = e.map((n) => n.id), s = o.enum(t);
176
+ return o.object({
166
177
  intent: s.nullable(),
167
- assignedTask: r.string().nullable(),
168
- requiresFollowUp: r.boolean()
178
+ assignedTask: o.string().nullable(),
179
+ requiresFollowUp: o.boolean()
169
180
  });
170
- }, Ce = async (e, t) => {
181
+ }, _e = async (e, t) => {
182
+ const s = re(t);
183
+ if (s.abortSignal?.aborted)
184
+ return await g({ text: "Run cancelled; skipping intent routing" }, t), {
185
+ ...e,
186
+ currentIntent: "none",
187
+ requiresFollowUp: !1
188
+ };
171
189
  try {
172
- await y({ text: "Asking LLM to route to an agent" }, t);
173
- const i = (t?.configurable?.services.agentRegistry?.list() ?? []).map(({ agent: h }) => ({
174
- id: h.id,
175
- name: h.name,
176
- description: h.description
190
+ await g({ text: "Asking LLM to route to an agent" }, t);
191
+ const r = (s.services.agentRegistry?.list() ?? []).map(({ agent: y }) => ({
192
+ id: y.id,
193
+ name: y.name,
194
+ description: y.description
177
195
  }));
178
- if (!i.length)
179
- return await y({ text: "No agents registered; skipping intent detection" }, t), { ...e, currentIntent: "none" };
180
- const o = await A("intent_prompt"), a = D(i), c = oe(i), l = {
181
- registeredAgents: a,
182
- priorSteps: D(e.agentExecutionContext.priorSteps),
196
+ if (!r.length)
197
+ return await g({ text: "No agents registered; skipping intent detection" }, t), { ...e, currentIntent: "none" };
198
+ const a = await E("intent_prompt"), c = R(r), l = le(r), m = {
199
+ registeredAgents: c,
200
+ priorSteps: R(e.agentExecutionContext.priorSteps),
183
201
  userRequest: e.agentExecutionContext.userRequest
184
- }, g = await C.fromTemplate(o).format(l), I = J({
185
- model: await x("fast"),
202
+ }, T = await F.fromTemplate(a).format(m), C = X({
203
+ model: await b({ modelTier: "fast", abortSignal: s.abortSignal }),
186
204
  tools: [],
187
- systemPrompt: g,
205
+ systemPrompt: T,
188
206
  checkpointer: !0,
189
- responseFormat: c,
207
+ responseFormat: l,
190
208
  middleware: [
191
209
  // Preserve recent conversation context while summarizing older messages
192
210
  // to control token usage without losing important intent signals.
193
211
  // The trigger and keep parameters can be tuned based on token limits and behavior.
194
- X({
195
- model: await x("fast"),
212
+ G({
213
+ model: await b({ modelTier: "fast", abortSignal: s.abortSignal }),
196
214
  trigger: { tokens: 4e3 },
197
215
  keep: { messages: 6 }
198
216
  }),
199
217
  // Enforce no loop/retry.
200
218
  // 1 usual LLM call and 1 optional summarization call.
201
- G({ runLimit: 2 })
219
+ Q({ runLimit: 2 })
202
220
  ]
203
- }), { structuredResponse: z } = await ie({
204
- agent: I,
221
+ }), { structuredResponse: L } = await ae({
222
+ agent: C,
205
223
  messages: e.agentExecutionContext.messages,
206
224
  config: t
207
- }), f = c.parse(
208
- z ?? { intent: null, assignedTask: null, requiresFollowUp: !1 }
209
- ), v = f.intent ?? "none", L = {
225
+ }), h = l.parse(
226
+ L ?? { intent: null, assignedTask: null, requiresFollowUp: !1 }
227
+ ), x = h.intent ?? "none", K = {
210
228
  ...e,
211
- currentIntent: v,
212
- requiresFollowUp: f.requiresFollowUp,
229
+ currentIntent: x,
230
+ requiresFollowUp: h.requiresFollowUp,
213
231
  agentExecutionContext: {
214
232
  ...e.agentExecutionContext,
215
- assignedTask: f.assignedTask ?? ""
233
+ assignedTask: h.assignedTask ?? ""
216
234
  }
217
235
  };
218
- if (v === "none") {
219
- const h = "I could not find a matching agent for that request. Please rephrase your question with more detail.";
220
- return await y({ text: "LLM did not identify a clear intent." }, t), {
236
+ if (x === "none") {
237
+ const y = "I could not find a matching agent for that request. Please rephrase your question with more detail.";
238
+ return await g({ text: "LLM did not identify a clear intent." }, t), {
221
239
  ...e,
222
- currentIntent: v,
240
+ currentIntent: x,
223
241
  requiresFollowUp: !1,
224
242
  agentExecutionContext: {
225
243
  ...e.agentExecutionContext,
226
244
  assignedTask: "",
227
- messages: [...e.agentExecutionContext.messages, new B(h)],
245
+ messages: [...e.agentExecutionContext.messages, new W(y)],
228
246
  priorSteps: [
229
247
  ...e.agentExecutionContext.priorSteps ?? [],
230
248
  {
@@ -237,111 +255,112 @@ const D = (e) => JSON.stringify(e, null, 2), oe = (e) => {
237
255
  }
238
256
  };
239
257
  }
240
- return await y(
258
+ return await g(
241
259
  {
242
- text: `Agent picked: ${v}
243
- Task Assigned: ${f.assignedTask ?? ""}
244
- Requires Follow-Up: ${f.requiresFollowUp}`
260
+ text: `Agent picked: ${x}
261
+ Task Assigned: ${h.assignedTask ?? ""}
262
+ Requires Follow-Up: ${h.requiresFollowUp}`
245
263
  },
246
264
  t
247
- ), L;
248
- } catch (s) {
249
- throw await y({ text: "Error during intent detection" }, t), new Error(`Error during intent detection: ${s instanceof Error ? s.message : String(s)}`);
265
+ ), K;
266
+ } catch (n) {
267
+ throw await g({ text: "Error during intent detection" }, t), new Error(`Error during intent detection: ${n instanceof Error ? n.message : String(n)}`);
250
268
  }
251
- }, ae = "0.1", w = 1536, ce = "openai", le = k.default, de = `Name: {name}
269
+ }, de = "0.1", w = 1536, pe = "openai", me = A.default, ue = `Name: {name}
252
270
  Title: {title}
253
- Description: {description}`, pe = `Name: {name}
271
+ Description: {description}`, ge = `Name: {name}
254
272
  Alias: {alias}
255
- Description: {description}`, Fe = r.object({
256
- schemaVersion: r.literal(ae),
257
- modified: r.number().int().nonnegative(),
258
- embeddings: r.object({
259
- modelProvider: r.literal(ce),
260
- model: r.literal(le),
261
- dimensions: r.literal(w),
262
- templates: r.object({
263
- layer: r.string().default(de),
264
- field: r.string().default(pe)
273
+ Description: {description}`, Pe = o.object({
274
+ schemaVersion: o.literal(de),
275
+ modified: o.number().int().nonnegative(),
276
+ embeddings: o.object({
277
+ modelProvider: o.literal(pe),
278
+ model: o.literal(me),
279
+ dimensions: o.literal(w),
280
+ templates: o.object({
281
+ layer: o.string().default(ue),
282
+ field: o.string().default(ge)
265
283
  })
266
284
  }),
267
- layers: r.array(
268
- r.object({
269
- id: r.string().min(1),
270
- name: r.string().min(1),
271
- title: r.string().catch(""),
272
- description: r.string().catch(""),
273
- vector: r.array(r.number()).length(w, {
285
+ layers: o.array(
286
+ o.object({
287
+ id: o.string().min(1),
288
+ name: o.string().min(1),
289
+ title: o.string().catch(""),
290
+ description: o.string().catch(""),
291
+ vector: o.array(o.number()).length(w, {
274
292
  message: `Layer vector must be exactly ${w} dimensions`
275
293
  }),
276
- fields: r.array(
277
- r.object({
278
- name: r.string().min(1),
279
- alias: r.string().catch(""),
280
- description: r.string().catch(""),
281
- vector: r.array(r.number()).length(w, {
294
+ fields: o.array(
295
+ o.object({
296
+ name: o.string().min(1),
297
+ alias: o.string().catch(""),
298
+ description: o.string().catch(""),
299
+ vector: o.array(o.number()).length(w, {
282
300
  message: `Field vector must be exactly ${w} dimensions`
283
301
  })
284
302
  })
285
303
  )
286
304
  })
287
305
  ).default([])
288
- }), me = (e) => {
306
+ }), fe = (e) => {
289
307
  const t = /* @__PURE__ */ new Set();
290
308
  for (const n of e)
291
- if (W(n)) {
309
+ if (H(n)) {
292
310
  const i = n;
293
- i.tool_calls && i.tool_calls.length > 0 && i.tool_calls.forEach((o) => {
294
- o.id && t.add(o.id);
311
+ i.tool_calls && i.tool_calls.length > 0 && i.tool_calls.forEach((r) => {
312
+ r.id && t.add(r.id);
295
313
  });
296
314
  }
297
315
  return e.filter((n) => {
298
- if (H(n)) {
316
+ if (J(n)) {
299
317
  const i = n;
300
318
  return t.has(i.tool_call_id);
301
319
  }
302
320
  return !0;
303
321
  });
304
- }, E = (e, t) => {
305
- const s = K.fromTemplate(e);
306
- return C.fromMessages([s, ...t]);
307
- }, ue = async (e) => {
308
- const { promptText: t, modelTier: s, temperature: n, messages: i } = e, o = E(t, i ?? []), a = await x(s, n);
309
- return o.pipe(a);
310
- }, Ue = async (e) => {
311
- const { promptText: t, modelTier: s = "default", temperature: n = 0, messages: i, inputVariables: o } = e, c = await (await ue({
322
+ }, I = (e, t) => {
323
+ const s = B.fromTemplate(e);
324
+ return F.fromMessages([s, ...t]);
325
+ }, he = async (e) => {
326
+ const { promptText: t, modelTier: s, temperature: n, messages: i, abortSignal: r } = e, a = I(t, i ?? []), c = await b({ modelTier: s, temperature: n, abortSignal: r });
327
+ return a.pipe(c);
328
+ }, qe = async (e) => {
329
+ const { promptText: t, modelTier: s = "default", temperature: n = 0, messages: i, inputVariables: r, abortSignal: a } = e, l = await (await he({
312
330
  promptText: t,
313
331
  modelTier: s,
314
332
  temperature: n,
315
- messages: i
316
- })).invoke(o ?? {});
317
- if (typeof c == "string")
318
- return c;
319
- const l = c.content;
320
- return typeof l == "string" ? l : JSON.stringify(l);
321
- }, O = async (e) => {
322
- const { promptText: t, modelTier: s = "default", temperature: n = 0, messages: i, inputVariables: o, schema: a } = e, c = E(t, i ?? []), m = (await x(s, n)).withStructuredOutput(a);
323
- return await c.pipe(m).invoke(o ?? {});
324
- }, _e = async (e) => {
325
- const { promptText: t, modelTier: s = "default", temperature: n = 0, messages: i, inputVariables: o, tools: a } = e, c = a.length > 0 ? me(i ?? []) : i ?? [], l = E(t, c), m = await x(s, n);
326
- return await l.pipe(m.bindTools(a)).invoke(o ?? {});
327
- }, ge = p.object({
333
+ messages: i,
334
+ abortSignal: a
335
+ })).invoke(r ?? {});
336
+ if (typeof l == "string")
337
+ return l;
338
+ const m = l.content;
339
+ return typeof m == "string" ? m : JSON.stringify(m);
340
+ }, V = async (e) => {
341
+ const { promptText: t, modelTier: s = "default", temperature: n = 0, messages: i, inputVariables: r, schema: a, abortSignal: c } = e, l = I(t, i ?? []), u = (await b({ modelTier: s, temperature: n, abortSignal: c })).withStructuredOutput(a);
342
+ return await l.pipe(u).invoke(r ?? {});
343
+ }, je = async (e) => {
344
+ const { promptText: t, modelTier: s = "default", temperature: n = 0, messages: i, inputVariables: r, tools: a, abortSignal: c } = e, l = a.length > 0 ? fe(i ?? []) : i ?? [], m = I(t, l), u = await b({ modelTier: s, temperature: n, abortSignal: c });
345
+ return await m.pipe(u.bindTools(a)).invoke(r ?? {});
346
+ }, ye = p.object({
328
347
  name: p.string(),
329
348
  description: p.string(),
330
349
  valueType: p.string(),
331
350
  alias: p.string()
332
- }), fe = p.object({
333
- fields: p.array(ge)
334
- }), V = (e, t) => e.getFieldAlias(t) ?? void 0, b = (e, t) => V(e, t.name) ?? t.alias ?? "", he = (e, t) => {
335
- const s = V(e, t.name);
351
+ }), we = p.object({
352
+ fields: p.array(ye)
353
+ }), z = (e, t) => e.getFieldAlias(t) ?? void 0, M = (e, t) => z(e, t.name) ?? t.alias ?? "", be = (e, t) => {
354
+ const s = z(e, t.name);
336
355
  return !!(s && s !== (t.alias ?? ""));
337
356
  };
338
- function R(e, t) {
357
+ function D(e, t) {
339
358
  const s = /* @__PURE__ */ new Map();
340
359
  for (const n of e.fields) {
341
- const i = t.fields.find((l) => l.name === n.name), o = b(e, n), a = he(e, n), c = {
360
+ const i = t.fields.find((l) => l.name === n.name), r = M(e, n), a = be(e, n), c = {
342
361
  name: n.name,
343
362
  type: n.type,
344
- alias: a ? o : i?.alias ?? o,
363
+ alias: a ? r : i?.alias ?? r,
345
364
  description: i?.description ?? n.description ?? "",
346
365
  valueType: i?.valueType ?? n.valueType ?? "",
347
366
  domain: e.getFieldDomain(n.name) ?? void 0
@@ -350,64 +369,65 @@ function R(e, t) {
350
369
  }
351
370
  return s;
352
371
  }
353
- const Pe = async (e) => {
354
- const s = await A("field_descriptions_prompt"), n = e.fields.filter((a) => !(b(e, a) && a.description)).map((a) => {
355
- const { name: c, type: l, description: m } = a, g = b(e, a);
356
- return [`Name: ${c}`, `Type: ${l}`, `Alias: ${g}`, `Description: ${m ?? "N/A"}`].join(", ");
372
+ const $e = async (e) => {
373
+ const s = await E("field_descriptions_prompt"), n = e.fields.filter((a) => !(M(e, a) && a.description)).map((a) => {
374
+ const { name: c, type: l, description: m } = a, u = M(e, a);
375
+ return [`Name: ${c}`, `Type: ${l}`, `Alias: ${u}`, `Description: ${m ?? "N/A"}`].join(", ");
357
376
  }).join(`
358
377
  `);
359
378
  if (n.length === 0)
360
- return R(e, { fields: [] });
379
+ return D(e, { fields: [] });
361
380
  const i = {
362
381
  existingItemTitle: e.portalItem?.title,
363
382
  existingItemDescription: e.portalItem?.description,
364
383
  existingLayerTitle: e.title,
365
384
  existingLayerDescription: e.portalItem?.description,
366
385
  fieldInformation: n
367
- }, o = await O({
386
+ }, r = await V({
368
387
  promptText: s,
369
- schema: fe,
388
+ schema: we,
370
389
  inputVariables: i
371
390
  });
372
- return R(e, o);
373
- }, ye = p.object({
391
+ return D(e, r);
392
+ }, xe = p.object({
374
393
  title: p.string(),
375
394
  description: p.string(),
376
395
  name: p.string().nullable()
377
- }), qe = async (e, t) => {
378
- const n = await A("layer_descriptions_prompt"), i = Array.from(t.values()), o = {
396
+ }), Ne = async (e, t) => {
397
+ const n = await E("layer_descriptions_prompt"), i = Array.from(t.values()), r = {
379
398
  fieldInformation: JSON.stringify(i, null, 2),
380
399
  existingLayerTitle: e.title,
381
400
  existingLayerDescription: e.portalItem?.description,
382
401
  existingLayerSnippet: e.portalItem?.snippet,
383
402
  layerGeometryType: e.geometryType
384
403
  };
385
- return { ...await O({
404
+ return { ...await V({
386
405
  promptText: n,
387
- schema: ye,
388
- inputVariables: o
406
+ schema: xe,
407
+ inputVariables: r
389
408
  }), name: e.title ?? null };
390
409
  };
391
410
  export {
392
- Ie as D,
393
- Fe as W,
394
- qe as a,
395
- ce as b,
396
- x as c,
411
+ De as D,
412
+ Pe as W,
413
+ Ne as a,
414
+ pe as b,
415
+ b as c,
397
416
  w as d,
398
- ae as e,
399
- pe as f,
400
- Pe as g,
401
- Ue as h,
402
- O as i,
403
- _e as j,
404
- ne as k,
405
- de as l,
406
- le as m,
407
- Ee as n,
408
- De as o,
409
- te as p,
410
- Ce as q,
411
- Re as r,
412
- y as s
417
+ de as e,
418
+ ge as f,
419
+ $e as g,
420
+ qe as h,
421
+ V as i,
422
+ je as j,
423
+ se as k,
424
+ ue as l,
425
+ me as m,
426
+ Re as n,
427
+ Fe as o,
428
+ ne as p,
429
+ re as q,
430
+ _e as r,
431
+ g as s,
432
+ Ue as t
413
433
  };