* docs: complete node editor node reference glossary (#107) - generated by new nodes.tools glossary subcommand, 47 categorized pages covering all 403 nodes, docstring gap fixes, help-agent docs-index entries * docs: fix Jinja2 Format discoverability - document dynamic-input template variables, move node to string page, link key inference from dynamic-input notes, strip links from index summaries * help agent: keep node reference out of the chat prompt - collapse glossary entries to one pointer line (~19k chars saved), agent retrieves node info via search_docs/read_doc tool calls * help agent: replace in-prompt docs index with find_docs lookup tool - prompt carries a 13-line section overview (~1.5k chars vs ~66k), pages located via keyword-scored find_docs at runtime * changelog: help agent prompt slimming + find_docs lookup * docs: sort node reference index and nav alphabetically by page title * review: move module constants into top-of-file constant blocks (glossary MAX_DEFAULT_LENGTH; docs SECTION_DESCRIPTIONS, _FIND_STOPWORDS, FIND_DOCS_LIMIT) * review: word-boundary find_docs scoring with plural/-ing folds, find_docs+section_overview unit tests, jinja2 template field description override * docs: help agent overview no longer claims an in-prompt index of all documentation pages * docs: full node docstring audit pass - 335 classes audited by 5 agents, ~89 accuracy fixes (nonexistent/misnamed sockets, wrong behavior claims), ~94 expansions, 5 factually-wrong PropertyField descriptions corrected, glossary regenerated
9.7 KiB
Response Parsing Nodes
Extract structured data from LLM responses. A Response Spec describes the expected format; extractors pull out anchored sections, code blocks, lists or regex matches from the raw response text.
9 nodes.
| Node | Registry path |
|---|---|
| After Anchor Extractor | response/AfterAnchorExtractor |
| Anchor Extractor | response/AnchorExtractor |
| AsIs Extractor | response/AsIsExtractor |
| Code Block Extractor | response/CodeBlockExtractor |
| Complex Anchor Extractor | response/ComplexAnchorExtractor |
| Complex Code Block Extractor | response/ComplexCodeBlockExtractor |
| Regex Extractor | response/RegexExtractor |
| Response Spec | response/ResponseSpec |
| Strip Prefix Extractor | response/StripPrefixExtractor |
After Anchor Extractor
response/AfterAnchorExtractor
Creates an AfterAnchorExtractor that extracts everything after a start marker.
Inputs
| Input | Type | Description |
|---|---|---|
name |
str |
(optional) Optional override for name property |
Outputs
| Output | Type | Description |
|---|---|---|
name |
str |
The extractor name (pass-through) |
value |
response/extractor |
The AfterAnchorExtractor instance |
spec |
response/spec |
A ResponseSpec containing just this extractor |
Properties
| Property | Type | Default | Description |
|---|---|---|---|
name |
str |
"" |
Extractor name (key for dict collector) |
start |
str |
"" |
Start marker to search for |
stop_at |
str |
"" |
Optional end marker (empty = no stop) |
fallback_to_full |
bool |
False |
Return full response if start marker not found |
trim |
bool |
True |
Trim whitespace from result |
Anchor Extractor
response/AnchorExtractor
Creates an AnchorExtractor that extracts content between anchor tags.
Inputs
| Input | Type | Description |
|---|---|---|
name |
str |
(optional) Optional override for name property |
Outputs
| Output | Type | Description |
|---|---|---|
name |
str |
The extractor name (pass-through) |
value |
response/extractor |
The AnchorExtractor instance |
spec |
response/spec |
A ResponseSpec containing just this extractor |
Properties
| Property | Type | Default | Description |
|---|---|---|---|
name |
str |
"" |
Extractor name (key for dict collector) |
left |
str |
"" |
Left anchor tag (e.g., ) |
right |
str |
"" |
Right anchor tag (e.g., ) |
fallback_to_full |
bool |
False |
Return full response if anchors not found |
trim |
bool |
True |
Trim whitespace from result |
AsIs Extractor
response/AsIsExtractor
Creates an AsIsExtractor that returns the entire response as-is.
Inputs
| Input | Type | Description |
|---|---|---|
name |
str |
(optional) Optional override for name property |
Outputs
| Output | Type | Description |
|---|---|---|
name |
str |
The extractor name (pass-through) |
value |
response/extractor |
The AsIsExtractor instance |
spec |
response/spec |
A ResponseSpec containing just this extractor |
Properties
| Property | Type | Default | Description |
|---|---|---|---|
name |
str |
"" |
Extractor name (key for dict collector) |
trim |
bool |
True |
Trim whitespace from result |
Code Block Extractor
response/CodeBlockExtractor
Creates a CodeBlockExtractor that extracts code blocks from tagged sections.
Inputs
| Input | Type | Description |
|---|---|---|
name |
str |
(optional) Optional override for name property |
Outputs
| Output | Type | Description |
|---|---|---|
name |
str |
The extractor name (pass-through) |
value |
response/extractor |
The CodeBlockExtractor instance |
spec |
response/spec |
A ResponseSpec containing just this extractor |
Properties
| Property | Type | Default | Description |
|---|---|---|---|
name |
str |
"" |
Extractor name (key for dict collector) |
left |
str |
"" |
Left anchor tag (e.g., ) |
right |
str |
"" |
Right anchor tag (e.g., ) |
validate_structured |
bool |
True |
Validate content as JSON/YAML for no-fence fallback |
fallback_to_full |
bool |
False |
Return full response if anchors not found |
trim |
bool |
True |
Trim whitespace from result |
Complex Anchor Extractor
response/ComplexAnchorExtractor
Creates a ComplexAnchorExtractor with nesting awareness.
Tracks multiple tags and only extracts target blocks when at root level.
Inputs
| Input | Type | Description |
|---|---|---|
name |
str |
(optional) Optional override for name property |
tracked_tags |
list |
(optional) Optional override for tracked_tags property |
Outputs
| Output | Type | Description |
|---|---|---|
name |
str |
The extractor name (pass-through) |
value |
response/extractor |
The ComplexAnchorExtractor instance |
spec |
response/spec |
A ResponseSpec containing just this extractor |
tracked_tags |
list |
The tracked tags list (pass-through) |
Properties
| Property | Type | Default | Description |
|---|---|---|---|
name |
str |
"" |
Extractor name (key for dict collector) |
left |
str |
"" |
Left anchor tag (e.g., ) |
right |
str |
"" |
Right anchor tag (e.g., ) |
tracked_tags |
list |
[] |
Tags to track for nesting awareness |
fallback_to_full |
bool |
False |
Return full response if anchors not found |
trim |
bool |
True |
Trim whitespace from result |
Complex Code Block Extractor
response/ComplexCodeBlockExtractor
Creates a ComplexCodeBlockExtractor with nesting awareness for code blocks.
Inputs
| Input | Type | Description |
|---|---|---|
name |
str |
(optional) Optional override for name property |
tracked_tags |
list |
(optional) Optional override for tracked_tags property |
Outputs
| Output | Type | Description |
|---|---|---|
name |
str |
The extractor name (pass-through) |
value |
response/extractor |
The ComplexCodeBlockExtractor instance |
spec |
response/spec |
A ResponseSpec containing just this extractor |
tracked_tags |
list |
The tracked tags list (pass-through) |
Properties
| Property | Type | Default | Description |
|---|---|---|---|
name |
str |
"" |
Extractor name (key for dict collector) |
left |
str |
"" |
Left anchor tag (e.g., ) |
right |
str |
"" |
Right anchor tag (e.g., ) |
tracked_tags |
list |
[] |
Tags to track for nesting awareness |
validate_structured |
bool |
True |
Validate content as JSON/YAML for no-fence fallback |
fallback_to_full |
bool |
False |
Return full response if anchors not found |
trim |
bool |
True |
Trim whitespace from result |
Regex Extractor
response/RegexExtractor
Creates a RegexExtractor that extracts content using regex patterns.
Inputs
| Input | Type | Description |
|---|---|---|
name |
str |
(optional) Optional override for name property |
Outputs
| Output | Type | Description |
|---|---|---|
name |
str |
The extractor name (pass-through) |
value |
response/extractor |
The RegexExtractor instance |
spec |
response/spec |
A ResponseSpec containing just this extractor |
Properties
| Property | Type | Default | Description |
|---|---|---|---|
name |
str |
"" |
Extractor name (key for dict collector) |
pattern |
str |
"" |
Regex pattern with capture group |
case_insensitive |
bool |
False |
Ignore case when matching |
group |
int |
1 |
Capture group to extract |
all_matches |
bool |
False |
Return list of all matches |
trim |
bool |
True |
Trim whitespace from result |
Response Spec
response/ResponseSpec
Creates a ResponseSpec from a dictionary of extractors.
Inputs
| Input | Type | Description |
|---|---|---|
extractors |
dict |
Dictionary of name -> Extractor (from DictCollector) |
required |
list |
(optional) Optional override for required property |
Outputs
| Output | Type | Description |
|---|---|---|
spec |
response/spec |
The ResponseSpec instance |
extractors |
dict |
Pass-through of the extractors dict |
Properties
| Property | Type | Default | Description |
|---|---|---|---|
required |
list |
[] |
List of required field names |
Strip Prefix Extractor
response/StripPrefixExtractor
Creates a StripPrefixExtractor that strips patterns using regex substitution.
Inputs
| Input | Type | Description |
|---|---|---|
name |
str |
(optional) Optional override for name property |
Outputs
| Output | Type | Description |
|---|---|---|
name |
str |
The extractor name (pass-through) |
value |
response/extractor |
The StripPrefixExtractor instance |
spec |
response/spec |
A ResponseSpec containing just this extractor |
Properties
| Property | Type | Default | Description |
|---|---|---|---|
name |
str |
"" |
Extractor name (key for dict collector) |
pattern |
str |
"" |
Regex pattern to strip |
replacement |
str |
"" |
Replacement string |
trim |
bool |
True |
Trim whitespace from result |