aab-prompts 1.0.0__tar.gz → 1.0.2__tar.gz

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 (24) hide show
  1. {aab_prompts-1.0.0 → aab_prompts-1.0.2}/PKG-INFO +1 -1
  2. {aab_prompts-1.0.0 → aab_prompts-1.0.2}/aab_prompts.egg-info/PKG-INFO +1 -1
  3. {aab_prompts-1.0.0 → aab_prompts-1.0.2}/aab_service.py +76 -40
  4. {aab_prompts-1.0.0 → aab_prompts-1.0.2}/prompts/breadcrumbs.py +1 -1
  5. {aab_prompts-1.0.0 → aab_prompts-1.0.2}/prompts/view_links_planner.py +0 -1
  6. {aab_prompts-1.0.0 → aab_prompts-1.0.2}/pyproject.toml +1 -1
  7. {aab_prompts-1.0.0 → aab_prompts-1.0.2}/tests/test_prompts.py +65 -65
  8. {aab_prompts-1.0.0 → aab_prompts-1.0.2}/aab_prompts.egg-info/SOURCES.txt +0 -0
  9. {aab_prompts-1.0.0 → aab_prompts-1.0.2}/aab_prompts.egg-info/dependency_links.txt +0 -0
  10. {aab_prompts-1.0.0 → aab_prompts-1.0.2}/aab_prompts.egg-info/top_level.txt +0 -0
  11. {aab_prompts-1.0.0 → aab_prompts-1.0.2}/prompts/__init__.py +0 -0
  12. {aab_prompts-1.0.0 → aab_prompts-1.0.2}/prompts/constants.py +0 -0
  13. {aab_prompts-1.0.0 → aab_prompts-1.0.2}/prompts/expressions.py +0 -0
  14. {aab_prompts-1.0.0 → aab_prompts-1.0.2}/prompts/menu_navigations.py +0 -0
  15. {aab_prompts-1.0.0 → aab_prompts-1.0.2}/prompts/objects_fields.py +0 -0
  16. {aab_prompts-1.0.0 → aab_prompts-1.0.2}/prompts/page_planner.py +0 -0
  17. {aab_prompts-1.0.0 → aab_prompts-1.0.2}/prompts/pages.py +0 -0
  18. {aab_prompts-1.0.0 → aab_prompts-1.0.2}/prompts/planner.py +0 -0
  19. {aab_prompts-1.0.0 → aab_prompts-1.0.2}/prompts/router.py +0 -0
  20. {aab_prompts-1.0.0 → aab_prompts-1.0.2}/prompts/solutions_applications.py +0 -0
  21. {aab_prompts-1.0.0 → aab_prompts-1.0.2}/prompts/view_filter_planner.py +0 -0
  22. {aab_prompts-1.0.0 → aab_prompts-1.0.2}/prompts/view_planner.py +0 -0
  23. {aab_prompts-1.0.0 → aab_prompts-1.0.2}/prompts/views.py +0 -0
  24. {aab_prompts-1.0.0 → aab_prompts-1.0.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aab-prompts
3
- Version: 1.0.0
3
+ Version: 1.0.2
4
4
  Summary: AAB Prompts - Application Builder prompt management library
5
5
  Author: AAB Prompts
6
6
  License: MIT
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aab-prompts
3
- Version: 1.0.0
3
+ Version: 1.0.2
4
4
  Summary: AAB Prompts - Application Builder prompt management library
5
5
  Author: AAB Prompts
6
6
  License: MIT
@@ -25,6 +25,7 @@ from prompts.views import CALENDAR_VIEW_PROPERTIES_TEMPLATE, CARD_VIEW_PROPERTIE
25
25
  class _BreadcrumbsHandler:
26
26
  """Handler for all breadcrumb-related prompts."""
27
27
 
28
+ @property
28
29
  def BREADCRUMB_AGENT_SYSTEM_PROMPT(self) -> str:
29
30
  return BREADCRUMB_AGENT_SYSTEM_PROMPT_TEMPLATE
30
31
 
@@ -78,6 +79,7 @@ class _ExpressionsHandler:
78
79
 
79
80
  return "\n".join(sections)
80
81
 
82
+ @property
81
83
  def CORE_EXPRESSIONS(self) -> str:
82
84
  return f"""
83
85
  ## Built in Core Expressions
@@ -87,51 +89,60 @@ class _ExpressionsHandler:
87
89
  {self._generate_system_prompt(self.core_expressions)}
88
90
  """
89
91
 
92
+ @property
90
93
  def EXPRESSION_REQUIREMENTS(self) -> str:
91
94
  return EXPRESSION_REQUIREMENTS_TEMPLATE
92
95
 
96
+ @property
93
97
  def EXPRESSIONS_AGENT_PROMPT(self) -> str:
94
98
  return EXPRESSIONS_AGENT_PROMPT_TEMPLATE.format(
95
- EXPRESSION_REQUIREMENTS=self.EXPRESSION_REQUIREMENTS(),
96
- CORE_EXPRESSIONS=self.CORE_EXPRESSIONS(),
99
+ EXPRESSION_REQUIREMENTS=self.EXPRESSION_REQUIREMENTS,
100
+ CORE_EXPRESSIONS=self.CORE_EXPRESSIONS,
97
101
  )
98
102
 
103
+ @property
99
104
  def SHOW_IF_EXPRESSION_AGENT_PROMPT(self) -> str:
100
105
  return SHOW_IF_EXPRESSION_AGENT_PROMPT_TEMPLATE.format(
101
- EXPRESSION_REQUIREMENTS=self.EXPRESSION_REQUIREMENTS(),
102
- CORE_EXPRESSIONS=self.CORE_EXPRESSIONS(),
106
+ EXPRESSION_REQUIREMENTS=self.EXPRESSION_REQUIREMENTS,
107
+ CORE_EXPRESSIONS=self.CORE_EXPRESSIONS,
103
108
  )
104
109
 
110
+ @property
105
111
  def INITIAL_VALUE_EXAMPLES(self) -> str:
106
112
  return INITIAL_VALUE_EXAMPLES_TEMPLATE
107
113
 
114
+ @property
108
115
  def VIEW_FILTER_EXPRESSION_AGENT_PROMPT(self) -> str:
109
116
  return VIEW_FILTER_EXPRESSION_AGENT_PROMPT_TEMPLATE.format(
110
- EXPRESSION_REQUIREMENTS=self.EXPRESSION_REQUIREMENTS(),
111
- CORE_EXPRESSIONS=self.CORE_EXPRESSIONS(),
117
+ EXPRESSION_REQUIREMENTS=self.EXPRESSION_REQUIREMENTS,
118
+ CORE_EXPRESSIONS=self.CORE_EXPRESSIONS,
112
119
  )
113
120
 
121
+ @property
114
122
  def FIELDS_EXPRESSION_AGENT_PROMPT(self) -> str:
115
123
  return FIELDS_EXPRESSION_AGENT_PROMPT_TEMPLATE.format(
116
- EXPRESSION_REQUIREMENTS=self.EXPRESSION_REQUIREMENTS(),
117
- CORE_EXPRESSIONS=self.CORE_EXPRESSIONS(),
124
+ EXPRESSION_REQUIREMENTS=self.EXPRESSION_REQUIREMENTS,
125
+ CORE_EXPRESSIONS=self.CORE_EXPRESSIONS,
118
126
  )
119
127
 
128
+ @property
120
129
  def VIEWS_EXPRESSION_AGENT_PROMPT(self) -> str:
121
130
  return VIEWS_EXPRESSION_AGENT_PROMPT_TEMPLATE.format(
122
- EXPRESSION_REQUIREMENTS=self.EXPRESSION_REQUIREMENTS(),
123
- CORE_EXPRESSIONS=self.CORE_EXPRESSIONS(),
131
+ EXPRESSION_REQUIREMENTS=self.EXPRESSION_REQUIREMENTS,
132
+ CORE_EXPRESSIONS=self.CORE_EXPRESSIONS,
124
133
  )
125
134
 
135
+ @property
126
136
  def PAGE_DATA_BINDER_AGENT_PROMPT(self) -> str:
127
137
  return PAGE_DATA_BINDER_AGENT_PROMPT_TEMPLATE.format(
128
- EXPRESSION_REQUIREMENTS=self.EXPRESSION_REQUIREMENTS(),
129
- CORE_EXPRESSIONS=self.CORE_EXPRESSIONS(),
138
+ EXPRESSION_REQUIREMENTS=self.EXPRESSION_REQUIREMENTS,
139
+ CORE_EXPRESSIONS=self.CORE_EXPRESSIONS,
130
140
  )
131
141
 
132
142
  class _MenuNavigationsHandler:
133
143
  """Handler for all menu navigation-related prompts."""
134
144
 
145
+ @property
135
146
  def MENU_NAVIGATIONS_AGENT_SYSTEM_PROMPT(self) -> str:
136
147
  return MENU_NAVIGATIONS_AGENT_SYSTEM_PROMPT_TEMPLATE
137
148
 
@@ -142,12 +153,15 @@ class _ObjectsFieldsHandler:
142
153
  def __init__(self, restricted_objects_list: list[str]) -> None:
143
154
  self.restricted_objects_list = restricted_objects_list
144
155
 
156
+ @property
145
157
  def STANDARD_OBJECTS_DESCRIPTIONS(self) -> str:
146
158
  return STANDARD_OBJECTS_DESCRIPTIONS_TEMPLATE
147
159
 
160
+ @property
148
161
  def SYSTEM_OBJECTS_DESCRIPTIONS(self) -> str:
149
162
  return SYSTEM_OBJECTS_DESCRIPTIONS_TEMPLATE
150
163
 
164
+ @property
151
165
  def OBJECTS_FIELDS_AGENT_SYSTEM_PROMPT(self) -> str:
152
166
  return OBJECTS_FIELDS_AGENT_SYSTEM_PROMPT_TEMPLATE.format(
153
167
  RESTRICTED_OBJECTS_LIST=", ".join(self.restricted_objects_list),
@@ -157,6 +171,7 @@ class _ObjectsFieldsHandler:
157
171
  class _PagePlannerHandler:
158
172
  """Handler for all page planner-related prompts."""
159
173
 
174
+ @property
160
175
  def PAGE_PLANNER_AGENT_SYSTEM_PROMPT(self) -> str:
161
176
  return PAGE_PLANNER_AGENT_SYSTEM_PROMPT_TEMPLATE
162
177
 
@@ -164,9 +179,11 @@ class _PagePlannerHandler:
164
179
  class _PagesHandler:
165
180
  """Handler for all page-related prompts."""
166
181
 
182
+ @property
167
183
  def PAGES_AGENT_SYSTEM_PROMPT(self) -> str:
168
184
  return PAGES_AGENT_SYSTEM_PROMPT_TEMPLATE
169
185
 
186
+ @property
170
187
  def PAGE_DATA_BINDER(self) -> str:
171
188
  return PAGE_DATA_BINDER_TEMPLATE
172
189
 
@@ -179,15 +196,17 @@ class _PlannerHandler:
179
196
  self.standard_objects_descriptions = standard_objects_descriptions
180
197
  self.system_objects_descriptions = system_objects_descriptions
181
198
 
199
+ @property
182
200
  def PLANNER_EXAMPLES(self) -> str:
183
201
  return '\n\n\n'.join(PLANNER_EXAMPLES_TEMPLATE)
184
202
 
203
+ @property
185
204
  def PLANNER_AGENT_SYSTEM_PROMPT(self) -> str:
186
205
  return PLANNER_AGENT_SYSTEM_PROMPT_TEMPLATE.format(
187
206
  RESTRICTED_OBJECTS_LIST=", ".join(self.restricted_objects_list),
188
207
  STANDARD_OBJECTS_DESCRIPTIONS=self.standard_objects_descriptions,
189
208
  SYSTEM_OBJECTS_DESCRIPTIONS=self.system_objects_descriptions,
190
- PLANNER_EXAMPLES=self.PLANNER_EXAMPLES(),
209
+ PLANNER_EXAMPLES=self.PLANNER_EXAMPLES,
191
210
  )
192
211
 
193
212
 
@@ -199,6 +218,7 @@ class _RouterHandler:
199
218
  self.system_objects_descriptions = system_objects_descriptions
200
219
  self.planner_examples = planner_examples
201
220
 
221
+ @property
202
222
  def ROUTER_AGENT_SYSTEM_PROMPT(self) -> str:
203
223
  return ROUTER_AGENT_SYSTEM_PROMPT_TEMPLATE.format(
204
224
  STANDARD_OBJECTS_DESCRIPTIONS=self.standard_objects_descriptions,
@@ -214,6 +234,7 @@ class _SolutionsApplicationsHandler:
214
234
  self.default_solution_id = default_solution_id
215
235
  self.default_application_id = default_application_id
216
236
 
237
+ @property
217
238
  def SOLUTIONS_APPLICATIONS_AGENT_SYSTEM_PROMPT(self) -> str:
218
239
  return SOLUTIONS_APPLICATIONS_AGENT_SYSTEM_PROMPT_TEMPLATE.format(
219
240
  DEFAULT_SOLUTION_ID=self.default_solution_id,
@@ -224,76 +245,91 @@ class _SolutionsApplicationsHandler:
224
245
  class _ViewsHandler:
225
246
  """Handler for all view-related prompts."""
226
247
 
248
+ @property
227
249
  def VIEW_TYPE_DETAILS(self) -> str:
228
250
  return VIEW_TYPE_DETAILS_TEMPLATE
229
251
 
252
+ @property
230
253
  def COMMON_VIEW_PROPERTIES(self) -> str:
231
254
  return COMMON_VIEW_PROPERTIES_TEMPLATE
232
255
 
256
+ @property
233
257
  def LIST_VIEW_PROPERTIES(self) -> str:
234
258
  return LIST_VIEW_PROPERTIES_TEMPLATE
235
259
 
260
+ @property
236
261
  def CARD_VIEW_PROPERTIES(self) -> str:
237
262
  return CARD_VIEW_PROPERTIES_TEMPLATE
238
263
 
264
+ @property
239
265
  def DETAIL_VIEW_PROPERTIES(self) -> str:
240
266
  return DETAIL_VIEW_PROPERTIES_TEMPLATE
241
267
 
268
+ @property
242
269
  def CREATE_VIEW_PROPERTIES(self) -> str:
243
270
  return CREATE_VIEW_PROPERTIES_TEMPLATE
244
271
 
272
+ @property
245
273
  def MAP_VIEW_PROPERTIES(self) -> str:
246
274
  return MAP_VIEW_PROPERTIES_TEMPLATE
247
275
 
276
+ @property
248
277
  def CALENDAR_VIEW_PROPERTIES(self) -> str:
249
278
  return CALENDAR_VIEW_PROPERTIES_TEMPLATE
250
279
 
280
+ @property
251
281
  def DECK_VIEW_PROPERTIES(self) -> str:
252
282
  return DECK_VIEW_PROPERTIES_TEMPLATE
253
283
 
284
+ @property
254
285
  def VIEW_LINKS_PROPERTIES(self) -> str:
255
286
  return VIEW_LINKS_PROPERTIES_TEMPLATE
256
287
 
288
+ @property
257
289
  def VIEW_FILTERS_PROPERTIES(self) -> str:
258
290
  return VIEW_FILTERS_PROPERTIES_TEMPLATE
259
291
 
292
+ @property
260
293
  def VIEWS_AGENT_SYSTEM_PROMPT(self) -> str:
261
294
  return VIEWS_AGENT_SYSTEM_PROMPT_TEMPLATE.format(
262
- VIEW_TYPE_DETAILS=self.VIEW_TYPE_DETAILS(),
263
- COMMON_VIEW_PROPERTIES=self.COMMON_VIEW_PROPERTIES(),
264
- LIST_VIEW_PROPERTIES=self.LIST_VIEW_PROPERTIES(),
265
- CARD_VIEW_PROPERTIES=self.CARD_VIEW_PROPERTIES(),
266
- DETAIL_VIEW_PROPERTIES=self.DETAIL_VIEW_PROPERTIES(),
267
- CREATE_VIEW_PROPERTIES=self.CREATE_VIEW_PROPERTIES(),
268
- MAP_VIEW_PROPERTIES=self.MAP_VIEW_PROPERTIES(),
269
- CALENDAR_VIEW_PROPERTIES=self.CALENDAR_VIEW_PROPERTIES(),
270
- DECK_VIEW_PROPERTIES=self.DECK_VIEW_PROPERTIES(),
295
+ VIEW_TYPE_DETAILS=self.VIEW_TYPE_DETAILS,
296
+ COMMON_VIEW_PROPERTIES=self.COMMON_VIEW_PROPERTIES,
297
+ LIST_VIEW_PROPERTIES=self.LIST_VIEW_PROPERTIES,
298
+ CARD_VIEW_PROPERTIES=self.CARD_VIEW_PROPERTIES,
299
+ DETAIL_VIEW_PROPERTIES=self.DETAIL_VIEW_PROPERTIES,
300
+ CREATE_VIEW_PROPERTIES=self.CREATE_VIEW_PROPERTIES,
301
+ MAP_VIEW_PROPERTIES=self.MAP_VIEW_PROPERTIES,
302
+ CALENDAR_VIEW_PROPERTIES=self.CALENDAR_VIEW_PROPERTIES,
303
+ DECK_VIEW_PROPERTIES=self.DECK_VIEW_PROPERTIES,
271
304
  )
272
305
 
306
+ @property
273
307
  def VIEWS_PLANNER_AGENT_SYSTEM_PROMPT(self) -> str:
274
308
  return VIEWS_PLANNER_AGENT_SYSTEM_PROMPT_TEMPLATE.format(
275
- VIEW_TYPE_DETAILS=self.VIEW_TYPE_DETAILS(),
276
- COMMON_VIEW_PROPERTIES=self.COMMON_VIEW_PROPERTIES(),
277
- LIST_VIEW_PROPERTIES=self.LIST_VIEW_PROPERTIES(),
278
- CARD_VIEW_PROPERTIES=self.CARD_VIEW_PROPERTIES(),
279
- DETAIL_VIEW_PROPERTIES=self.DETAIL_VIEW_PROPERTIES(),
280
- CREATE_VIEW_PROPERTIES=self.CREATE_VIEW_PROPERTIES(),
281
- MAP_VIEW_PROPERTIES=self.MAP_VIEW_PROPERTIES(),
282
- CALENDAR_VIEW_PROPERTIES=self.CALENDAR_VIEW_PROPERTIES(),
283
- DECK_VIEW_PROPERTIES=self.DECK_VIEW_PROPERTIES(),
284
- VIEW_LINKS_PROPERTIES=self.VIEW_LINKS_PROPERTIES(),
285
- VIEW_FILTERS_PROPERTIES=self.VIEW_FILTERS_PROPERTIES(),
309
+ VIEW_TYPE_DETAILS=self.VIEW_TYPE_DETAILS,
310
+ COMMON_VIEW_PROPERTIES=self.COMMON_VIEW_PROPERTIES,
311
+ LIST_VIEW_PROPERTIES=self.LIST_VIEW_PROPERTIES,
312
+ CARD_VIEW_PROPERTIES=self.CARD_VIEW_PROPERTIES,
313
+ DETAIL_VIEW_PROPERTIES=self.DETAIL_VIEW_PROPERTIES,
314
+ CREATE_VIEW_PROPERTIES=self.CREATE_VIEW_PROPERTIES,
315
+ MAP_VIEW_PROPERTIES=self.MAP_VIEW_PROPERTIES,
316
+ CALENDAR_VIEW_PROPERTIES=self.CALENDAR_VIEW_PROPERTIES,
317
+ DECK_VIEW_PROPERTIES=self.DECK_VIEW_PROPERTIES,
318
+ VIEW_LINKS_PROPERTIES=self.VIEW_LINKS_PROPERTIES,
319
+ VIEW_FILTERS_PROPERTIES=self.VIEW_FILTERS_PROPERTIES,
286
320
  )
287
321
 
322
+ @property
288
323
  def VIEW_LINKS_PLANNER_PROMPT(self) -> str:
289
324
  return VIEW_LINKS_PLANNER_PROMPT_TEMPLATE.format(
290
- VIEW_LINKS_PROPERTIES=self.VIEW_LINKS_PROPERTIES(),
325
+ VIEW_LINKS_PROPERTIES=self.VIEW_LINKS_PROPERTIES,
291
326
  )
292
327
 
293
328
 
329
+ @property
294
330
  def VIEW_FILTER_PLANNER_PROMPT(self) -> str:
295
331
  return VIEW_FILTER_PLANNER_PROMPT_TEMPLATE.format(
296
- VIEW_FILTERS_PROPERTIES=self.VIEW_FILTERS_PROPERTIES(),
332
+ VIEW_FILTERS_PROPERTIES=self.VIEW_FILTERS_PROPERTIES,
297
333
  )
298
334
 
299
335
 
@@ -306,8 +342,8 @@ class AABPrompts:
306
342
  self._objects_fields = _ObjectsFieldsHandler(restricted_objects_list)
307
343
  self._planner = _PlannerHandler(
308
344
  restricted_objects_list,
309
- self._objects_fields.STANDARD_OBJECTS_DESCRIPTIONS(),
310
- self._objects_fields.SYSTEM_OBJECTS_DESCRIPTIONS()
345
+ self._objects_fields.STANDARD_OBJECTS_DESCRIPTIONS,
346
+ self._objects_fields.SYSTEM_OBJECTS_DESCRIPTIONS
311
347
  )
312
348
 
313
349
  # Store all handlers in a list for easy iteration
@@ -320,9 +356,9 @@ class AABPrompts:
320
356
  _PagesHandler(),
321
357
  self._planner,
322
358
  _RouterHandler(
323
- self._objects_fields.STANDARD_OBJECTS_DESCRIPTIONS(),
324
- self._objects_fields.SYSTEM_OBJECTS_DESCRIPTIONS(),
325
- self._planner.PLANNER_EXAMPLES()
359
+ self._objects_fields.STANDARD_OBJECTS_DESCRIPTIONS,
360
+ self._objects_fields.SYSTEM_OBJECTS_DESCRIPTIONS,
361
+ self._planner.PLANNER_EXAMPLES
326
362
  ),
327
363
  _SolutionsApplicationsHandler(default_solution_id, default_application_id),
328
364
  _ViewsHandler(),
@@ -1,4 +1,4 @@
1
- BREADCRUMB_AGENT_SYSTEM_PROMPT_TEMPLATE = f"""
1
+ BREADCRUMB_AGENT_SYSTEM_PROMPT_TEMPLATE = """
2
2
  You are the SnapApp Breadcrumbs Specialist, an expert AI assistant dedicated
3
3
  to helping users design, configure, and troubleshoot breadcrumb navigation
4
4
  within the SnapApp platform. Your goal is to ensure users create hierarchical,
@@ -1,4 +1,3 @@
1
-
2
1
  VIEW_LINKS_PLANNER_PROMPT_TEMPLATE = """
3
2
  You are a View Link Planner for the SnapApp Low Code Application Builder.
4
3
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "aab-prompts"
7
- version = "1.0.0"
7
+ version = "1.0.2"
8
8
  description = "AAB Prompts - Application Builder prompt management library"
9
9
  requires-python = ">=3.8"
10
10
  license = {text = "MIT"}
@@ -19,7 +19,7 @@ class TestBreadcrumbsPrompts:
19
19
 
20
20
  def test_breadcrumb_agent_system_prompt_exists(self, aab_prompts):
21
21
  """Test that BREADCRUMB_AGENT_SYSTEM_PROMPT exists and returns content."""
22
- prompt = aab_prompts.BREADCRUMB_AGENT_SYSTEM_PROMPT()
22
+ prompt = aab_prompts.BREADCRUMB_AGENT_SYSTEM_PROMPT
23
23
  assert isinstance(prompt, str)
24
24
  assert len(prompt) > 0
25
25
  assert "SnapApp Breadcrumbs Specialist" in prompt
@@ -27,7 +27,7 @@ class TestBreadcrumbsPrompts:
27
27
 
28
28
  def test_breadcrumb_prompt_contains_required_sections(self, aab_prompts):
29
29
  """Test that breadcrumb prompt contains all required sections."""
30
- prompt = aab_prompts.BREADCRUMB_AGENT_SYSTEM_PROMPT()
30
+ prompt = aab_prompts.BREADCRUMB_AGENT_SYSTEM_PROMPT
31
31
  assert "What are Breadcrumbs" in prompt or "breadcrumbs" in prompt.lower()
32
32
  assert "When to create" in prompt or "when to create" in prompt.lower()
33
33
  assert "Rules for creating" in prompt or "rules" in prompt.lower()
@@ -35,7 +35,7 @@ class TestBreadcrumbsPrompts:
35
35
 
36
36
  def test_breadcrumb_prompt_mentions_key_fields(self, aab_prompts):
37
37
  """Test that breadcrumb prompt mentions key fields."""
38
- prompt = aab_prompts.BREADCRUMB_AGENT_SYSTEM_PROMPT()
38
+ prompt = aab_prompts.BREADCRUMB_AGENT_SYSTEM_PROMPT
39
39
  assert "name" in prompt.lower()
40
40
  assert "path" in prompt.lower()
41
41
  assert "application_id" in prompt.lower() or "application" in prompt.lower()
@@ -46,14 +46,14 @@ class TestExpressionsPrompts:
46
46
 
47
47
  def test_core_expressions_exists(self, aab_prompts):
48
48
  """Test that CORE_EXPRESSIONS exists and returns content."""
49
- prompt = aab_prompts.CORE_EXPRESSIONS()
49
+ prompt = aab_prompts.CORE_EXPRESSIONS
50
50
  assert isinstance(prompt, str)
51
51
  assert len(prompt) > 0
52
52
  assert "Core Expressions" in prompt or "Built in Core Expressions" in prompt
53
53
 
54
54
  def test_core_expressions_contains_all_expressions(self, aab_prompts):
55
55
  """Test that CORE_EXPRESSIONS contains all expressions from constants."""
56
- prompt = aab_prompts.CORE_EXPRESSIONS()
56
+ prompt = aab_prompts.CORE_EXPRESSIONS
57
57
  # Check for a sample of expressions
58
58
  assert "ABS" in prompt or "ABS()" in prompt
59
59
  assert "IF" in prompt or "IF()" in prompt
@@ -62,7 +62,7 @@ class TestExpressionsPrompts:
62
62
 
63
63
  def test_expression_requirements_exists(self, aab_prompts):
64
64
  """Test that EXPRESSION_REQUIREMENTS exists."""
65
- prompt = aab_prompts.EXPRESSION_REQUIREMENTS()
65
+ prompt = aab_prompts.EXPRESSION_REQUIREMENTS
66
66
  assert isinstance(prompt, str)
67
67
  assert len(prompt) > 0
68
68
  assert "Expression Generation" in prompt or "expression" in prompt.lower()
@@ -71,7 +71,7 @@ class TestExpressionsPrompts:
71
71
 
72
72
  def test_expressions_agent_prompt_exists(self, aab_prompts):
73
73
  """Test that EXPRESSIONS_AGENT_PROMPT exists."""
74
- prompt = aab_prompts.EXPRESSIONS_AGENT_PROMPT()
74
+ prompt = aab_prompts.EXPRESSIONS_AGENT_PROMPT
75
75
  assert isinstance(prompt, str)
76
76
  assert len(prompt) > 0
77
77
  assert "Expressions Agent" in prompt
@@ -79,13 +79,13 @@ class TestExpressionsPrompts:
79
79
 
80
80
  def test_expressions_agent_prompt_contains_requirements(self, aab_prompts):
81
81
  """Test that expressions agent prompt contains expression requirements."""
82
- prompt = aab_prompts.EXPRESSIONS_AGENT_PROMPT()
82
+ prompt = aab_prompts.EXPRESSIONS_AGENT_PROMPT
83
83
  assert "EXPRESSION_REQUIREMENTS" in prompt or "expression" in prompt.lower()
84
84
  assert "CORE_EXPRESSIONS" in prompt or "core expressions" in prompt.lower()
85
85
 
86
86
  def test_show_if_expression_agent_prompt_exists(self, aab_prompts):
87
87
  """Test that SHOW_IF_EXPRESSION_AGENT_PROMPT exists."""
88
- prompt = aab_prompts.SHOW_IF_EXPRESSION_AGENT_PROMPT()
88
+ prompt = aab_prompts.SHOW_IF_EXPRESSION_AGENT_PROMPT
89
89
  assert isinstance(prompt, str)
90
90
  assert len(prompt) > 0
91
91
  assert "Show_If" in prompt or "Show If" in prompt
@@ -93,7 +93,7 @@ class TestExpressionsPrompts:
93
93
 
94
94
  def test_initial_value_examples_exists(self, aab_prompts):
95
95
  """Test that INITIAL_VALUE_EXAMPLES exists."""
96
- prompt = aab_prompts.INITIAL_VALUE_EXAMPLES()
96
+ prompt = aab_prompts.INITIAL_VALUE_EXAMPLES
97
97
  assert isinstance(prompt, str)
98
98
  assert len(prompt) > 0
99
99
  # The prompt contains example scenarios for initial values
@@ -101,7 +101,7 @@ class TestExpressionsPrompts:
101
101
 
102
102
  def test_view_filter_expression_agent_prompt_exists(self, aab_prompts):
103
103
  """Test that VIEW_FILTER_EXPRESSION_AGENT_PROMPT exists."""
104
- prompt = aab_prompts.VIEW_FILTER_EXPRESSION_AGENT_PROMPT()
104
+ prompt = aab_prompts.VIEW_FILTER_EXPRESSION_AGENT_PROMPT
105
105
  assert isinstance(prompt, str)
106
106
  assert len(prompt) > 0
107
107
  assert "View Filter" in prompt
@@ -109,7 +109,7 @@ class TestExpressionsPrompts:
109
109
 
110
110
  def test_fields_expression_agent_prompt_exists(self, aab_prompts):
111
111
  """Test that FIELDS_EXPRESSION_AGENT_PROMPT exists."""
112
- prompt = aab_prompts.FIELDS_EXPRESSION_AGENT_PROMPT()
112
+ prompt = aab_prompts.FIELDS_EXPRESSION_AGENT_PROMPT
113
113
  assert isinstance(prompt, str)
114
114
  assert len(prompt) > 0
115
115
  assert "Fields Expression" in prompt or "Fields" in prompt
@@ -117,7 +117,7 @@ class TestExpressionsPrompts:
117
117
 
118
118
  def test_views_expression_agent_prompt_exists(self, aab_prompts):
119
119
  """Test that VIEWS_EXPRESSION_AGENT_PROMPT exists."""
120
- prompt = aab_prompts.VIEWS_EXPRESSION_AGENT_PROMPT()
120
+ prompt = aab_prompts.VIEWS_EXPRESSION_AGENT_PROMPT
121
121
  assert isinstance(prompt, str)
122
122
  assert len(prompt) > 0
123
123
  assert "Views Expression" in prompt or "Views" in prompt
@@ -125,7 +125,7 @@ class TestExpressionsPrompts:
125
125
 
126
126
  def test_page_data_binder_agent_prompt_exists(self, aab_prompts):
127
127
  """Test that PAGE_DATA_BINDER_AGENT_PROMPT exists."""
128
- prompt = aab_prompts.PAGE_DATA_BINDER_AGENT_PROMPT()
128
+ prompt = aab_prompts.PAGE_DATA_BINDER_AGENT_PROMPT
129
129
  assert isinstance(prompt, str)
130
130
  assert len(prompt) > 0
131
131
  assert "Page Data Binder" in prompt or "data binding" in prompt.lower()
@@ -137,7 +137,7 @@ class TestMenuNavigationsPrompts:
137
137
 
138
138
  def test_menu_navigations_agent_system_prompt_exists(self, aab_prompts):
139
139
  """Test that MENU_NAVIGATIONS_AGENT_SYSTEM_PROMPT exists."""
140
- prompt = aab_prompts.MENU_NAVIGATIONS_AGENT_SYSTEM_PROMPT()
140
+ prompt = aab_prompts.MENU_NAVIGATIONS_AGENT_SYSTEM_PROMPT
141
141
  assert isinstance(prompt, str)
142
142
  assert len(prompt) > 0
143
143
  assert "Menu" in prompt or "Navigation" in prompt
@@ -145,7 +145,7 @@ class TestMenuNavigationsPrompts:
145
145
 
146
146
  def test_menu_navigations_prompt_contains_menu_types(self, aab_prompts):
147
147
  """Test that menu navigations prompt contains menu types."""
148
- prompt = aab_prompts.MENU_NAVIGATIONS_AGENT_SYSTEM_PROMPT()
148
+ prompt = aab_prompts.MENU_NAVIGATIONS_AGENT_SYSTEM_PROMPT
149
149
  assert "left" in prompt.lower() or "Left" in prompt
150
150
  assert "top" in prompt.lower() or "Top" in prompt
151
151
  assert "user" in prompt.lower() or "User" in prompt
@@ -157,7 +157,7 @@ class TestObjectsFieldsPrompts:
157
157
 
158
158
  def test_standard_objects_descriptions_exists(self, aab_prompts):
159
159
  """Test that STANDARD_OBJECTS_DESCRIPTIONS exists."""
160
- prompt = aab_prompts.STANDARD_OBJECTS_DESCRIPTIONS()
160
+ prompt = aab_prompts.STANDARD_OBJECTS_DESCRIPTIONS
161
161
  assert isinstance(prompt, str)
162
162
  assert len(prompt) > 0
163
163
  assert "Activities" in prompt or "activities" in prompt.lower()
@@ -165,7 +165,7 @@ class TestObjectsFieldsPrompts:
165
165
 
166
166
  def test_system_objects_descriptions_exists(self, aab_prompts):
167
167
  """Test that SYSTEM_OBJECTS_DESCRIPTIONS exists."""
168
- prompt = aab_prompts.SYSTEM_OBJECTS_DESCRIPTIONS()
168
+ prompt = aab_prompts.SYSTEM_OBJECTS_DESCRIPTIONS
169
169
  assert isinstance(prompt, str)
170
170
  assert len(prompt) > 0
171
171
  assert "Applications" in prompt or "applications" in prompt.lower()
@@ -173,7 +173,7 @@ class TestObjectsFieldsPrompts:
173
173
 
174
174
  def test_objects_fields_agent_system_prompt_exists(self, aab_prompts):
175
175
  """Test that OBJECTS_FIELDS_AGENT_SYSTEM_PROMPT exists."""
176
- prompt = aab_prompts.OBJECTS_FIELDS_AGENT_SYSTEM_PROMPT()
176
+ prompt = aab_prompts.OBJECTS_FIELDS_AGENT_SYSTEM_PROMPT
177
177
  assert isinstance(prompt, str)
178
178
  assert len(prompt) > 0
179
179
  assert "Objects" in prompt or "Fields" in prompt
@@ -181,13 +181,13 @@ class TestObjectsFieldsPrompts:
181
181
 
182
182
  def test_objects_fields_prompt_contains_restricted_objects(self, aab_prompts):
183
183
  """Test that objects fields prompt contains restricted objects list."""
184
- prompt = aab_prompts.OBJECTS_FIELDS_AGENT_SYSTEM_PROMPT()
184
+ prompt = aab_prompts.OBJECTS_FIELDS_AGENT_SYSTEM_PROMPT
185
185
  # Should contain at least some restricted object names
186
186
  assert "applications" in prompt.lower() or "objects" in prompt.lower()
187
187
 
188
188
  def test_objects_fields_prompt_contains_schema_info(self, aab_prompts):
189
189
  """Test that objects fields prompt contains schema information."""
190
- prompt = aab_prompts.OBJECTS_FIELDS_AGENT_SYSTEM_PROMPT()
190
+ prompt = aab_prompts.OBJECTS_FIELDS_AGENT_SYSTEM_PROMPT
191
191
  assert "table" in prompt.lower() or "schema" in prompt.lower()
192
192
  assert "data_type" in prompt.lower() or "data type" in prompt.lower()
193
193
 
@@ -197,14 +197,14 @@ class TestPagePlannerPrompts:
197
197
 
198
198
  def test_page_planner_agent_system_prompt_exists(self, aab_prompts):
199
199
  """Test that PAGE_PLANNER_AGENT_SYSTEM_PROMPT exists."""
200
- prompt = aab_prompts.PAGE_PLANNER_AGENT_SYSTEM_PROMPT()
200
+ prompt = aab_prompts.PAGE_PLANNER_AGENT_SYSTEM_PROMPT
201
201
  assert isinstance(prompt, str)
202
202
  assert len(prompt) > 0
203
203
  assert "Page Planner" in prompt or "page" in prompt.lower()
204
204
 
205
205
  def test_page_planner_prompt_contains_page_types(self, aab_prompts):
206
206
  """Test that page planner prompt contains page types."""
207
- prompt = aab_prompts.PAGE_PLANNER_AGENT_SYSTEM_PROMPT()
207
+ prompt = aab_prompts.PAGE_PLANNER_AGENT_SYSTEM_PROMPT
208
208
  assert "landing_page" in prompt.lower() or "landing" in prompt.lower()
209
209
  assert "dashboard" in prompt.lower()
210
210
  assert "detail_page" in prompt.lower() or "detail" in prompt.lower()
@@ -215,7 +215,7 @@ class TestPagesPrompts:
215
215
 
216
216
  def test_pages_agent_system_prompt_exists(self, aab_prompts):
217
217
  """Test that PAGES_AGENT_SYSTEM_PROMPT exists."""
218
- prompt = aab_prompts.PAGES_AGENT_SYSTEM_PROMPT()
218
+ prompt = aab_prompts.PAGES_AGENT_SYSTEM_PROMPT
219
219
  assert isinstance(prompt, str)
220
220
  assert len(prompt) > 0
221
221
  assert "Page" in prompt or "page" in prompt.lower()
@@ -223,7 +223,7 @@ class TestPagesPrompts:
223
223
 
224
224
  def test_page_data_binder_exists(self, aab_prompts):
225
225
  """Test that PAGE_DATA_BINDER exists."""
226
- prompt = aab_prompts.PAGE_DATA_BINDER()
226
+ prompt = aab_prompts.PAGE_DATA_BINDER
227
227
  assert isinstance(prompt, str)
228
228
  assert len(prompt) > 0
229
229
  assert "Page Binding" in prompt or "binding" in prompt.lower()
@@ -235,39 +235,39 @@ class TestPlannerPrompts:
235
235
 
236
236
  def test_planner_examples_exists(self, aab_prompts):
237
237
  """Test that PLANNER_EXAMPLES exists."""
238
- prompt = aab_prompts.PLANNER_EXAMPLES()
238
+ prompt = aab_prompts.PLANNER_EXAMPLES
239
239
  assert isinstance(prompt, str)
240
240
  assert len(prompt) > 0
241
241
 
242
242
  def test_planner_agent_system_prompt_exists(self, aab_prompts):
243
243
  """Test that PLANNER_AGENT_SYSTEM_PROMPT exists."""
244
- prompt = aab_prompts.PLANNER_AGENT_SYSTEM_PROMPT()
244
+ prompt = aab_prompts.PLANNER_AGENT_SYSTEM_PROMPT
245
245
  assert isinstance(prompt, str)
246
246
  assert len(prompt) > 0
247
247
  assert "Planner" in prompt or "plan" in prompt.lower()
248
248
 
249
249
  def test_planner_prompt_contains_build_order(self, aab_prompts):
250
250
  """Test that planner prompt contains build order information."""
251
- prompt = aab_prompts.PLANNER_AGENT_SYSTEM_PROMPT()
251
+ prompt = aab_prompts.PLANNER_AGENT_SYSTEM_PROMPT
252
252
  assert "Solution" in prompt or "solution" in prompt.lower()
253
253
  assert "Application" in prompt or "application" in prompt.lower()
254
254
  assert "Object" in prompt or "object" in prompt.lower()
255
255
 
256
256
  def test_planner_prompt_contains_standard_objects(self, aab_prompts):
257
257
  """Test that planner prompt contains standard objects descriptions."""
258
- prompt = aab_prompts.PLANNER_AGENT_SYSTEM_PROMPT()
258
+ prompt = aab_prompts.PLANNER_AGENT_SYSTEM_PROMPT
259
259
  # Should reference standard objects
260
260
  assert "STANDARD_OBJECTS_DESCRIPTIONS" in prompt or "standard" in prompt.lower()
261
261
 
262
262
  def test_planner_prompt_contains_system_objects(self, aab_prompts):
263
263
  """Test that planner prompt contains system objects descriptions."""
264
- prompt = aab_prompts.PLANNER_AGENT_SYSTEM_PROMPT()
264
+ prompt = aab_prompts.PLANNER_AGENT_SYSTEM_PROMPT
265
265
  # Should reference system objects
266
266
  assert "SYSTEM_OBJECTS_DESCRIPTIONS" in prompt or "system" in prompt.lower()
267
267
 
268
268
  def test_planner_prompt_contains_restricted_objects(self, aab_prompts):
269
269
  """Test that planner prompt contains restricted objects list."""
270
- prompt = aab_prompts.PLANNER_AGENT_SYSTEM_PROMPT()
270
+ prompt = aab_prompts.PLANNER_AGENT_SYSTEM_PROMPT
271
271
  # Should reference restricted objects
272
272
  assert "RESTRICTED_OBJECTS_LIST" in prompt or "reserved" in prompt.lower()
273
273
 
@@ -277,24 +277,24 @@ class TestRouterPrompts:
277
277
 
278
278
  def test_router_agent_system_prompt_exists(self, aab_prompts):
279
279
  """Test that ROUTER_AGENT_SYSTEM_PROMPT exists."""
280
- prompt = aab_prompts.ROUTER_AGENT_SYSTEM_PROMPT()
280
+ prompt = aab_prompts.ROUTER_AGENT_SYSTEM_PROMPT
281
281
  assert isinstance(prompt, str)
282
282
  assert len(prompt) > 0
283
283
  assert "Router" in prompt or "Snappy" in prompt or "Supervisor" in prompt
284
284
 
285
285
  def test_router_prompt_contains_standard_objects(self, aab_prompts):
286
286
  """Test that router prompt contains standard objects descriptions."""
287
- prompt = aab_prompts.ROUTER_AGENT_SYSTEM_PROMPT()
287
+ prompt = aab_prompts.ROUTER_AGENT_SYSTEM_PROMPT
288
288
  assert "STANDARD_OBJECTS_DESCRIPTIONS" in prompt or "standard" in prompt.lower()
289
289
 
290
290
  def test_router_prompt_contains_system_objects(self, aab_prompts):
291
291
  """Test that router prompt contains system objects descriptions."""
292
- prompt = aab_prompts.ROUTER_AGENT_SYSTEM_PROMPT()
292
+ prompt = aab_prompts.ROUTER_AGENT_SYSTEM_PROMPT
293
293
  assert "SYSTEM_OBJECTS_DESCRIPTIONS" in prompt or "system" in prompt.lower()
294
294
 
295
295
  def test_router_prompt_contains_planner_examples(self, aab_prompts):
296
296
  """Test that router prompt contains planner examples."""
297
- prompt = aab_prompts.ROUTER_AGENT_SYSTEM_PROMPT()
297
+ prompt = aab_prompts.ROUTER_AGENT_SYSTEM_PROMPT
298
298
  assert "PLANNER_EXAMPLES" in prompt or "example" in prompt.lower()
299
299
 
300
300
 
@@ -303,7 +303,7 @@ class TestSolutionsApplicationsPrompts:
303
303
 
304
304
  def test_solutions_applications_agent_system_prompt_exists(self, aab_prompts):
305
305
  """Test that SOLUTIONS_APPLICATIONS_AGENT_SYSTEM_PROMPT exists."""
306
- prompt = aab_prompts.SOLUTIONS_APPLICATIONS_AGENT_SYSTEM_PROMPT()
306
+ prompt = aab_prompts.SOLUTIONS_APPLICATIONS_AGENT_SYSTEM_PROMPT
307
307
  assert isinstance(prompt, str)
308
308
  assert len(prompt) > 0
309
309
  assert "Solution" in prompt or "Application" in prompt
@@ -311,7 +311,7 @@ class TestSolutionsApplicationsPrompts:
311
311
 
312
312
  def test_solutions_applications_prompt_contains_default_ids(self, aab_prompts):
313
313
  """Test that solutions applications prompt contains default IDs."""
314
- prompt = aab_prompts.SOLUTIONS_APPLICATIONS_AGENT_SYSTEM_PROMPT()
314
+ prompt = aab_prompts.SOLUTIONS_APPLICATIONS_AGENT_SYSTEM_PROMPT
315
315
  assert DEFAULT_SOLUTION_ID in prompt
316
316
  assert DEFAULT_APPLICATION_ID in prompt
317
317
 
@@ -321,7 +321,7 @@ class TestViewsPrompts:
321
321
 
322
322
  def test_view_type_details_exists(self, aab_prompts):
323
323
  """Test that VIEW_TYPE_DETAILS exists."""
324
- prompt = aab_prompts.VIEW_TYPE_DETAILS()
324
+ prompt = aab_prompts.VIEW_TYPE_DETAILS
325
325
  assert isinstance(prompt, str)
326
326
  assert len(prompt) > 0
327
327
  assert "view" in prompt.lower()
@@ -329,7 +329,7 @@ class TestViewsPrompts:
329
329
 
330
330
  def test_common_view_properties_exists(self, aab_prompts):
331
331
  """Test that COMMON_VIEW_PROPERTIES exists."""
332
- prompt = aab_prompts.COMMON_VIEW_PROPERTIES()
332
+ prompt = aab_prompts.COMMON_VIEW_PROPERTIES
333
333
  assert isinstance(prompt, str)
334
334
  assert len(prompt) > 0
335
335
  assert "type" in prompt.lower()
@@ -337,91 +337,91 @@ class TestViewsPrompts:
337
337
 
338
338
  def test_list_view_properties_exists(self, aab_prompts):
339
339
  """Test that LIST_VIEW_PROPERTIES exists."""
340
- prompt = aab_prompts.LIST_VIEW_PROPERTIES()
340
+ prompt = aab_prompts.LIST_VIEW_PROPERTIES
341
341
  assert isinstance(prompt, str)
342
342
  assert len(prompt) > 0
343
343
  assert "list" in prompt.lower() or "inline" in prompt.lower()
344
344
 
345
345
  def test_card_view_properties_exists(self, aab_prompts):
346
346
  """Test that CARD_VIEW_PROPERTIES exists."""
347
- prompt = aab_prompts.CARD_VIEW_PROPERTIES()
347
+ prompt = aab_prompts.CARD_VIEW_PROPERTIES
348
348
  assert isinstance(prompt, str)
349
349
  assert len(prompt) > 0
350
350
  assert "card" in prompt.lower() or "title" in prompt.lower()
351
351
 
352
352
  def test_detail_view_properties_exists(self, aab_prompts):
353
353
  """Test that DETAIL_VIEW_PROPERTIES exists."""
354
- prompt = aab_prompts.DETAIL_VIEW_PROPERTIES()
354
+ prompt = aab_prompts.DETAIL_VIEW_PROPERTIES
355
355
  assert isinstance(prompt, str)
356
356
  assert len(prompt) > 0
357
357
  assert "detail" in prompt.lower() or "feed" in prompt.lower()
358
358
 
359
359
  def test_create_view_properties_exists(self, aab_prompts):
360
360
  """Test that CREATE_VIEW_PROPERTIES exists."""
361
- prompt = aab_prompts.CREATE_VIEW_PROPERTIES()
361
+ prompt = aab_prompts.CREATE_VIEW_PROPERTIES
362
362
  assert isinstance(prompt, str)
363
363
  assert len(prompt) > 0
364
364
  assert "create" in prompt.lower() or "recaptcha" in prompt.lower()
365
365
 
366
366
  def test_map_view_properties_exists(self, aab_prompts):
367
367
  """Test that MAP_VIEW_PROPERTIES exists."""
368
- prompt = aab_prompts.MAP_VIEW_PROPERTIES()
368
+ prompt = aab_prompts.MAP_VIEW_PROPERTIES
369
369
  assert isinstance(prompt, str)
370
370
  assert len(prompt) > 0
371
371
  assert "map" in prompt.lower() or "address" in prompt.lower()
372
372
 
373
373
  def test_calendar_view_properties_exists(self, aab_prompts):
374
374
  """Test that CALENDAR_VIEW_PROPERTIES exists."""
375
- prompt = aab_prompts.CALENDAR_VIEW_PROPERTIES()
375
+ prompt = aab_prompts.CALENDAR_VIEW_PROPERTIES
376
376
  assert isinstance(prompt, str)
377
377
  assert len(prompt) > 0
378
378
  assert "calendar" in prompt.lower() or "date" in prompt.lower()
379
379
 
380
380
  def test_deck_view_properties_exists(self, aab_prompts):
381
381
  """Test that DECK_VIEW_PROPERTIES exists."""
382
- prompt = aab_prompts.DECK_VIEW_PROPERTIES()
382
+ prompt = aab_prompts.DECK_VIEW_PROPERTIES
383
383
  assert isinstance(prompt, str)
384
384
  assert len(prompt) > 0
385
385
  assert "deck" in prompt.lower() or "badge" in prompt.lower()
386
386
 
387
387
  def test_view_links_properties_exists(self, aab_prompts):
388
388
  """Test that VIEW_LINKS_PROPERTIES exists."""
389
- prompt = aab_prompts.VIEW_LINKS_PROPERTIES()
389
+ prompt = aab_prompts.VIEW_LINKS_PROPERTIES
390
390
  assert isinstance(prompt, str)
391
391
  assert len(prompt) > 0
392
392
  assert "view link" in prompt.lower() or "button" in prompt.lower()
393
393
 
394
394
  def test_view_filters_properties_exists(self, aab_prompts):
395
395
  """Test that VIEW_FILTERS_PROPERTIES exists."""
396
- prompt = aab_prompts.VIEW_FILTERS_PROPERTIES()
396
+ prompt = aab_prompts.VIEW_FILTERS_PROPERTIES
397
397
  assert isinstance(prompt, str)
398
398
  assert len(prompt) > 0
399
399
  assert "filter" in prompt.lower() or "condition" in prompt.lower()
400
400
 
401
401
  def test_views_agent_system_prompt_exists(self, aab_prompts):
402
402
  """Test that VIEWS_AGENT_SYSTEM_PROMPT exists."""
403
- prompt = aab_prompts.VIEWS_AGENT_SYSTEM_PROMPT()
403
+ prompt = aab_prompts.VIEWS_AGENT_SYSTEM_PROMPT
404
404
  assert isinstance(prompt, str)
405
405
  assert len(prompt) > 0
406
406
  assert "Views" in prompt or "view" in prompt.lower()
407
407
 
408
408
  def test_views_planner_agent_system_prompt_exists(self, aab_prompts):
409
409
  """Test that VIEWS_PLANNER_AGENT_SYSTEM_PROMPT exists."""
410
- prompt = aab_prompts.VIEWS_PLANNER_AGENT_SYSTEM_PROMPT()
410
+ prompt = aab_prompts.VIEWS_PLANNER_AGENT_SYSTEM_PROMPT
411
411
  assert isinstance(prompt, str)
412
412
  assert len(prompt) > 0
413
413
  assert "View Planner" in prompt or "planner" in prompt.lower()
414
414
 
415
415
  def test_view_links_planner_prompt_exists(self, aab_prompts):
416
416
  """Test that VIEW_LINKS_PLANNER_PROMPT exists."""
417
- prompt = aab_prompts.VIEW_LINKS_PLANNER_PROMPT()
417
+ prompt = aab_prompts.VIEW_LINKS_PLANNER_PROMPT
418
418
  assert isinstance(prompt, str)
419
419
  assert len(prompt) > 0
420
420
  assert "View Link" in prompt or "view link" in prompt.lower()
421
421
 
422
422
  def test_view_filter_planner_prompt_exists(self, aab_prompts):
423
423
  """Test that VIEW_FILTER_PLANNER_PROMPT exists."""
424
- prompt = aab_prompts.VIEW_FILTER_PLANNER_PROMPT()
424
+ prompt = aab_prompts.VIEW_FILTER_PLANNER_PROMPT
425
425
  assert isinstance(prompt, str)
426
426
  assert len(prompt) > 0
427
427
  assert "View Filter" in prompt or "filter" in prompt.lower()
@@ -550,7 +550,7 @@ class TestPromptQuality:
550
550
  for method_name in all_methods:
551
551
  if hasattr(aab_prompts, method_name):
552
552
  method = getattr(aab_prompts, method_name)
553
- prompt = method()
553
+ prompt = method
554
554
  assert len(prompt) <= max_length, f"{method_name} is too long ({len(prompt)} chars)"
555
555
 
556
556
  def test_prompts_are_not_empty(self, aab_prompts):
@@ -575,7 +575,7 @@ class TestPromptQuality:
575
575
  for method_name in all_methods:
576
576
  if hasattr(aab_prompts, method_name):
577
577
  method = getattr(aab_prompts, method_name)
578
- prompt = method()
578
+ prompt = method
579
579
  assert len(prompt.strip()) > 0, f"{method_name} is empty"
580
580
 
581
581
  def test_prompts_have_no_obvious_formatting_errors(self, aab_prompts):
@@ -596,7 +596,7 @@ class TestPromptQuality:
596
596
  for method_name in all_methods:
597
597
  if hasattr(aab_prompts, method_name):
598
598
  method = getattr(aab_prompts, method_name)
599
- prompt = method()
599
+ prompt = method
600
600
  # Check for common formatting issues
601
601
  # Note: Some prompts may have intentional braces in code examples, so we check for unreplaced template placeholders instead
602
602
  # Check for placeholder format strings that weren't replaced (double braces that should have been single)
@@ -613,12 +613,12 @@ class TestPromptIntegration:
613
613
  def test_expression_prompts_reference_core_expressions(self, aab_prompts):
614
614
  """Test that expression-related prompts reference core expressions."""
615
615
  expression_prompts = [
616
- aab_prompts.EXPRESSIONS_AGENT_PROMPT(),
617
- aab_prompts.SHOW_IF_EXPRESSION_AGENT_PROMPT(),
618
- aab_prompts.VIEW_FILTER_EXPRESSION_AGENT_PROMPT(),
619
- aab_prompts.FIELDS_EXPRESSION_AGENT_PROMPT(),
620
- aab_prompts.VIEWS_EXPRESSION_AGENT_PROMPT(),
621
- aab_prompts.PAGE_DATA_BINDER_AGENT_PROMPT(),
616
+ aab_prompts.EXPRESSIONS_AGENT_PROMPT,
617
+ aab_prompts.SHOW_IF_EXPRESSION_AGENT_PROMPT,
618
+ aab_prompts.VIEW_FILTER_EXPRESSION_AGENT_PROMPT,
619
+ aab_prompts.FIELDS_EXPRESSION_AGENT_PROMPT,
620
+ aab_prompts.VIEWS_EXPRESSION_AGENT_PROMPT,
621
+ aab_prompts.PAGE_DATA_BINDER_AGENT_PROMPT,
622
622
  ]
623
623
 
624
624
  for prompt in expression_prompts:
@@ -627,7 +627,7 @@ class TestPromptIntegration:
627
627
 
628
628
  def test_planner_prompt_integrates_components(self, aab_prompts):
629
629
  """Test that planner prompt integrates all necessary components."""
630
- prompt = aab_prompts.PLANNER_AGENT_SYSTEM_PROMPT()
630
+ prompt = aab_prompts.PLANNER_AGENT_SYSTEM_PROMPT
631
631
  # Should reference standard objects, system objects, and restricted objects
632
632
  assert "STANDARD_OBJECTS_DESCRIPTIONS" in prompt or "standard" in prompt.lower()
633
633
  assert "SYSTEM_OBJECTS_DESCRIPTIONS" in prompt or "system" in prompt.lower()
@@ -635,7 +635,7 @@ class TestPromptIntegration:
635
635
 
636
636
  def test_router_prompt_integrates_components(self, aab_prompts):
637
637
  """Test that router prompt integrates all necessary components."""
638
- prompt = aab_prompts.ROUTER_AGENT_SYSTEM_PROMPT()
638
+ prompt = aab_prompts.ROUTER_AGENT_SYSTEM_PROMPT
639
639
  # Should reference standard objects, system objects, and planner examples
640
640
  assert "STANDARD_OBJECTS_DESCRIPTIONS" in prompt or "standard" in prompt.lower()
641
641
  assert "SYSTEM_OBJECTS_DESCRIPTIONS" in prompt or "system" in prompt.lower()
@@ -643,14 +643,14 @@ class TestPromptIntegration:
643
643
 
644
644
  def test_views_prompt_integrates_view_properties(self, aab_prompts):
645
645
  """Test that views prompt integrates view property templates."""
646
- prompt = aab_prompts.VIEWS_AGENT_SYSTEM_PROMPT()
646
+ prompt = aab_prompts.VIEWS_AGENT_SYSTEM_PROMPT
647
647
  # Should contain view type details and properties (already formatted)
648
648
  assert "view type" in prompt.lower() or "list" in prompt.lower() or "detail" in prompt.lower()
649
649
  assert "property" in prompt.lower() or "object_id" in prompt.lower() or "type" in prompt.lower()
650
650
 
651
651
  def test_views_planner_prompt_integrates_all_properties(self, aab_prompts):
652
652
  """Test that views planner prompt integrates all view properties."""
653
- prompt = aab_prompts.VIEWS_PLANNER_AGENT_SYSTEM_PROMPT()
653
+ prompt = aab_prompts.VIEWS_PLANNER_AGENT_SYSTEM_PROMPT
654
654
  # Should contain all view property content (already formatted)
655
655
  assert "view type" in prompt.lower() or "list" in prompt.lower() or "detail" in prompt.lower()
656
656
  assert "property" in prompt.lower() or "object_id" in prompt.lower()
File without changes