@arcgis/ai-agents 5.1.0-next.60 → 5.1.0-next.61

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 (72) hide show
  1. package/dist/agents/arcgisKnowledge/state/arcgisKnowledgeState.d.ts +2 -2
  2. package/dist/agents/dataExploration/state/dataExplorationState.d.ts +2 -2
  3. package/dist/agents/dataExploration/tools/filterTools/setFeatureEffect/adapter.d.ts +4 -0
  4. package/dist/agents/dataExploration/tools/filterTools/setFeatureEffect/core.d.ts +1 -0
  5. package/dist/agents/dataExploration/tools/filterTools/setFeatureFilter/adapter.d.ts +4 -0
  6. package/dist/agents/dataExploration/tools/filterTools/setFeatureFilter/core.d.ts +1 -0
  7. package/dist/agents/dataExploration/tools/index.d.ts +3 -0
  8. package/dist/agents/help/state/helpState.d.ts +2 -2
  9. package/dist/agents/layerStyling/state/layerStylingState.d.ts +2 -2
  10. package/dist/agents/navigation/state/navigationState.d.ts +2 -2
  11. package/dist/{data_explore_filter_prompt-BPOAIqs_.js → data_explore_filter_prompt-DoHzvzv1.js} +27 -27
  12. package/dist/{data_explore_query_prompt-CuTod2tk.js → data_explore_query_prompt-q72F4eFI.js} +17 -3
  13. package/dist/index.d.ts +0 -2
  14. package/dist/index.js +1401 -2179
  15. package/dist/utils/reducers.d.ts +2 -0
  16. package/package.json +2 -2
  17. package/dist/agents/layerFilter/context/getLayerFilterContext.d.ts +0 -3
  18. package/dist/agents/layerFilter/context/layerFilterContext.d.ts +0 -9
  19. package/dist/agents/layerFilter/graph/layerFilterGraph.d.ts +0 -8
  20. package/dist/agents/layerFilter/index.d.ts +0 -2
  21. package/dist/agents/layerFilter/nodes/fieldStatistics.d.ts +0 -3
  22. package/dist/agents/layerFilter/nodes/layerFilterExit.d.ts +0 -3
  23. package/dist/agents/layerFilter/nodes/layerFilterLLM.d.ts +0 -3
  24. package/dist/agents/layerFilter/nodes/layerFilterToolCalling.d.ts +0 -3
  25. package/dist/agents/layerFilter/nodes/requireLayerFilterServices.d.ts +0 -7
  26. package/dist/agents/layerFilter/nodes/vectorSearchFields.d.ts +0 -3
  27. package/dist/agents/layerFilter/nodes/vectorSearchLayers.d.ts +0 -3
  28. package/dist/agents/layerFilter/state/layerFilterState.d.ts +0 -10
  29. package/dist/agents/layerFilter/tools/index.d.ts +0 -87
  30. package/dist/agents/layerFilter/tools/setDefinitionExpression/adapter.d.ts +0 -16
  31. package/dist/agents/layerFilter/tools/setDefinitionExpression/core.d.ts +0 -2
  32. package/dist/agents/layerFilter/tools/setDefinitionExpression/index.d.ts +0 -1
  33. package/dist/agents/layerFilter/tools/setFeatureEffect/adapter.d.ts +0 -64
  34. package/dist/agents/layerFilter/tools/setFeatureEffect/core.d.ts +0 -6
  35. package/dist/agents/layerFilter/tools/setFeatureEffect/index.d.ts +0 -1
  36. package/dist/agents/layerFilter/tools/setFeatureFilter/adapter.d.ts +0 -56
  37. package/dist/agents/layerFilter/tools/setFeatureFilter/core.d.ts +0 -6
  38. package/dist/agents/layerFilter/tools/setFeatureFilter/index.d.ts +0 -1
  39. package/dist/agents/layerFilter/types/types.d.ts +0 -17
  40. package/dist/agents/layerFilter/utils/getGeometryForFilter.d.ts +0 -14
  41. package/dist/agents/layerFilter/utils/zoomToWhereClause.d.ts +0 -2
  42. package/dist/agents/layerQuery/context/getLayerQueryContext.d.ts +0 -3
  43. package/dist/agents/layerQuery/context/layerQueryContext.d.ts +0 -9
  44. package/dist/agents/layerQuery/graph/layerQueryGraph.d.ts +0 -8
  45. package/dist/agents/layerQuery/index.d.ts +0 -2
  46. package/dist/agents/layerQuery/nodes/fieldStatistics.d.ts +0 -3
  47. package/dist/agents/layerQuery/nodes/layerQueryExit.d.ts +0 -3
  48. package/dist/agents/layerQuery/nodes/layerQueryLLM.d.ts +0 -3
  49. package/dist/agents/layerQuery/nodes/layerQueryToolCalling.d.ts +0 -3
  50. package/dist/agents/layerQuery/nodes/requireLayerQueryServices.d.ts +0 -7
  51. package/dist/agents/layerQuery/nodes/summarizeQueryResponseLLM.d.ts +0 -3
  52. package/dist/agents/layerQuery/nodes/vectorSearchFields.d.ts +0 -3
  53. package/dist/agents/layerQuery/nodes/vectorSearchLayers.d.ts +0 -3
  54. package/dist/agents/layerQuery/state/layerQueryState.d.ts +0 -12
  55. package/dist/agents/layerQuery/tools/getAttribute/adapter.d.ts +0 -28
  56. package/dist/agents/layerQuery/tools/getAttribute/core.d.ts +0 -5
  57. package/dist/agents/layerQuery/tools/getAttribute/index.d.ts +0 -1
  58. package/dist/agents/layerQuery/tools/getStatistics/adapter.d.ts +0 -65
  59. package/dist/agents/layerQuery/tools/getStatistics/core.d.ts +0 -15
  60. package/dist/agents/layerQuery/tools/getStatistics/index.d.ts +0 -1
  61. package/dist/agents/layerQuery/tools/getTopFeatures/adapter.d.ts +0 -79
  62. package/dist/agents/layerQuery/tools/getTopFeatures/core.d.ts +0 -15
  63. package/dist/agents/layerQuery/tools/getTopFeatures/index.d.ts +0 -1
  64. package/dist/agents/layerQuery/tools/index.d.ts +0 -177
  65. package/dist/agents/layerQuery/tools/queryFeatures/adapter.d.ts +0 -59
  66. package/dist/agents/layerQuery/tools/queryFeatures/core.d.ts +0 -8
  67. package/dist/agents/layerQuery/tools/queryFeatures/index.d.ts +0 -1
  68. package/dist/agents/layerQuery/types/types.d.ts +0 -22
  69. package/dist/agents/layerQuery/utils/getGeometryForQuery.d.ts +0 -8
  70. package/dist/data_query_prompt-N4YzctpM.js +0 -61
  71. package/dist/layer_filter_prompt-0ujK87_y.js +0 -4
  72. package/dist/summarize_query_response_prompt-DBJy1AAu.js +0 -30
@@ -1,6 +1,6 @@
1
- import { ChatHistory } from '@arcgis/ai-orchestrator';
1
+ import { AgentExecutionContext } from '@arcgis/ai-orchestrator';
2
2
  export declare const arcgisKnowledgeState: import('@langchain/langgraph/web').AnnotationRoot<{
3
- messages: import('@langchain/langgraph/web').BaseChannel<ChatHistory, ChatHistory | import('@langchain/langgraph/web').OverwriteValue<ChatHistory>, unknown>;
3
+ agentExecutionContext: import('@langchain/langgraph/web').BaseChannel<AgentExecutionContext, AgentExecutionContext | import('@langchain/langgraph/web').OverwriteValue<AgentExecutionContext>, unknown>;
4
4
  outputMessage: import('@langchain/langgraph/web').BaseChannel<string, string | import('@langchain/langgraph/web').OverwriteValue<string>, unknown>;
5
5
  intent: import('@langchain/langgraph/web').BaseChannel<string, string | import('@langchain/langgraph/web').OverwriteValue<string>, unknown>;
6
6
  }>;
@@ -1,8 +1,8 @@
1
- import { ChatHistory, VectorSearchFieldResults } from '@arcgis/ai-orchestrator';
1
+ import { AgentExecutionContext, VectorSearchFieldResults } from '@arcgis/ai-orchestrator';
2
2
  import { QueryResponse } from '../types/types';
3
3
  import { LayerFieldInfo } from '../../../types/types';
