aab-prompts 1.0.0__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.
@@ -0,0 +1,18 @@
1
+ Metadata-Version: 2.4
2
+ Name: aab-prompts
3
+ Version: 1.0.0
4
+ Summary: AAB Prompts - Application Builder prompt management library
5
+ Author: AAB Prompts
6
+ License: MIT
7
+ Keywords: prompts,aab,application-builder
8
+ Classifier: Development Status :: 4 - Beta
9
+ Classifier: Intended Audience :: Developers
10
+ Classifier: License :: OSI Approved :: MIT License
11
+ Classifier: Programming Language :: Python :: 3
12
+ Classifier: Programming Language :: Python :: 3.8
13
+ Classifier: Programming Language :: Python :: 3.9
14
+ Classifier: Programming Language :: Python :: 3.10
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Programming Language :: Python :: 3.13
18
+ Requires-Python: >=3.8
@@ -0,0 +1,18 @@
1
+ Metadata-Version: 2.4
2
+ Name: aab-prompts
3
+ Version: 1.0.0
4
+ Summary: AAB Prompts - Application Builder prompt management library
5
+ Author: AAB Prompts
6
+ License: MIT
7
+ Keywords: prompts,aab,application-builder
8
+ Classifier: Development Status :: 4 - Beta
9
+ Classifier: Intended Audience :: Developers
10
+ Classifier: License :: OSI Approved :: MIT License
11
+ Classifier: Programming Language :: Python :: 3
12
+ Classifier: Programming Language :: Python :: 3.8
13
+ Classifier: Programming Language :: Python :: 3.9
14
+ Classifier: Programming Language :: Python :: 3.10
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Programming Language :: Python :: 3.13
18
+ Requires-Python: >=3.8
@@ -0,0 +1,22 @@
1
+ aab_service.py
2
+ pyproject.toml
3
+ aab_prompts.egg-info/PKG-INFO
4
+ aab_prompts.egg-info/SOURCES.txt
5
+ aab_prompts.egg-info/dependency_links.txt
6
+ aab_prompts.egg-info/top_level.txt
7
+ prompts/__init__.py
8
+ prompts/breadcrumbs.py
9
+ prompts/constants.py
10
+ prompts/expressions.py
11
+ prompts/menu_navigations.py
12
+ prompts/objects_fields.py
13
+ prompts/page_planner.py
14
+ prompts/pages.py
15
+ prompts/planner.py
16
+ prompts/router.py
17
+ prompts/solutions_applications.py
18
+ prompts/view_filter_planner.py
19
+ prompts/view_links_planner.py
20
+ prompts/view_planner.py
21
+ prompts/views.py
22
+ tests/test_prompts.py
@@ -0,0 +1,2 @@
1
+ aab_service
2
+ prompts
@@ -0,0 +1,340 @@
1
+ from prompts.breadcrumbs import BREADCRUMB_AGENT_SYSTEM_PROMPT_TEMPLATE
2
+ from prompts.expressions import (
3
+ EXPRESSION_REQUIREMENTS_TEMPLATE,
4
+ EXPRESSIONS_AGENT_PROMPT_TEMPLATE,
5
+ FIELDS_EXPRESSION_AGENT_PROMPT_TEMPLATE,
6
+ INITIAL_VALUE_EXAMPLES_TEMPLATE,
7
+ PAGE_DATA_BINDER_AGENT_PROMPT_TEMPLATE,
8
+ SHOW_IF_EXPRESSION_AGENT_PROMPT_TEMPLATE,
9
+ VIEW_FILTER_EXPRESSION_AGENT_PROMPT_TEMPLATE,
10
+ VIEWS_EXPRESSION_AGENT_PROMPT_TEMPLATE,
11
+ )
12
+ from prompts.menu_navigations import MENU_NAVIGATIONS_AGENT_SYSTEM_PROMPT_TEMPLATE
13
+ from prompts.objects_fields import OBJECTS_FIELDS_AGENT_SYSTEM_PROMPT_TEMPLATE, STANDARD_OBJECTS_DESCRIPTIONS_TEMPLATE, SYSTEM_OBJECTS_DESCRIPTIONS_TEMPLATE
14
+ from prompts.page_planner import PAGE_PLANNER_AGENT_SYSTEM_PROMPT_TEMPLATE
15
+ from prompts.pages import PAGE_DATA_BINDER_TEMPLATE, PAGES_AGENT_SYSTEM_PROMPT_TEMPLATE
16
+ from prompts.planner import PLANNER_AGENT_SYSTEM_PROMPT_TEMPLATE, PLANNER_EXAMPLES_TEMPLATE
17
+ from prompts.router import ROUTER_AGENT_SYSTEM_PROMPT_TEMPLATE
18
+ from prompts.solutions_applications import SOLUTIONS_APPLICATIONS_AGENT_SYSTEM_PROMPT_TEMPLATE
19
+ from prompts.view_filter_planner import VIEW_FILTER_PLANNER_PROMPT_TEMPLATE
20
+ from prompts.view_links_planner import VIEW_LINKS_PLANNER_PROMPT_TEMPLATE
21
+ from prompts.view_planner import VIEWS_PLANNER_AGENT_SYSTEM_PROMPT_TEMPLATE
22
+ from prompts.views import CALENDAR_VIEW_PROPERTIES_TEMPLATE, CARD_VIEW_PROPERTIES_TEMPLATE, COMMON_VIEW_PROPERTIES_TEMPLATE, CREATE_VIEW_PROPERTIES_TEMPLATE, DECK_VIEW_PROPERTIES_TEMPLATE, DETAIL_VIEW_PROPERTIES_TEMPLATE, LIST_VIEW_PROPERTIES_TEMPLATE, MAP_VIEW_PROPERTIES_TEMPLATE, VIEW_FILTERS_PROPERTIES_TEMPLATE, VIEW_LINKS_PROPERTIES_TEMPLATE, VIEW_TYPE_DETAILS_TEMPLATE, VIEWS_AGENT_SYSTEM_PROMPT_TEMPLATE
23
+
24
+
25
+ class _BreadcrumbsHandler:
26
+ """Handler for all breadcrumb-related prompts."""
27
+
28
+ def BREADCRUMB_AGENT_SYSTEM_PROMPT(self) -> str:
29
+ return BREADCRUMB_AGENT_SYSTEM_PROMPT_TEMPLATE
30
+
31
+
32
+ class _ExpressionsHandler:
33
+ """Handler for all expression-related prompts."""
34
+
35
+ def __init__(self, core_expressions: dict) -> None:
36
+ self.core_expressions = core_expressions
37
+
38
+ def _generate_system_prompt(self, expressions: dict) -> str:
39
+ sections: list[str] = []
40
+
41
+ for key, value in expressions.items():
42
+ name = value.get("name", "")
43
+ description = value.get("description", "")
44
+ examples = value.get("examples", [])
45
+ return_type = value.get("returns", "")
46
+ aliases = value.get("aliases", [])
47
+
48
+ example_lines = (
49
+ "\n".join(
50
+ f"- {ex.get('syntax')} → {ex.get('returns')}" for ex in examples
51
+ )
52
+ or "None"
53
+ )
54
+
55
+ alias_lines = (
56
+ "\n".join(f"- {alias}" for alias in aliases) if aliases else "None"
57
+ )
58
+
59
+ sections.append(
60
+ f"""- ### {key}
61
+
62
+ Function Signature:
63
+ {name}
64
+
65
+ Description:
66
+ {description}
67
+
68
+ Return Type:
69
+ {return_type}
70
+
71
+ Aliases:
72
+ {alias_lines}
73
+
74
+ Examples:
75
+ {example_lines}
76
+ """
77
+ )
78
+
79
+ return "\n".join(sections)
80
+
81
+ def CORE_EXPRESSIONS(self) -> str:
82
+ return f"""
83
+ ## Built in Core Expressions
84
+
85
+ The following are the core expressions available in SnapApp:
86
+
87
+ {self._generate_system_prompt(self.core_expressions)}
88
+ """
89
+
90
+ def EXPRESSION_REQUIREMENTS(self) -> str:
91
+ return EXPRESSION_REQUIREMENTS_TEMPLATE
92
+
93
+ def EXPRESSIONS_AGENT_PROMPT(self) -> str:
94
+ return EXPRESSIONS_AGENT_PROMPT_TEMPLATE.format(
95
+ EXPRESSION_REQUIREMENTS=self.EXPRESSION_REQUIREMENTS(),
96
+ CORE_EXPRESSIONS=self.CORE_EXPRESSIONS(),
97
+ )
98
+
99
+ def SHOW_IF_EXPRESSION_AGENT_PROMPT(self) -> str:
100
+ return SHOW_IF_EXPRESSION_AGENT_PROMPT_TEMPLATE.format(
101
+ EXPRESSION_REQUIREMENTS=self.EXPRESSION_REQUIREMENTS(),
102
+ CORE_EXPRESSIONS=self.CORE_EXPRESSIONS(),
103
+ )
104
+
105
+ def INITIAL_VALUE_EXAMPLES(self) -> str:
106
+ return INITIAL_VALUE_EXAMPLES_TEMPLATE
107
+
108
+ def VIEW_FILTER_EXPRESSION_AGENT_PROMPT(self) -> str:
109
+ return VIEW_FILTER_EXPRESSION_AGENT_PROMPT_TEMPLATE.format(
110
+ EXPRESSION_REQUIREMENTS=self.EXPRESSION_REQUIREMENTS(),
111
+ CORE_EXPRESSIONS=self.CORE_EXPRESSIONS(),
112
+ )
113
+
114
+ def FIELDS_EXPRESSION_AGENT_PROMPT(self) -> str:
115
+ return FIELDS_EXPRESSION_AGENT_PROMPT_TEMPLATE.format(
116
+ EXPRESSION_REQUIREMENTS=self.EXPRESSION_REQUIREMENTS(),
117
+ CORE_EXPRESSIONS=self.CORE_EXPRESSIONS(),
118
+ )
119
+
120
+ def VIEWS_EXPRESSION_AGENT_PROMPT(self) -> str:
121
+ return VIEWS_EXPRESSION_AGENT_PROMPT_TEMPLATE.format(
122
+ EXPRESSION_REQUIREMENTS=self.EXPRESSION_REQUIREMENTS(),
123
+ CORE_EXPRESSIONS=self.CORE_EXPRESSIONS(),
124
+ )
125
+
126
+ def PAGE_DATA_BINDER_AGENT_PROMPT(self) -> str:
127
+ return PAGE_DATA_BINDER_AGENT_PROMPT_TEMPLATE.format(
128
+ EXPRESSION_REQUIREMENTS=self.EXPRESSION_REQUIREMENTS(),
129
+ CORE_EXPRESSIONS=self.CORE_EXPRESSIONS(),
130
+ )
131
+
132
+ class _MenuNavigationsHandler:
133
+ """Handler for all menu navigation-related prompts."""
134
+
135
+ def MENU_NAVIGATIONS_AGENT_SYSTEM_PROMPT(self) -> str:
136
+ return MENU_NAVIGATIONS_AGENT_SYSTEM_PROMPT_TEMPLATE
137
+
138
+
139
+ class _ObjectsFieldsHandler:
140
+ """Handler for all object and field-related prompts."""
141
+
142
+ def __init__(self, restricted_objects_list: list[str]) -> None:
143
+ self.restricted_objects_list = restricted_objects_list
144
+
145
+ def STANDARD_OBJECTS_DESCRIPTIONS(self) -> str:
146
+ return STANDARD_OBJECTS_DESCRIPTIONS_TEMPLATE
147
+
148
+ def SYSTEM_OBJECTS_DESCRIPTIONS(self) -> str:
149
+ return SYSTEM_OBJECTS_DESCRIPTIONS_TEMPLATE
150
+
151
+ def OBJECTS_FIELDS_AGENT_SYSTEM_PROMPT(self) -> str:
152
+ return OBJECTS_FIELDS_AGENT_SYSTEM_PROMPT_TEMPLATE.format(
153
+ RESTRICTED_OBJECTS_LIST=", ".join(self.restricted_objects_list),
154
+ )
155
+
156
+
157
+ class _PagePlannerHandler:
158
+ """Handler for all page planner-related prompts."""
159
+
160
+ def PAGE_PLANNER_AGENT_SYSTEM_PROMPT(self) -> str:
161
+ return PAGE_PLANNER_AGENT_SYSTEM_PROMPT_TEMPLATE
162
+
163
+
164
+ class _PagesHandler:
165
+ """Handler for all page-related prompts."""
166
+
167
+ def PAGES_AGENT_SYSTEM_PROMPT(self) -> str:
168
+ return PAGES_AGENT_SYSTEM_PROMPT_TEMPLATE
169
+
170
+ def PAGE_DATA_BINDER(self) -> str:
171
+ return PAGE_DATA_BINDER_TEMPLATE
172
+
173
+
174
+ class _PlannerHandler:
175
+ """Handler for all planner-related prompts."""
176
+
177
+ def __init__(self, restricted_objects_list: list[str], standard_objects_descriptions: str, system_objects_descriptions: str) -> None:
178
+ self.restricted_objects_list = restricted_objects_list
179
+ self.standard_objects_descriptions = standard_objects_descriptions
180
+ self.system_objects_descriptions = system_objects_descriptions
181
+
182
+ def PLANNER_EXAMPLES(self) -> str:
183
+ return '\n\n\n'.join(PLANNER_EXAMPLES_TEMPLATE)
184
+
185
+ def PLANNER_AGENT_SYSTEM_PROMPT(self) -> str:
186
+ return PLANNER_AGENT_SYSTEM_PROMPT_TEMPLATE.format(
187
+ RESTRICTED_OBJECTS_LIST=", ".join(self.restricted_objects_list),
188
+ STANDARD_OBJECTS_DESCRIPTIONS=self.standard_objects_descriptions,
189
+ SYSTEM_OBJECTS_DESCRIPTIONS=self.system_objects_descriptions,
190
+ PLANNER_EXAMPLES=self.PLANNER_EXAMPLES(),
191
+ )
192
+
193
+
194
+ class _RouterHandler:
195
+ """Handler for all router-related prompts."""
196
+
197
+ def __init__(self, standard_objects_descriptions: str, system_objects_descriptions: str, planner_examples: list[str]) -> None:
198
+ self.standard_objects_descriptions = standard_objects_descriptions
199
+ self.system_objects_descriptions = system_objects_descriptions
200
+ self.planner_examples = planner_examples
201
+
202
+ def ROUTER_AGENT_SYSTEM_PROMPT(self) -> str:
203
+ return ROUTER_AGENT_SYSTEM_PROMPT_TEMPLATE.format(
204
+ STANDARD_OBJECTS_DESCRIPTIONS=self.standard_objects_descriptions,
205
+ SYSTEM_OBJECTS_DESCRIPTIONS=self.system_objects_descriptions,
206
+ PLANNER_EXAMPLES=self.planner_examples,
207
+ )
208
+
209
+
210
+ class _SolutionsApplicationsHandler:
211
+ """Handler for all solutions and applications-related prompts."""
212
+
213
+ def __init__(self, default_solution_id: str, default_application_id: str) -> None:
214
+ self.default_solution_id = default_solution_id
215
+ self.default_application_id = default_application_id
216
+
217
+ def SOLUTIONS_APPLICATIONS_AGENT_SYSTEM_PROMPT(self) -> str:
218
+ return SOLUTIONS_APPLICATIONS_AGENT_SYSTEM_PROMPT_TEMPLATE.format(
219
+ DEFAULT_SOLUTION_ID=self.default_solution_id,
220
+ DEFAULT_APPLICATION_ID=self.default_application_id,
221
+ )
222
+
223
+
224
+ class _ViewsHandler:
225
+ """Handler for all view-related prompts."""
226
+
227
+ def VIEW_TYPE_DETAILS(self) -> str:
228
+ return VIEW_TYPE_DETAILS_TEMPLATE
229
+
230
+ def COMMON_VIEW_PROPERTIES(self) -> str:
231
+ return COMMON_VIEW_PROPERTIES_TEMPLATE
232
+
233
+ def LIST_VIEW_PROPERTIES(self) -> str:
234
+ return LIST_VIEW_PROPERTIES_TEMPLATE
235
+
236
+ def CARD_VIEW_PROPERTIES(self) -> str:
237
+ return CARD_VIEW_PROPERTIES_TEMPLATE
238
+
239
+ def DETAIL_VIEW_PROPERTIES(self) -> str:
240
+ return DETAIL_VIEW_PROPERTIES_TEMPLATE
241
+
242
+ def CREATE_VIEW_PROPERTIES(self) -> str:
243
+ return CREATE_VIEW_PROPERTIES_TEMPLATE
244
+
245
+ def MAP_VIEW_PROPERTIES(self) -> str:
246
+ return MAP_VIEW_PROPERTIES_TEMPLATE
247
+
248
+ def CALENDAR_VIEW_PROPERTIES(self) -> str:
249
+ return CALENDAR_VIEW_PROPERTIES_TEMPLATE
250
+
251
+ def DECK_VIEW_PROPERTIES(self) -> str:
252
+ return DECK_VIEW_PROPERTIES_TEMPLATE
253
+
254
+ def VIEW_LINKS_PROPERTIES(self) -> str:
255
+ return VIEW_LINKS_PROPERTIES_TEMPLATE
256
+
257
+ def VIEW_FILTERS_PROPERTIES(self) -> str:
258
+ return VIEW_FILTERS_PROPERTIES_TEMPLATE
259
+
260
+ def VIEWS_AGENT_SYSTEM_PROMPT(self) -> str:
261
+ 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(),
271
+ )
272
+
273
+ def VIEWS_PLANNER_AGENT_SYSTEM_PROMPT(self) -> str:
274
+ 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(),
286
+ )
287
+
288
+ def VIEW_LINKS_PLANNER_PROMPT(self) -> str:
289
+ return VIEW_LINKS_PLANNER_PROMPT_TEMPLATE.format(
290
+ VIEW_LINKS_PROPERTIES=self.VIEW_LINKS_PROPERTIES(),
291
+ )
292
+
293
+
294
+ def VIEW_FILTER_PLANNER_PROMPT(self) -> str:
295
+ return VIEW_FILTER_PLANNER_PROMPT_TEMPLATE.format(
296
+ VIEW_FILTERS_PROPERTIES=self.VIEW_FILTERS_PROPERTIES(),
297
+ )
298
+
299
+
300
+
301
+ class AABPrompts:
302
+ """Main prompts class that coordinates all prompt handlers."""
303
+
304
+ def __init__(self, core_expressions: dict, restricted_objects_list: list[str], default_solution_id: str, default_application_id: str) -> None:
305
+ # Initialize handlers
306
+ self._objects_fields = _ObjectsFieldsHandler(restricted_objects_list)
307
+ self._planner = _PlannerHandler(
308
+ restricted_objects_list,
309
+ self._objects_fields.STANDARD_OBJECTS_DESCRIPTIONS(),
310
+ self._objects_fields.SYSTEM_OBJECTS_DESCRIPTIONS()
311
+ )
312
+
313
+ # Store all handlers in a list for easy iteration
314
+ self._handlers = [
315
+ _BreadcrumbsHandler(),
316
+ _ExpressionsHandler(core_expressions),
317
+ _MenuNavigationsHandler(),
318
+ self._objects_fields,
319
+ _PagePlannerHandler(),
320
+ _PagesHandler(),
321
+ self._planner,
322
+ _RouterHandler(
323
+ self._objects_fields.STANDARD_OBJECTS_DESCRIPTIONS(),
324
+ self._objects_fields.SYSTEM_OBJECTS_DESCRIPTIONS(),
325
+ self._planner.PLANNER_EXAMPLES()
326
+ ),
327
+ _SolutionsApplicationsHandler(default_solution_id, default_application_id),
328
+ _ViewsHandler(),
329
+ ]
330
+
331
+ def __getattr__(self, name: str):
332
+ """Automatically delegate method calls to the appropriate handler."""
333
+ for handler in self._handlers:
334
+ if hasattr(handler, name):
335
+ return getattr(handler, name)
336
+ raise AttributeError(f"'{self.__class__.__name__}' object has no attribute '{name}'")
337
+
338
+
339
+
340
+
File without changes
@@ -0,0 +1,108 @@
1
+ BREADCRUMB_AGENT_SYSTEM_PROMPT_TEMPLATE = f"""
2
+ You are the SnapApp Breadcrumbs Specialist, an expert AI assistant dedicated
3
+ to helping users design, configure, and troubleshoot breadcrumb navigation
4
+ within the SnapApp platform. Your goal is to ensure users create hierarchical,
5
+ user-friendly navigation paths that strictly adhere to SnapApp's technical
6
+ specifications.
7
+
8
+ You possess deep knowledge of SnapApp's breadcrumb system based on the.
9
+ You understand that breadcrumbs are hierarchical links appearing at
10
+ the top of a page to show the path from the homepage to the current content.
11
+
12
+ ---
13
+ # What are Breadcrumbs in SnapApp?
14
+
15
+ Breadcrumbs provides users with hierarchical links that aid in navigating
16
+ and understanding the structure of a website or application.
17
+ It appears as a trail of links at the top of a page, showing the path from
18
+ the homepage to the current page or content. This navigation method helps users
19
+ easily trace their steps back through different levels of a website, enhancing
20
+ usability and reducing confusion, especially in complex or deep site structures.
21
+ It also provides context and orientation, allowing users to quickly grasp where
22
+ they are within the overall site hierarchy.
23
+
24
+ Eg: Docs / UX / Components / Breadcrumbs
25
+ ---
26
+
27
+
28
+ ---
29
+ # When to create Breadcrumbs?
30
+ Create Breadcrumbs when:
31
+ - The application has multiple levels of hierarchy or nested views.
32
+ - The user needs to navigate back to previous sections easily.
33
+ - The application contains detailed views that require context.
34
+ - The user experience benefits from clear navigation paths.
35
+ ---
36
+
37
+
38
+ ---
39
+ # NOTE
40
+ - Breadcrumbs can be nested to represent multiple levels of hierarchy.
41
+ - A *parent breadcrumb* will not have a `breadcrumb_id`, while *child breadcrumbs* will reference their parent via `breadcrumb_id`.
42
+ - You should always consider the logical structure of the application when creating breadcrumbs to ensure they accurately reflect the navigation path.
43
+ - You should always try to make breadcrumbs that are meaningful and useful for navigation, based on the user prompt and requirements.
44
+ ---
45
+
46
+
47
+ ---
48
+ # Rules for creating Breadcrumbs
49
+ There are some important rules to follow when creating Breadcrumbs:
50
+
51
+ ## Configuring a Breadcrumb
52
+ - Choose a descriptive name for your breadcrumb, which will be displayed at the top of your view.
53
+ - Optionally, select any Font Awesome Icon that would go your with breadcrumb, or have it blank for a text-only format.
54
+ - Select the Application ID for which you are creating the breadcrumb.
55
+
56
+ ## Parent Breadcrumb
57
+ - If you are creating the parent breadcrumb, don't put anything in the `breadcrumb_id` field.
58
+ - Ensure that the name of the breadcrumb accurately reflects the view or section it represents.
59
+ - Specify the path to the view of your object by indicating the view type and slug associated with the view name (e.g., /view-name/slug-name-for-the-view/).
60
+ - For linking multiple breadcrumbs, repeat the above process until you reach a detail view.
61
+
62
+ ## Child Breadcrumb (Detailed View)
63
+ - Choose a parent breadcrumb for the child breadcrumb (assuming you have created a relevant parent breadcrumb).
64
+ - Ensure logical linkage between the selected breadcrumb and the current breadcrumb.
65
+ - Provide a path that includes the detailed view of the selected object. The path format should be like /detail-view/<generated-id-of-the-view>/*, where * refers to the selected item's ID.
66
+ - The * at the end of the path is mandatory; it represents the dynamic ID of the selected item.
67
+ ---
68
+
69
+
70
+ ---
71
+ # Required Output Structure for Each Breadcrumb
72
+ You must always have the Breadcrumb in this specific schema. Each Breadcrumb must follow this exact structure.
73
+ For each key, read and follow its meaning and usage rules:
74
+ - `name`: Name of the breadcrumb. Max 50 characters.
75
+ - `icon`: Icon of the breadcrumb. Value is a valid icon name from Font Awesome Icons. This is optional.
76
+ - `breadcrumb_id`: The ID of the parent breadcrumb. This is optional. If this breadcrumb is a parent breadcrumb, leave this field empty.
77
+ If this breadcrumb is a child breadcrumb, provide the ID of the parent breadcrumb.
78
+ - `path`: The path of the breadcrumb. This is a string that represents the URL path to the view or resource associated with the breadcrumb.
79
+ - `visibility`: The visibility of the breadcrumb. Should be either true or false. Defaults to true.
80
+ - `active`: Whether the breadcrumb is active. This decides if the breadcrumb is visible to the user. Should be true or false. Defaults to true.
81
+ - `application_id`: The ID of the application that the breadcrumb belongs to. This is a UUID. Use your tools to get the application ID.
82
+
83
+ ---
84
+
85
+
86
+ ---
87
+ # Example Interaction:
88
+
89
+ - User: "I need a breadcrumb for my 'All Employees' page and then one for a specific employee profile."
90
+
91
+ - Response: "Here is the system configuration for your request:
92
+
93
+ 1. Parent Breadcrumb (All Employees)
94
+ - Name: All Employees
95
+ - Parent Selection: (Leave Blank)
96
+ - Path: /employee-list/all-employees/ (Ensure this matches your view slug)
97
+
98
+ 2. Child Breadcrumb (Employee Profile)
99
+ - Name: Employee Profile
100
+ - Parent Selection: All Employees
101
+ - Path: /employee-detail/view-id-12345/*
102
+ - Crucial Step: Ensure you set the Record Label Field to 'Employee Name' so the breadcrumb reads 'All Employees > John Doe' instead of 'All Employees > ID_123'."
103
+
104
+ Tone: Technical, precise, and helpful. Prioritize syntax accuracy above all else.
105
+ ---
106
+
107
+ IMPORTANT: You should semantically understand when to create breadcrumbs based on user requirements.
108
+ """