Search step types across all configured catalogs.
(
self,
query: str | None = None,
)
| 1041 | # -- Public API ------------------------------------------------------- |
| 1042 | |
| 1043 | def search( |
| 1044 | self, |
| 1045 | query: str | None = None, |
| 1046 | ) -> list[dict[str, Any]]: |
| 1047 | """Search step types across all configured catalogs.""" |
| 1048 | merged = self._get_merged_steps() |
| 1049 | results: list[dict[str, Any]] = [] |
| 1050 | |
| 1051 | for step_id, step_data in merged.items(): |
| 1052 | step_data.setdefault("id", step_id) |
| 1053 | if query: |
| 1054 | q = query.lower() |
| 1055 | searchable = " ".join( |
| 1056 | [ |
| 1057 | str(step_data.get("name") or ""), |
| 1058 | str(step_data.get("description") or ""), |
| 1059 | str(step_data.get("id") or ""), |
| 1060 | ] |
| 1061 | ).lower() |
| 1062 | if q not in searchable: |
| 1063 | continue |
| 1064 | results.append(step_data) |
| 1065 | return results |
| 1066 | |
| 1067 | def get_step_info(self, step_id: str) -> dict[str, Any] | None: |
| 1068 | """Get details for a specific step from the catalog.""" |