4
4
  export declare const DataExplorationState: import('@langchain/langgraph/web').AnnotationRoot<{
5
- messages: import('@langchain/langgraph/web').BaseChannel<ChatHistory, ChatHistory | import('@langchain/langgraph/web').OverwriteValue<ChatHistory>, unknown>;
5
+ agentExecutionContext: import('@langchain/langgraph/web').BaseChannel<AgentExecutionContext, AgentExecutionContext | import('@langchain/langgraph/web').OverwriteValue<AgentExecutionContext>, unknown>;
6
6
  outputMessage: import('@langchain/langgraph/web').BaseChannel<string, string | import('@langchain/langgraph/web').OverwriteValue<string>, unknown>;
7
7
  vectorSearchLayerIds: import('@langchain/langgraph/web').LastValue<string[]>;
8
8
  vectorSearchFieldResults: import('@langchain/langgraph/web').LastValue<VectorSearchFieldResults>;
@@ -5,6 +5,7 @@ export declare const setFeatureEffectWrapper: ({ targetLayer, geometryFilter, us
5
5
  targetLayer: {
6
6
  layerId: string;
7
7
  where: string;
8
+ objectIds?: number[];
8
9
  };
9
10
  geometryFilter?: GeometryConfig;
10
11
  useCurrentExtent?: boolean;
@@ -15,6 +16,7 @@ export declare const setFeatureEffectTool: import('@langchain/core/tools').Dynam
15
16
  targetLayer: z.ZodObject<{
16
17
  layerId: z.ZodString;
17
18
  where: z.ZodString;
19
+ objectIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
18
20
  }, z.core.$strip>;
19
21
  geometryFilter: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
20
22
  layerId: z.ZodString;
@@ -53,6 +55,7 @@ export declare const setFeatureEffectTool: import('@langchain/core/tools').Dynam
53
55
  targetLayer: {
54
56
  layerId: string;
55
57
  where: string;
58
+ objectIds?: number[] | undefined;
56
59
  };
57
60
  includedEffect: string;
58
61
  excludedEffect: string;
@@ -77,6 +80,7 @@ export declare const setFeatureEffectTool: import('@langchain/core/tools').Dynam
77
80
  targetLayer: {
78
81
  layerId: string;
79
82
  where: string;
83
+ objectIds?: number[] | undefined;
80
84
  };
81
85
  geometryFilter?: {
82
86
  layerId: string;
@@ -3,4 +3,5 @@ import { default as MapView } from '@arcgis/core/views/MapView.js';
3
3
  export declare const setFeatureEffect: (targetLayer: {
4
4
  layerId: string;
5
5
  where: string;
6
+ objectIds?: number[];
6
7
  }, arcgisMapView: MapView, includedEffect: string, excludedEffect: string, geometryFilter?: GeometryConfig, useCurrentExtent?: boolean) => Promise<string>;
@@ -5,6 +5,7 @@ export declare const setFeatureFilterWrapper: ({ targetLayer, geometryFilter, }:
5
5
  targetLayer: {
6
6
  layerId: string;
7
7
  where: string;
8
+ objectIds?: number[];
8
9
  };
9
10
  geometryFilter?: GeometryConfig;
10
11
  }, config?: RunnableConfig) => Promise<string>;
@@ -12,6 +13,7 @@ export declare const setFeatureFilterTool: import('@langchain/core/tools').Dynam
12
13
  targetLayer: z.ZodObject<{
13
14
  layerId: z.ZodString;
14
15
  where: z.ZodString;
16
+ objectIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
15
17
  }, z.core.$strip>;
16
18
  geometryFilter: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
17
19
  layerId: z.ZodString;
@@ -47,6 +49,7 @@ export declare const setFeatureFilterTool: import('@langchain/core/tools').Dynam
47
49
  targetLayer: {
48
50
  layerId: string;
49
51
  where: string;
52
+ objectIds?: number[] | undefined;
50
53
  };
51
54
  geometryFilter?: {
52
55
  layerId: string;
@@ -68,6 +71,7 @@ export declare const setFeatureFilterTool: import('@langchain/core/tools').Dynam
68
71
  targetLayer: {
69
72
  layerId: string;
70
73
  where: string;
74
+ objectIds?: number[] | undefined;
71
75
  };
72
76
  geometryFilter?: {
73
77
  layerId: string;
@@ -3,4 +3,5 @@ import { default as MapView } from '@arcgis/core/views/MapView.js';
3
3
  export declare const setFeatureFilter: (targetLayer: {
4
4
  layerId: string;
5
5
  where: string;
6
+ objectIds?: number[];
6
7
  }, arcgisMapView: MapView, geometryFilter?: GeometryConfig) => Promise<string>;
@@ -301,6 +301,7 @@ export declare const filterTools: (import('@langchain/core/tools').DynamicStruct
301
301
  targetLayer: import('zod').ZodObject<{
302
302
  layerId: import('zod').ZodString;
303
303
  where: import('zod').ZodString;
304
+ objectIds: import('zod').ZodOptional<import('zod').ZodArray<import('zod').ZodNumber>>;
304
305
  }, import('zod/v4/core').$strip>;
305
306
  geometryFilter: import('zod').ZodOptional<import('zod').ZodUnion<readonly [import('zod').ZodObject<{
306
307
  layerId: import('zod').ZodString;
@@ -339,6 +340,7 @@ export declare const filterTools: (import('@langchain/core/tools').DynamicStruct
339
340
  targetLayer: {
340
341
  layerId: string;
341
342
  where: string;
343
+ objectIds?: number[] | undefined;
342
344
  };
343
345
  includedEffect: string;
344
346
  excludedEffect: string;
@@ -363,6 +365,7 @@ export declare const filterTools: (import('@langchain/core/tools').DynamicStruct
363
365
  targetLayer: {
364
366
  layerId: string;
365
367
  where: string;
368
+ objectIds?: number[] | undefined;
366
369
  };
367
370
  geometryFilter?: {
368
371
  layerId: string;
@@ -1,6 +1,6 @@
1
- import { ChatHistory } from '@arcgis/ai-orchestrator';
1
+ import { AgentExecutionContext } from '@arcgis/ai-orchestrator';
2
2
  export declare const HelpState: import('@langchain/langgraph/web').AnnotationRoot<{
3
- messages: import('@langchain/langgraph/web').BaseChannel<ChatHistory, ChatHistory | import('@langchain/langgraph/web').OverwriteValue<ChatHistory>, unknown>;
3
+ agentExecutionContext: import('@langchain/langgraph/web').BaseChannel<AgentExecutionContext, AgentExecutionContext | import('@langchain/langgraph/web').OverwriteValue<AgentExecutionContext>, unknown>;
4
4
  outputMessage: import('@langchain/langgraph/web').BaseChannel<string, string | import('@langchain/langgraph/web').OverwriteValue<string>, unknown>;
5
5
  }>;
6
6
  export type HelpGraphStateType = typeof HelpState.State;
@@ -1,7 +1,7 @@
1
- import { ChatHistory, VectorSearchFieldResults } from '@arcgis/ai-orchestrator';
1
+ import { AgentExecutionContext, VectorSearchFieldResults } from '@arcgis/ai-orchestrator';
2
2
  import { LayerFieldInfo } from '../../../types/types';
3
3
  export declare const LayerStylingState: import('@langchain/langgraph/web').AnnotationRoot<{
4
- messages: import('@langchain/langgraph/web').BaseChannel<ChatHistory, ChatHistory | import('@langchain/langgraph/web').OverwriteValue<ChatHistory>, unknown>;
4
+ agentExecutionContext: import('@langchain/langgraph/web').BaseChannel<AgentExecutionContext, AgentExecutionContext | import('@langchain/langgraph/web').OverwriteValue<AgentExecutionContext>, unknown>;
5
5
  outputMessage: import('@langchain/langgraph/web').BaseChannel<string, string | import('@langchain/langgraph/web').OverwriteValue<string>, unknown>;
6
6
  vectorSearchLayerIds: import('@langchain/langgraph/web').LastValue<string[]>;
7
7
  vectorSearchFieldResults: import('@langchain/langgraph/web').LastValue<VectorSearchFieldResults>;
@@ -1,6 +1,6 @@
1
- import { ChatHistory, VectorSearchFieldResults } from '@arcgis/ai-orchestrator';
1
+ import { VectorSearchFieldResults, AgentExecutionContext } from '@arcgis/ai-orchestrator';
2
2
  export declare const NavigationState: import('@langchain/langgraph/web').AnnotationRoot<{
3
- messages: import('@langchain/langgraph/web').BaseChannel<ChatHistory, ChatHistory | import('@langchain/langgraph/web').OverwriteValue<ChatHistory>, unknown>;
3
+ agentExecutionContext: import('@langchain/langgraph/web').BaseChannel<AgentExecutionContext, AgentExecutionContext | import('@langchain/langgraph/web').OverwriteValue<AgentExecutionContext>, unknown>;
4
4
  outputMessage: import('@langchain/langgraph/web').BaseChannel<string, string | import('@langchain/langgraph/web').OverwriteValue<string>, unknown>;
5
5
  intent: import('@langchain/langgraph/web').BaseChannel<string, string | import('@langchain/langgraph/web').OverwriteValue<string>, unknown>;
6
6
  vectorSearchLayerResults: import('@langchain/langgraph/web').BaseChannel<{
@@ -22,22 +22,31 @@ This is what the query tool returned:
22
22
 
23
23
  ## Your task
24
24
 
25
- 1. Analyze the user's request and the provided layer and field information.
26
- 2. Generate a **single ArcGIS SQL WHERE clause** to match features based on the user's request and intent.
27
- 3. Select the most appropriate tool to call based on the user's request.
25
+ 1. Decide whether a tool call is needed (see "When to call a tool" below).
26
+ 2. If needed, determine \`targetLayer\` using the priority rules below.
27
+ 3. Select the most appropriate tool.
28
28
 
29
- The tool will apply the provided WHERE clause to the layer in the map viewer.
29
+ ## How to determine targetLayer (follow in order)
30
+
31
+ Use the FIRST rule that matches:
32
+
33
+ 1. **queryResponse includes \`objectIds\` and \`objectIdField\`** → pass them as \`targetLayer.objectIds\` array and set \`where\` to \`"1=1"\`. Do NOT construct a WHERE clause with IN(...).
34
+
35
+ 2. **queryResponse includes a \`where\` clause** → copy that exact \`where\` string and the \`layerId\` into \`targetLayer\`. Do NOT regenerate, rephrase, or simplify it.
36
+
37
+ 3. **User explicitly asks for a DIFFERENT set of features** than what the query returned (e.g., query found declined apps but user says "now highlight the approved ones"), OR the user asks to clear/reset filters → generate a new WHERE clause using the rules in "Generating new WHERE clauses" below.
38
+
39
+ ### Also forward geometryFilter and useCurrentExtent
40
+
41
+ If the query tool call in the message history used a \`geometryFilter\` (spatial/proximity query) or \`useCurrentExtent: true\`, include the same parameters in your tool call. Without them, the filter would apply to the entire layer instead of just the spatially scoped features.
30
42
 
31
43
  ## When to call a tool
32
44
 
33
- ALWAYS call a tool to visually highlight features on the map when:
45
+ ALWAYS call a tool when:
34
46
 
35
47
  - The user asked to "show", "find", "locate", or "where is" something
36
48
  - The user asked a question that identifies specific features (e.g., "which has the highest...?", "find all X that are Y")
37
- - The user wants to clear or rest filters of the map
38
-
39
- The purpose is to visually emphasize the relevant features on the map so the user can
40
- see them.
49
+ - The user wants to clear or reset filters of the map
41
50
 
42
51
  ### No tool call
43
52
 
@@ -47,27 +56,20 @@ Make no tool call when:
47
56
  - The user asked a pure aggregate/statistical question (e.g., "what is the average?", "how many total?")
48
57
  - No meaningful filter can be generated
49
58
  - The user's question was fully answered by the query step with no need for map interaction
59
+ - Even if objectIds are available in the query response, do not highlight features unless the user explicitly asked to see, show, highlight or emphasize them
60
+
61
+ ## Generating new WHERE clauses (exception case only)
50
62
 
51
- ### Rules for generating Layer Filter expressions:
63
+ Only use these rules when rule 3 above applies — i.e., the user explicitly asked for a different feature set.
52
64
 
53
- - Use only the fields **\`name\`** in the output expression.
54
- - Use metadata (\`alias\`, \`description\`, \`statistics\`) only to help understand the user's meaning — not in the syntax.
55
- - Use field \`type\` to choose appropriate operators:
65
+ - Use only the field's **\`name\`** in the expression — not the alias.
66
+ - Use field \`type\` to choose operators:
56
67
  - **String** → \`LIKE '%value%'\`, \`=\`, \`IN (...)\`
57
68
  - **Number/Date** → \`=\`, \`<\`, \`>\`, \`BETWEEN\`, etc.
58
- - Use fields with the **highest \`relevanceScore\`**.
59
- - DO NOT use subqueries or \`SELECT\` keyword.
69
+ - **Coded-value domain fields** use the numeric/string **code**, never the domain name.
70
+ - **Range domain fields** → use the listed min/max as valid bounds.
71
+ - DO NOT use subqueries or \`SELECT\`.
60
72
  - Combine conditions with \`AND\`, \`OR\`, or \`NOT\` as appropriate.
61
- - **Coded-value domain fields** → Always use the numeric/string **code** in WHERE clauses, never the domain name. Domain values are listed under each field as \`code=name\` pairs
62
- - **Range domain fields** → Use the listed min/max as valid bounds for comparisons.
63
- - If no meaningful layer filter can be generated, do not call a tool.
64
-
65
- ## Top N / Ranked queries
66
-
67
- When the query response includes \`objectIds\` and \`objectIdField\`, use them:
68
- {{objectIdField}} IN (id1, id2, id3, ...)
69
-
70
- This ensures ONLY the exact features from the query get the effect.
71
73
 
72
74
  ## SQL-92 Date/Time Syntax
73
75
 
@@ -96,12 +98,10 @@ Examples:
96
98
  Q: "Is well P132_1873 within 300m from a protected area?"
97
99
  Target: Protected Areas (what we want to find)
98
100
  Geometry: Well (where="ID = 'P132_1873'" - single point)
99
- Result: Returns which protected areas are nearby
100
101
 
101
102
  Q: "Find roads within 500m of park X"
102
103
  Target: Roads (what we want to find)
103
104
  Geometry: Park X (specific location)
104
- Result: Returns which roads are nearby
105
105
 
106
106
  Key principle: The geometry layer should be the SIMPLER geometry (ideally a single feature or small set),
107
107
  not a large collection that requires union operations.
@@ -26,11 +26,15 @@ Validator: Before producing output, verify every field used exists in the listed
26
26
 
27
27
  ## Input
28
28
 
29
- Use the most recent relevant user question from the chat history. The question will **not** be restated again here. Start with a fresh WHERE clause for each question - do not inherit filters from previous questions unless user explicitly asks to combine them.
29
+ Use the most recent relevant user question from the chat history.
30
30
 
31
- ### Rules for generating where clause SQL expressions:
31
+ ### Fresh WHERE clause rule
32
32
 
33
- - Use only the field’s **\`name\`** in the output expression.
33
+ Start with a fresh WHERE clause for each new question. Do not inherit filters from previous questions UNLESS the user explicitly references previous results (see "Referencing Previously Identified Features" below).
34
+
35
+ ### Rules for generating WHERE clause SQL expressions:
36
+
37
+ - Use only the field's **\`name\`** in the output expression.
34
38
  - Use metadata (\`alias\`, \`description\`, \`statistics\`) only to help understand the user's meaning — not in the syntax.
35
39
  - Use field \`type\` to choose appropriate operators:
36
40
  - **String** → \`LIKE '%value%'\`, \`=\`, \`IN (...)\` (prefer \`LIKE\` over \`=\`)
@@ -42,6 +46,16 @@ Use the most recent relevant user question from the chat history. The question w
42
46
  - **Range domain fields** → Use the listed min/max as valid bounds for comparisons.
43
47
  - If no meaningful layer filter can be generated, do not call a tool.
44
48
 
49
+ ## Referencing Previously Identified Features
50
+
51
+ This is an exception to the "fresh WHERE clause" rule above.
52
+
53
+ When the user uses words like "these", "those", "them", "the same ones" referring to features from a previous turn:
54
+
55
+ - If the previous query used useCurrentExtent: true → use useCurrentExtent: true with where: "1=1"
56
+ - If the previous assistant response mentions specific objectIds or feature IDs → use {{objectIdField}} IN (id1, id2, ...) to scope to those features
57
+ - If neither is available, use the same WHERE clause and layer from the previous query turn to re-select the same features
58
+
45
59
  ### Mixed Questions
46
60
 
47
61
  If a question has both aggregate and display components (e.g., "How many wells have depth > 100? Show them"):
package/dist/index.d.ts CHANGED
@@ -1,7 +1,5 @@
1
1
  export * from './agents/navigation';
2
2
  export * from './agents/dataExploration';
3
- export * from './agents/layerFilter';
4
- export * from './agents/layerQuery';
5
3
  export * from './agents/layerStyling';
6
4
  export * from './agents/help';
7
5
  export * from './agents/arcgisKnowledge';