Search Components
keel_components_searchSearch the Keel component catalog by keyword, semantic query, category, or data type to locate pipeline components for Hyperliquid strategies.
Instructions
Search the Keel pipeline component catalog by keyword, semantic query, category, input/output type, or pipeline position (after/before) — the REQUIRED first step of the two-step discovery every build turn starts with.
Decompose the thesis into roles (universe, signal, entry/exit, filter, sizing, normalize) and search each role — plus every domain concept the user names (beta hedge, vol targeting, risk parity, trailing stop, regime) — in natural language BEFORE selecting anything. This holds for new strategies AND every edit. When the user names a concept, ALWAYS search for it rather than hand-rolling from memory: a manual ConstantForecast(-10) is a static short, not the BetaHedgeAllocator that was asked for.
Keel re-clocks in one direction — resample raw data fine → coarse, project signals coarse → fine. Filter by clock_direction for the operator in the direction you want.
Returns compact entries (name, category, description, input/output type) to triage; feed the set you pick straight into keel_components_detail_batch to verify types and slots before drafting DSL. Do NOT plan a pipeline from names or pattern memory alone — search is not optional. Do NOT use to fetch the full schema of ONE component — use keel_components_compose_help. Do NOT use to enumerate strategies — call keel_strategy_search.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| after | No | Return components that can FOLLOW the named component (their input type accepts that component's output). | |
| limit | No | Maximum number of results. | |
| query | No | Free-text semantic query — tokens are matched against name, category, and description with weighted scoring (name ×3, category ×2, description ×1). Returns components scored > 0 ranked by relevance. Pair with `keyword` (or the CLI positional keyword) to first narrow by substring, then rank. | |
| before | No | Return components that can PRECEDE the named component (their output type matches that component's input). | |
| keyword | No | Case-insensitive substring match against name or description. The CLI positional arg maps here — `keel components search momentum` filters to components mentioning 'momentum'. For weighted token-scoring across name/category/description, use `--query` instead. | |
| category | No | Restrict to one component category. | |
| input_type | No | Restrict to components consuming this type (e.g. `SignalSeries`). | |
| output_type | No | Restrict to components producing this type (e.g. `ForecastSeries`). | |
| clock_direction | No | Restrict to components that change the bar clock in one direction. `resample` = fine → coarse aggregation of raw data (e.g. 1h OHLCV → 1d). `project` = coarse → fine, holding the last COMPLETED coarse bar across the finer grid (e.g. a 1d regime signal driving 1h execution) — the only safe way to move a signal down. `synth` = a data loader minting the entry clock. `keep` = leaves the clock untouched (most components). |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |