[{"name":"add","description":"Appends source nodes to selected destination containers","signature":{"input":{"kind":"node-list,single-object","description":"Expression selecting destination container node or nodes whose children should receive the source nodes","required":true,"mode":"Expression"},"children":{"*":{"type":"lambda","kind":"node-list","description":"Source container or node-producing slot evaluated before its child nodes are applied to the selected target location","required":true,"mode":"ExecutableLambda","cardinality":"OneOrMore","role":"SourceContainer","evaluation":"EvalSelf","projection":"ChildrenOfChildren"}}}},{"name":"and","description":"Returns true if all children evaluate to true","signature":{"children":{"*":{"type":"lambda","kind":"boolean","description":"Executable operand returning a boolean value","required":true,"mode":"ExecutableLambda","cardinality":"TwoOrMore","role":"Operand","evaluation":"EvalSelf","projection":"Self"}},"output":{"mode":"Value","kind":"boolean","description":"Resolves to true if all operands evaluate to true"}}},{"name":"apply","description":"Stamps a template lambda with values from child argument nodes, producing one fully-substituted output per [.dp]","signature":{"input":{"kind":"template,lambda-tree","description":"Expression selecting the template node or nodes to transform","required":true,"mode":"Expression"},"children":{"*":{"type":"object","description":"Template replacement node matched by name; its value and children replace placeholders named {name}","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"Arguments","projection":"ArgumentBag"}},"output":{"mode":"Lambda","kind":"applied-template,lambda-object,lambda-tree","description":"Resolves to the transformed template nodes after applying the supplied arguments"}}},{"name":"case","description":"Evaluates a single case branch inside [switch]","signature":{"input":{"kind":"switch-value","description":"Case value to match against the [switch] input value","required":true,"mode":"ValueOrExpression"},"children":{"*":{"type":"lambda","description":"Case branch body executed by the parent [switch]","required":true,"mode":"ExecutableLambda","cardinality":"OneOrMore","role":"ExecutableBody","evaluation":"EvalSelf","projection":"Self"}},"constraints":[{"description":"Parent node must have the listed slot name","values":["switch"],"kind":"ParentMustBe"}]}},{"name":"compose","description":"Builds an expression at runtime by concatenating the evaluated child node values; useful for dynamic node selection","signature":{"children":{"*":{"type":"string","kind":"expression-segment","description":"Expression segment evaluated and joined into the resulting expression","required":true,"mode":"ExecutableLambda","cardinality":"OneOrMore","role":"SourceExpression","evaluation":"EvalSelf","projection":"Value"}},"output":{"mode":"Value","kind":"expression","description":"Resolves to the composed expression"}}},{"name":"context","description":"Creates a named stack context object retrievable with [get-context] while evaluating a lambda block","signature":{"input":{"kind":"context-name","description":"Context name to create on the stack while evaluating the lambda block","required":true,"mode":"ValueOrExpression"},"children":{"value":{"type":"object","description":"Value stored in the named stack context","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"},".lambda":{"type":"lambda","description":"Body evaluated while the context value is scoped","required":true,"mode":"ExecutableLambda","cardinality":"ExactlyOne","role":"LambdaBlock","evaluation":"EvalBlock","projection":"Self"}},"scope":{"provides":"context","description":"Creates a named context scope retrievable by [get-context] using the same input value"}}},{"name":"convert","description":"Coerces a value to a different CLR type; useful for parsing strings into numbers, dates, booleans, or other strongly-typed values","signature":{"input":{"kind":"single-object","description":"Expression selecting the value to convert","required":true,"mode":"Expression"},"children":{"type":{"type":"string","kind":"type-name","description":"Target Hyperlambda type name","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"}},"output":{"mode":"Value","description":"Resolves to the value converted to the requested type"}}},{"name":"csv2lambda","description":"Transforms CSV into a lambda hierarchy","signature":{"input":{"kind":"csv","description":"CSV text to transform","required":true,"mode":"ValueOrExpression"},"children":{"types":{"type":"lambda","kind":"csv-column-types","description":"Column type conversions keyed by column name","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"DynamicMap","projection":"StructuredTree","children":{"*":{"type":"string","kind":"csv-column-type","description":"Type name for the column","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","role":"DynamicMap","projection":"Value"}}},"null-value":{"type":"string","kind":"null-value","description":"String used to represent null values","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"[NULL]","role":"Option","projection":"Value"}},"output":{"mode":"Lambda","kind":"node-list","element-kind":"csv-row,lambda-tree","description":"Resolves to the parsed lambda hierarchy as child nodes; each child is one CSV row containing column-named values","children":[{"type":"lambda","kind":"row","description":"One CSV record returned as a child node; column values appear as named children keyed by the header column name","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"StructuredObject","projection":"StructuredTree","children":{"*":{"type":"string","kind":"column-value","description":"CSV column value; child name is the header column name","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}}]}}},{"name":"default","description":"Evaluates the default branch inside [switch]","signature":{"children":{"*":{"type":"lambda","description":"Default branch body executed by the parent [switch]","required":true,"mode":"ExecutableLambda","cardinality":"OneOrMore","role":"ExecutableBody","evaluation":"EvalSelf","projection":"Self"}},"constraints":[{"description":"Parent node must have the listed slot name","values":["switch"],"kind":"ParentMustBe"}]}},{"name":"else","description":"Evaluates its child lambda when every preceding [if] and [else-if] condition was false","signature":{"children":{"*":{"type":"lambda","description":"Fallback branch body evaluated when previous conditions fail","required":true,"mode":"ExecutableLambda","cardinality":"OneOrMore","role":"ExecutableBody","evaluation":"EvalSelf","projection":"Self"}},"constraints":[{"description":"Previous sibling must be one of the listed slot names","values":["if","else-if"],"kind":"PreviousSiblingMustBeOneOf"}],"scope":{"provides":"if"}}},{"name":"else-if","description":"Evaluates the child lambda when its condition is true and no preceding [if]/[else-if] branch matched","signature":{"children":{"*":{"type":"lambda","kind":"boolean","description":"Condition node evaluated for truthiness","required":true,"mode":"ExecutableLambda","cardinality":"ExactlyOne","role":"Condition","evaluation":"EvalSelf","projection":"Value"},".lambda":{"type":"lambda","description":"Executable lambda block","required":true,"mode":"ExecutableLambda","cardinality":"ExactlyOne","role":"LambdaBlock","evaluation":"EvalBlock","projection":"Self"}},"constraints":[{"description":"Previous sibling must be one of the listed slot names","values":["if","else-if"],"kind":"PreviousSiblingMustBeOneOf"}]}},{"name":"eq","description":"Returns true if two operands are equal","signature":{"children":{"*":{"type":"object","description":"Operand evaluated before comparison","required":true,"mode":"ExecutableLambda","cardinality":"ExactlyTwo","role":"OperandPaired","evaluation":"EvalSelf","projection":"Value"}},"output":{"mode":"Value","kind":"boolean","description":"Resolves to true if the operands are equal"}}},{"name":"eval","description":"Executes a lambda block; use it to run a node tree dynamically or to scope a group of statements","signature":{"input":{"kind":"lambda-object,lambda-tree","description":"Expression selecting the Hyperlambda nodes to evaluate; alternatively supply literal executable children","required":false,"mode":"Expression"},"children":{"*":{"type":"lambda","description":"Executable child slot evaluated in order","required":false,"mode":"ExecutableLambda","cardinality":"ZeroOrMore","role":"ExecutableBody","evaluation":"EvalSelf","projection":"Self"}}}},{"name":"execute","description":"Invokes a dynamic slot after unwrapping descendant expressions","signature":{"input":{"kind":"dynamic-slot-name","description":"Name of the dynamic slot to invoke","required":true,"mode":"ValueOrExpression"},"children":{"*":{"type":"object","kind":"value","description":"Named argument passed to the dynamic slot as a child of [.arguments]","required":false,"mode":"Arguments","cardinality":"ZeroOrMore","preprocess":"UnwrapExpressions","role":"Arguments","projection":"ArgumentBag"}},"output":{"mode":"Both","kind":"lambda-result","description":"Resolves to the invoked slot's value result and any returned child nodes","children":{"*":{"type":"lambda","kind":"dynamic-slot-result-node","description":"Returned child node produced by the invoked dynamic slot after descendant expressions are unwrapped","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"Payload","projection":"Self"}}}}},{"name":"execute-file","description":"Loads a Hyperlambda file and evaluates it as if it were inlined; child nodes become its [.arguments]","signature":{"input":{"kind":"hyperlambda-file","description":"File path to execute","required":true,"mode":"ValueOrExpression"},"children":{"*":{"type":"object","kind":"value","description":"Named argument passed to the executed file as a child of [.arguments]","required":false,"mode":"Arguments","cardinality":"ZeroOrMore","preprocess":"UnwrapExpressions","role":"Arguments","projection":"ArgumentBag"}},"output":{"mode":"Both","kind":"lambda-result","description":"Resolves to the executed file's value result and any returned child nodes","children":{"*":{"type":"lambda","kind":"hyperlambda-result-node","description":"Returned child node produced by the executed Hyperlambda file","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"Payload","projection":"Self"}}}}},{"name":"exists","description":"Returns true if the specified node or expression exists","signature":{"input":{"kind":"node-list,single-object","description":"Expression selecting the nodes to test for","required":true,"mode":"Expression"},"output":{"mode":"Value","kind":"boolean","description":"Returns true if the expression resolves to one or more nodes"}}},{"name":"filter","description":"Filters selected nodes using the child lambda as a predicate","signature":{"input":{"kind":"node-list","description":"Expression selecting the nodes to filter","required":true,"mode":"Expression"},"children":{"*":{"type":"lambda","kind":"boolean","description":"Predicate body evaluated once per selected node; the selected node is kept when the body returns true","required":true,"mode":"ExecutableLambda","cardinality":"OneOrMore","role":"Condition","evaluation":"EvalSelf","projection":"ReturnedResult"}},"output":{"mode":"Lambda","kind":"node-list","description":"Resolves to clones of the selected nodes whose predicate body returns true"}}},{"name":"floatArray2bytes","description":"Serializes a sequence of float values into raw bytes; useful for embedding vectors or feeding binary APIs","signature":{"input":{"kind":"float-list","description":"Float values to convert to bytes","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Value","kind":"binary-content","description":"Resolves to the float array converted to bytes"}}},{"name":"for-each","description":"Iterates over the nodes matching the expression and evaluates the child lambda once per node as [.dp]","signature":{"input":{"kind":"node-list","description":"Expression selecting the nodes to iterate","required":true,"mode":"Expression"},"children":{"*":{"type":"lambda","description":"Loop body evaluated once per selected node","required":true,"mode":"ExecutableLambda","cardinality":"OneOrMore","role":"ExecutableBody","evaluation":"EvalSelf","projection":"Self"}}}},{"name":"fork","description":"Spawns a fire-and-forget background thread that evaluates the child lambda; the parent continues immediately","signature":{"children":{"*":{"type":"lambda","description":"Executable child slot evaluated on the forked thread","required":true,"mode":"ExecutableLambda","cardinality":"OneOrMore","role":"ExecutableBody","evaluation":"EvalSelf","projection":"Self"}},"scope":{"provides":"fork"}}},{"name":"format","description":"Formats a value using a .NET format string and optional culture; useful for currencies, dates, and number rendering","signature":{"input":{"kind":"scalar","description":"Value to format","required":true,"mode":"ValueOrExpression"},"children":{"pattern":{"type":"string","kind":"format-pattern","description":"Composite format string","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"},"culture":{"type":"string","kind":"culture-name","description":"Optional culture name used when formatting","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}},"output":{"mode":"Value","kind":"text","description":"Resolves to the formatted string"}}},{"name":"function","description":"Creates a dynamic slot that can be invoked with [signal]","signature":{"input":{"kind":"dynamic-slot-name","description":"Name of the dynamic slot to create","required":true,"mode":"ValueOrExpression"},"children":{"*":{"type":"lambda","description":"Executable child slot stored as the dynamic slot body","required":true,"mode":"ExecutableLambda","cardinality":"OneOrMore","role":"ExecutableBody","evaluation":"SerializeLambda","projection":"Self"}}}},{"name":"get-context","description":"Returns a stack value or context object from the current execution context","signature":{"input":{"kind":"context-name","description":"Context name to retrieve","required":true,"mode":"ValueOrExpression"},"scope":{"requires":"context","description":"Requires a named context created by [context] using the same input value"},"output":{"mode":"Value","kind":"context-value","description":"Resolves to the requested stack value or context object"}}},{"name":"get-count","description":"Returns the number of matching nodes","signature":{"input":{"kind":"node-list","description":"Expression selecting the nodes to count","required":true,"mode":"Expression"},"output":{"mode":"Value","kind":"number","description":"Resolves to the number of nodes matched by the expression"}}},{"name":"get-first-value","description":"Returns the first non-null value produced by candidate child nodes","signature":{"children":{"*":{"type":"lambda","description":"Candidate value source evaluated until the first non-null value is produced","required":true,"mode":"ExecutableLambda","cardinality":"OneOrMore","role":"Operand","evaluation":"EvalSelf","projection":"Value"}},"output":{"mode":"Value","description":"Resolves to the first non-null value produced by the candidate child nodes"}}},{"name":"get-name","description":"Returns the name of the first matching node","signature":{"input":{"kind":"single-object","description":"Expression selecting the node whose name should be retrieved","required":true,"mode":"Expression"},"output":{"mode":"Value","kind":"node-name,text","description":"Resolves to the name of the first matching node"}}},{"name":"get-nodes","description":"Returns clones of every node matching the expression as children of the current node","signature":{"input":{"kind":"node-list","description":"Expression selecting the nodes to retrieve","required":true,"mode":"Expression"},"output":{"mode":"Lambda","kind":"node-list","element-kind":"node","description":"Resolves to the nodes matched by the expression as child nodes"}}},{"name":"get-value","description":"Returns the value of the first matching node","signature":{"input":{"kind":"single-object","description":"Expression selecting the node whose value should be retrieved","required":true,"mode":"Expression"},"output":{"mode":"Value","description":"Resolves to the value of the first matching node"}}},{"name":"html-decode","description":"HTML decodes the specified string","signature":{"input":{"kind":"html-encoded","description":"HTML encoded text to decode","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Value","kind":"html,text","description":"Resolves to the decoded text"}}},{"name":"html2lambda","description":"Transforms HTML into a lambda hierarchy","signature":{"input":{"kind":"html","description":"HTML markup to transform","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Lambda","kind":"html-tree","description":"Resolves to the parsed HTML hierarchy as child nodes"}}},{"name":"html2markdown","description":"Transforms HTML into Markdown","signature":{"input":{"kind":"html","description":"HTML markup to transform","required":true,"mode":"ValueOrExpression"},"children":{"url":{"type":"string","kind":"url","description":"Base URL used when resolving links","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"images":{"type":"bool","description":"Whether images should be emitted","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"true","role":"Option","projection":"Value"},"code":{"type":"bool","description":"Whether code blocks should be emitted","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"true","role":"Option","projection":"Value"},"lists":{"type":"bool","description":"Whether lists should be emitted","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"true","role":"Option","projection":"Value"}},"output":{"mode":"Value","kind":"markdown,text","description":"Resolves to the generated Markdown"}}},{"name":"html2pdf","description":"Converts HTML into a PDF document","signature":{"input":{"kind":"html","description":"HTML markup to convert","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Value","kind":"pdf-content,binary-content","description":"Resolves to the generated PDF bytes"}}},{"name":"hyper2lambda","description":"Transforms Hyperlambda into a lambda hierarchy","signature":{"input":{"kind":"hyperlambda","description":"Hyperlambda text to transform","required":true,"mode":"ValueOrExpression"},"children":{"comments":{"type":"bool","description":"Whether parser comment nodes should be preserved as [..] nodes with the comment text as value","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false","role":"Option","projection":"Value"}},"output":{"mode":"Lambda","kind":"lambda-tree","description":"Resolves to the parsed lambda hierarchy as child nodes"}}},{"name":"if","description":"Evaluates the child lambda only if the condition is true; chain with [else-if] and [else] for additional branches","signature":{"children":{"*":{"type":"lambda","kind":"boolean","description":"Condition node evaluated for truthiness","required":true,"mode":"ExecutableLambda","cardinality":"ExactlyOne","role":"Condition","evaluation":"EvalSelf","projection":"Value"},".lambda":{"type":"lambda","description":"Executable lambda block","required":true,"mode":"ExecutableLambda","cardinality":"ExactlyOne","role":"LambdaBlock","evaluation":"EvalBlock","projection":"Self"}},"scope":{"provides":"if"}}},{"name":"include","description":"Evaluates child slots and includes all returned nodes into each selected node","signature":{"input":{"kind":"node-list","description":"Expression selecting the destination node or nodes to include into","required":true,"mode":"Expression"},"children":{"*":{"type":"lambda","description":"Executable body evaluated once per selected node; all returned child nodes are included into that selected node","required":true,"mode":"ExecutableLambda","cardinality":"OneOrMore","role":"ExecutableBody","evaluation":"EvalSelf","projection":"ReturnedResult"}},"output":{"mode":"Lambda","kind":"node-list","description":"Resolves to the matched destination nodes after all returned child nodes have been included"}}},{"name":"insert-after","description":"Inserts nodes after the specified target node","signature":{"input":{"kind":"node-list,single-object","description":"Expression selecting the target node or nodes to insert after","required":true,"mode":"Expression"},"children":{"*":{"type":"lambda","kind":"node-list","description":"Source container or node-producing slot evaluated before its child nodes are applied to the selected target location","required":true,"mode":"ExecutableLambda","cardinality":"OneOrMore","role":"SourceContainer","evaluation":"EvalSelf","projection":"ChildrenOfChildren"}}}},{"name":"insert-before","description":"Inserts nodes before the specified target node","signature":{"input":{"kind":"node-list,single-object","description":"Expression selecting the target node or nodes to insert before","required":true,"mode":"Expression"},"children":{"*":{"type":"lambda","kind":"node-list","description":"Source container or node-producing slot evaluated before its child nodes are applied to the selected target location","required":true,"mode":"ExecutableLambda","cardinality":"OneOrMore","role":"SourceContainer","evaluation":"EvalSelf","projection":"ChildrenOfChildren"}}}},{"name":"int2words","description":"Spells an integer out in English words (e.g. 557 becomes 'five hundred and fifty seven'); handy for invoices and cheques","signature":{"input":{"kind":"integer,number","description":"Integer value to convert to words","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Value","kind":"text","description":"Resolves to the supplied integer written as words"}}},{"name":"invoke","description":"Invokes a lambda expression as a callable slot","signature":{"input":{"kind":"lambda-object,lambda-tree","description":"Expression yielding the single lambda node to invoke","required":true,"mode":"Expression"},"children":{"*":{"type":"object","kind":"value","description":"Argument passed to the invoked lambda through its [.arguments] node","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Arguments","projection":"ArgumentBag"}},"output":{"mode":"Both","kind":"lambda-result","description":"Resolves to the invoked lambda's value result and any returned child nodes"}}},{"name":"join","description":"Waits for one or more child [fork] operations to finish before proceeding","signature":{"children":{"fork":{"type":"lambda","description":"Fork body to start and wait for; evaluated body node values and children are preserved in the completed fork node","required":true,"mode":"ExecutableLambda","cardinality":"OneOrMore","role":"ExecutableBody","evaluation":"SerializeLambda","projection":"Self"}},"scope":{"provides":"join"},"output":{"mode":"Lambda","kind":"fork-result-list,node-list","description":"Resolves to the completed [fork] child nodes with evaluated body node values and children preserved"}}},{"name":"json2lambda","description":"Transforms JSON into a lambda hierarchy","signature":{"input":{"kind":"json","description":"JSON text to transform","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Lambda","kind":"lambda-tree","description":"Resolves to the parsed lambda hierarchy as child nodes"}}},{"name":"json2lambda-stream","description":"Transforms JSON stream content into a lambda hierarchy","signature":{"input":{"kind":"stream","description":"JSON stream to transform","required":true,"mode":"Expression"},"children":{"encoding":{"type":"string","kind":"text-encoding","description":"Text encoding used to read the JSON stream","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"utf-8","role":"Option","projection":"Value"}},"output":{"mode":"Lambda","kind":"lambda-tree","description":"Resolves to the parsed lambda hierarchy as child nodes"}}},{"name":"json2yaml","description":"Transforms JSON into YAML","signature":{"input":{"kind":"json","description":"JSON text to transform","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Value","kind":"yaml,text","description":"Resolves to the generated YAML string"}}},{"name":"lambda2csv","description":"Transforms a lambda hierarchy into CSV","signature":{"input":{"kind":"node-list","description":"Expression selecting the nodes (rows) to transform","required":true,"mode":"Expression"},"children":{"null-value":{"type":"string","kind":"null-value","description":"String used to represent null values","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"[NULL]","role":"Option","projection":"Value"}},"output":{"mode":"Both","kind":"csv,text","description":"Resolves to the CSV content in value and column type nodes as children"}}},{"name":"lambda2html","description":"Transforms a lambda hierarchy into HTML","signature":{"input":{"kind":"html-tree","description":"Expression selecting the lambda hierarchy to transform","required":true,"mode":"Expression"},"output":{"mode":"Value","kind":"html,text","description":"Resolves to the generated HTML markup"}}},{"name":"lambda2hyper","description":"Transforms a lambda hierarchy into Hyperlambda","signature":{"input":{"kind":"lambda-tree,node-list","description":"Expression selecting the lambda hierarchy to transform","required":true,"mode":"Expression"},"children":{"comments":{"type":"bool","description":"Whether generated Hyperlambda should include comments","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false","role":"Option","projection":"Value"}},"output":{"mode":"Value","kind":"hyperlambda,text","description":"Resolves to the generated Hyperlambda source"}}},{"name":"lambda2json","description":"Transforms a lambda hierarchy into JSON","signature":{"input":{"kind":"node-list,lambda-tree","description":"Expression selecting the lambda hierarchy to transform","required":true,"mode":"Expression"},"children":{"format":{"type":"bool","description":"Whether to pretty-print the JSON output","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false","role":"Option","projection":"Value"}},"output":{"mode":"Value","kind":"json,text","description":"Resolves to the generated JSON string"}}},{"name":"lambda2xml","description":"Converts a lambda object to an XML fragment or document","signature":{"input":{"kind":"xml-tree","description":"Expression selecting a SINGLE lambda root to transform (XML has exactly one document root)","required":true,"mode":"Expression"},"output":{"mode":"Value","kind":"xml,text","description":"Resolves to the generated XML string"}}},{"name":"lambda2yaml","description":"Transforms a lambda hierarchy into YAML","signature":{"input":{"kind":"node-list,lambda-tree","description":"Expression selecting the nodes (rows) to transform","required":true,"mode":"Expression"},"output":{"mode":"Value","kind":"yaml,text","description":"Resolves to the generated YAML string"}}},{"name":"load-file","description":"Loads a text file from the server","signature":{"input":{"kind":"file-path","description":"File path to load","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Value","kind":"text-file-content,text","description":"Resolves to the loaded file content"}}},{"name":"lt","description":"Returns true if the first operand is less than the second operand","signature":{"children":{"*":{"type":"object","description":"Operand evaluated before comparison","required":true,"mode":"ExecutableLambda","cardinality":"ExactlyTwo","role":"OperandPaired","evaluation":"EvalSelf","projection":"Value"}},"output":{"mode":"Value","kind":"boolean","description":"Resolves to true if the first operand is less than the second operand"}}},{"name":"lte","description":"Returns true if the first operand is less than or equal to the second operand","signature":{"children":{"*":{"type":"object","description":"Operand evaluated before comparison","required":true,"mode":"ExecutableLambda","cardinality":"ExactlyTwo","role":"OperandPaired","evaluation":"EvalSelf","projection":"Value"}},"output":{"mode":"Value","kind":"boolean","description":"Resolves to true if the first operand is less than or equal to the second operand"}}},{"name":"map","description":"Maps selected nodes into a new result set using the child lambda","signature":{"input":{"kind":"node-list","description":"Expression selecting the nodes to map","required":true,"mode":"Expression"},"children":{"*":{"type":"lambda","description":"Mapper body evaluated once per selected node; each returned value becomes a [.] node and returned child nodes are added to the mapped result","required":true,"mode":"ExecutableLambda","cardinality":"OneOrMore","role":"ExecutableBody","evaluation":"EvalSelf","projection":"ReturnedResult"}},"output":{"mode":"Lambda","kind":"node-list","description":"Resolves to one mapped output item per selected node, using the value or nodes returned by the child lambda"}}},{"name":"markdown2html","description":"Transforms Markdown into HTML","signature":{"input":{"kind":"markdown","description":"Markdown text to transform","required":true,"mode":"ValueOrExpression"},"children":{"media":{"type":"bool","description":"Whether media link extensions should be enabled","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}},"output":{"mode":"Both","kind":"html,text","description":"Resolves to the HTML in value and any YAML front matter as child nodes"}}},{"name":"mt","description":"Returns true if the first operand is greater than the second operand","signature":{"children":{"*":{"type":"object","description":"Operand evaluated before comparison","required":true,"mode":"ExecutableLambda","cardinality":"ExactlyTwo","role":"OperandPaired","evaluation":"EvalSelf","projection":"Value"}},"output":{"mode":"Value","kind":"boolean","description":"Resolves to true if the first operand is greater than the second operand"}}},{"name":"mte","description":"Returns true if the first operand is greater than or equal to the second operand","signature":{"children":{"*":{"type":"object","description":"Operand evaluated before comparison","required":true,"mode":"ExecutableLambda","cardinality":"ExactlyTwo","role":"OperandPaired","evaluation":"EvalSelf","projection":"Value"}},"output":{"mode":"Value","kind":"boolean","description":"Resolves to true if the first operand is greater than or equal to the second operand"}}},{"name":"neq","description":"Returns true if two operands are not equal","signature":{"children":{"*":{"type":"object","description":"Operand evaluated before comparison","required":true,"mode":"ExecutableLambda","cardinality":"ExactlyTwo","role":"OperandPaired","evaluation":"EvalSelf","projection":"Value"}},"output":{"mode":"Value","kind":"boolean","description":"Resolves to true if the operands are not equal"}}},{"name":"not","description":"Negates a boolean expression","signature":{"children":{"*":{"type":"lambda","kind":"boolean","description":"Executable operand returning a boolean value","required":true,"mode":"ExecutableLambda","cardinality":"ExactlyOne","role":"Operand","evaluation":"EvalSelf","projection":"Self"}},"output":{"mode":"Value","kind":"boolean","description":"Resolves to true if the operand evaluates to false"}}},{"name":"not-exists","description":"Returns true if the specified node or expression does not exist","signature":{"input":{"kind":"node-list,single-object","description":"Expression selecting the nodes to test for","required":true,"mode":"Expression"},"output":{"mode":"Value","kind":"boolean","description":"Returns true if the expression resolves to no nodes"}}},{"name":"not-null","description":"Returns true if the specified node or expression is not null","signature":{"input":{"kind":"node-list,single-object","description":"Expression selecting the value to test for null","required":true,"mode":"Expression"},"output":{"mode":"Value","kind":"boolean","description":"Returns true if the expression resolves to a non-null value"}}},{"name":"null","description":"Returns true if the specified node or expression is null","signature":{"input":{"kind":"node-list,single-object","description":"Expression selecting the value to test for null","required":true,"mode":"Expression"},"output":{"mode":"Value","kind":"boolean","description":"Returns true if the expression resolves to a null value"}}},{"name":"or","description":"Returns true if any child expression evaluates to true","signature":{"children":{"*":{"type":"lambda","kind":"boolean","description":"Executable operand returning a boolean value","required":true,"mode":"ExecutableLambda","cardinality":"TwoOrMore","role":"Operand","evaluation":"EvalSelf","projection":"Self"}},"output":{"mode":"Value","kind":"boolean","description":"Resolves to true if any operand evaluates to true"}}},{"name":"pdf2text","description":"Extracts text from a PDF file or stream","signature":{"input":{"kind":"pdf-file,pdf-content,binary-content","description":"PDF file path, bytes, or stream to extract text from","required":true,"mode":"ValueOrExpression"},"children":{"preserve-pages":{"type":"bool","description":"Whether to return one child node per page instead of one combined value","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false","role":"Option","projection":"Value"}},"output":{"mode":"Both","kind":"text","description":"Returns extracted text in value or, when preserving pages, one child node per page"}}},{"name":"reference","description":"Returns the first matched node as a live reference so callers can mutate it in place rather than copy its value","signature":{"input":{"kind":"single-object","description":"Expression selecting the node to reference","required":true,"mode":"Expression"},"output":{"mode":"Value","kind":"node-reference","description":"Resolves to a reference to the first matching node value"}}},{"name":"remove-nodes","description":"Removes nodes from the lambda graph","signature":{"input":{"kind":"node-list,single-object","description":"Expression selecting the node or nodes to remove","required":true,"mode":"Expression"}}},{"name":"return","description":"Returns a value, expression result, or child nodes to the nearest caller","signature":{"input":{"kind":"return-value,node-list","description":"Value or expression to return when no child nodes are supplied; one expression match returns its value, multiple matches return cloned nodes","required":false,"mode":"ValueOrExpression"},"children":{"*":{"type":"object","description":"Child node forwarded to the nearest caller without evaluation; when children exist, all children are returned as-is","required":false,"mode":"SourceLambda","cardinality":"ZeroOrMore","role":"Payload","projection":"Self"}},"output":{"mode":"Both","kind":"return-value,node-list","description":"Resolves to the supplied value and/or returned child nodes captured by the nearest caller"}}},{"name":"return-nodes","description":"Returns child nodes or evaluated nodes to the nearest caller","signature":{"input":{"kind":"node-list","description":"Expression evaluating to the nodes to return; omit to return the literal child nodes instead","required":false,"mode":"Expression"},"children":{"*":{"type":"lambda","description":"Returned child node","required":false,"mode":"SourceLambda","cardinality":"ZeroOrMore","role":"Payload","projection":"Self"}},"output":{"mode":"Lambda","kind":"node-list","description":"Returns child nodes to the nearest caller"}}},{"name":"return-value","description":"Returns a value to the caller","signature":{"input":{"kind":"return-value","description":"Value to return to the nearest caller","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Value","kind":"return-value","description":"Resolves to a value to the caller"}}},{"name":"save-file","description":"Saves a text file to the server","signature":{"input":{"kind":"file-path","description":"File path to save","required":true,"mode":"ValueOrExpression"},"children":{"*":{"type":"string","kind":"text-file-content,text","description":"Child node yielding the text content to save","required":true,"mode":"ExecutableLambda","cardinality":"ExactlyOne"}}}},{"name":"semaphore","description":"Serializes access to a critical section by name; only one thread at a time can enter a given semaphore","signature":{"input":{"kind":"semaphore-name","description":"Semaphore name used to serialize access","required":true,"mode":"ValueOrExpression"},"children":{"*":{"type":"lambda","description":"Executable child lambda object evaluated while the named semaphore is held","required":true,"mode":"ExecutableLambda","cardinality":"OneOrMore","role":"ExecutableBody","evaluation":"EvalSelf","projection":"Self"}},"scope":{"provides":"semaphore"}}},{"name":"set-name","description":"Sets the name of matching nodes","signature":{"input":{"kind":"node-list,single-object","description":"Expression selecting the node or nodes whose name should be changed","required":true,"mode":"Expression"},"children":{"*":{"type":"string","kind":"text","description":"Single source child evaluated to a string; the resolved value becomes the new node name. Omit to set the name to null.","required":false,"mode":"ExecutableLambda","cardinality":"ZeroOrOne","role":"SourceExpression","evaluation":"EvalSelf","projection":"Value"}}}},{"name":"set-value","description":"Sets node values in the lambda graph","signature":{"input":{"kind":"node-list,single-object","description":"Expression selecting the node or nodes whose value should be changed","required":true,"mode":"Expression"},"children":{"*":{"type":"object","description":"Single source child evaluated before its value is consumed; omit to set the destination to null","required":false,"mode":"ExecutableLambda","cardinality":"ZeroOrOne","role":"SourceExpression","evaluation":"EvalSelf","projection":"Value"}}}},{"name":"set-x","description":"Sets node values without evaluating expressions in the source","signature":{"input":{"kind":"node-list,single-object","description":"Expression selecting the node or nodes whose value should be changed","required":true,"mode":"Expression"},"children":{"*":{"type":"object","description":"Single source child evaluated before its value is consumed; omit to set the destination to null","required":false,"mode":"ExecutableLambda","cardinality":"ZeroOrOne","role":"SourceExpression","evaluation":"EvalSelf","projection":"Value"}}}},{"name":"signal","description":"Invokes a dynamic slot created with [slots.create], passing child nodes as its arguments","signature":{"input":{"kind":"dynamic-slot-name","description":"Name of the dynamic slot to invoke","required":true,"mode":"ValueOrExpression"},"children":{"*":{"type":"object","kind":"value","description":"Named argument passed to the dynamic slot as a child of [.arguments]","required":false,"mode":"Arguments","cardinality":"ZeroOrMore","role":"Arguments","projection":"ArgumentBag"}},"output":{"mode":"Both","kind":"lambda-result","description":"Resolves to the invoked slot's value result and any returned child nodes","children":{"*":{"type":"lambda","kind":"dynamic-slot-result-node","description":"Returned child node produced by the invoked dynamic slot","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"Payload","projection":"Self"}}}}},{"name":"sleep","description":"Delays execution for the specified number of milliseconds","signature":{"input":{"kind":"timeout-ms,integer,number","description":"Delay in milliseconds","required":true,"mode":"ValueOrExpression"}}},{"name":"sort","description":"Sorts selected nodes using the child lambda as a comparer","signature":{"input":{"kind":"node-list","description":"Expression selecting the nodes to sort","required":true,"mode":"Expression"},"children":{"*":{"type":"lambda","description":"Comparer body evaluated with [.lhs], [.rhs], and [.result] injected","required":false,"mode":"ExecutableLambda","cardinality":"ZeroOrMore","role":"ExecutableBody","evaluation":"EvalSelf","projection":"Self"}},"output":{"mode":"Lambda","kind":"node-list","description":"Resolves to the sorted nodes selected by the expression as child nodes"}}},{"name":"switch","description":"Evaluates one of several branches based on the input value","signature":{"input":{"kind":"switch-value","description":"Value to compare against the child [case] values","required":true,"mode":"ValueOrExpression"},"children":{"case":{"type":"object","kind":"switch-value","description":"Case branch matching the switch value","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","role":"Branch","evaluation":"EvalSelf","projection":"Self","children":{"*":{"type":"lambda","description":"Branch body executed when the case matches","required":true,"mode":"ExecutableLambda","cardinality":"OneOrMore","role":"ExecutableBody","evaluation":"EvalSelf","projection":"Self"}}},"default":{"type":"lambda","description":"Fallback branch when no case matches","required":false,"mode":"ExecutableLambda","cardinality":"ZeroOrOne","role":"Branch","evaluation":"EvalSelf","projection":"Self","children":{"*":{"type":"lambda","description":"Fallback branch body","required":true,"mode":"ExecutableLambda","cardinality":"OneOrMore","role":"ExecutableBody","evaluation":"EvalSelf","projection":"Self"}}}},"constraints":[{"description":"Only the listed child names are accepted","values":["case","default"],"kind":"OnlyChildren"}]}},{"name":"throw","description":"Aborts execution by throwing an exception with the given message; optionally attach status code and public flag","signature":{"input":{"kind":"exception-message,text","description":"Exception message to throw","required":false,"mode":"ValueOrExpression"},"children":{"public":{"type":"bool","description":"Whether the exception message may be returned to clients","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false","role":"Option","projection":"Value"},"status":{"type":"int","kind":"http-status-code","description":"HTTP status code associated with the exception","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"500","role":"Option","projection":"Value"},"field":{"type":"string","kind":"form-field-id","description":"Optional form field or control ID associated with the exception","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}}}},{"name":"time","description":"Constructs a TimeSpan value from child nodes","signature":{"children":{"days":{"type":"int","description":"Number of days","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"0","role":"Option","projection":"Value"},"hours":{"type":"int","description":"Number of hours","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"0","role":"Option","projection":"Value"},"minutes":{"type":"int","description":"Number of minutes","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"0","role":"Option","projection":"Value"},"seconds":{"type":"int","description":"Number of seconds","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"0","role":"Option","projection":"Value"},"milliseconds":{"type":"int","description":"Number of milliseconds","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"0","role":"Option","projection":"Value"}},"output":{"mode":"Value","kind":"timespan","description":"Resolves to the constructed TimeSpan value"}}},{"name":"try","description":"Evaluates the protected body; pair with [.catch] to handle exceptions and/or [.finally] to always run cleanup","signature":{"children":{"*":{"type":"lambda","description":"Protected body evaluated by [try]","required":false,"mode":"ExecutableLambda","cardinality":"ZeroOrMore","role":"ExecutableBody","evaluation":"EvalSelf","projection":"Self"}},"constraints":[{"description":"Must be followed by [.catch] and/or [.finally]; a bare [try] is a no-op because uncaught exceptions re-throw and [.finally] alone would run regardless","values":[".catch",".finally"],"kind":"NextSiblingMustBeOneOf"}],"scope":{"provides":"try"}}},{"name":"try-signal","description":"Invokes a dynamic slot if it exists and ignores missing slots","signature":{"input":{"kind":"dynamic-slot-name","description":"Name of the dynamic slot to try invoking","required":true,"mode":"ValueOrExpression"},"children":{"*":{"type":"object","kind":"value","description":"Named argument passed to the dynamic slot as a child of [.arguments]","required":false,"mode":"Arguments","cardinality":"ZeroOrMore","role":"Arguments","projection":"ArgumentBag"}},"output":{"mode":"Both","kind":"lambda-result","description":"Resolves to the invoked slot's value result and any returned child nodes","children":{"*":{"type":"lambda","kind":"dynamic-slot-result-node","description":"Returned child node produced by the invoked dynamic slot","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"Payload","projection":"Self"}}}}},{"name":"type","description":"Returns the CLR type name of a value","signature":{"input":{"kind":"single-object","description":"Expression selecting the value whose CLR type should be inspected","required":true,"mode":"Expression"},"output":{"mode":"Value","kind":"type-name,text","description":"Resolves to the runtime type name of the first matching value"}}},{"name":"types","description":"Lists every CLR type name recognized by Hyperlambda; useful when [convert] or [type] needs a valid target","signature":{"output":{"mode":"Lambda","kind":"type-name-list,string-list","element-kind":"type-name,text","description":"Resolves to one child node per known CLR type name"}}},{"name":"unwrap","description":"Forward-evaluates expression values on the selected nodes, replacing them with their resolved values; commonly used before [signal] or [add]","signature":{"input":{"kind":"node-list,single-object","description":"Expression selecting the node or nodes whose expressions should be unwrapped","required":true,"mode":"Expression"},"children":{"apply-lists":{"type":"bool","description":"Whether list results should be applied while unwrapping","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false","role":"Option","projection":"Value"}}}},{"name":"version","description":"Returns the Magic Cloud version to the caller","signature":{"output":{"mode":"Value","kind":"version,text","description":"Resolves to the Magic Cloud version"}}},{"name":"vocabulary","description":"Lists available compiled slots","signature":{"input":{"kind":"slot-name","description":"Optional prefix filter for slot names","required":false,"mode":"ValueOrExpression"},"output":{"mode":"Lambda","kind":"slot-name-list,string-list","element-kind":"slot-name,text","description":"Resolves to available slot names as child nodes"}}},{"name":"while","description":"Repeats execution while a condition is true","signature":{"children":{"*":{"type":"lambda","kind":"boolean","description":"Condition node evaluated for truthiness","required":true,"mode":"ExecutableLambda","cardinality":"ExactlyOne","role":"Condition","evaluation":"EvalSelf","projection":"Value"},".lambda":{"type":"lambda","description":"Executable lambda block","required":true,"mode":"ExecutableLambda","cardinality":"ExactlyOne","role":"LambdaBlock","evaluation":"EvalBlock","projection":"Self"}},"scope":{"provides":"while"}}},{"name":"whitelist","description":"Evaluates a lambda with a restricted whitelist of allowed slots","signature":{"children":{"vocabulary":{"type":"lambda","description":"Allowed slot names for the restricted evaluation scope","required":true,"mode":"Value","cardinality":"ExactlyOne","role":"StructuredObject","projection":"Children","children":{"*":{"type":"string","kind":"native-slot-name","description":"Allowed native slot name (e.g. add, set-value, if) that the body is permitted to invoke","required":true,"mode":"Value","cardinality":"OneOrMore","role":"DynamicMap","projection":"Value"}}},".lambda":{"type":"lambda","description":"Executable lambda block","required":true,"mode":"ExecutableLambda","cardinality":"ExactlyOne","role":"LambdaBlock","evaluation":"EvalBlock","projection":"Self"}},"scope":{"provides":"whitelist"},"output":{"mode":"Both","kind":"lambda-result","description":"Resolves to the evaluated lambda's value result and any returned child nodes"}}},{"name":"xml2lambda","description":"Transforms XML into a lambda hierarchy","signature":{"input":{"kind":"xml","description":"XML text to transform","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Lambda","kind":"xml-tree","element-kind":"xml-element","description":"Resolves to the parsed XML hierarchy as child nodes; attributes are emitted as @name child nodes, text as #text child nodes, and comments/whitespace-only text nodes are omitted"}}},{"name":"yaml2json","description":"Transforms YAML into JSON","signature":{"input":{"kind":"yaml","description":"YAML text to transform","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Value","kind":"json,text","description":"Resolves to the generated JSON string"}}},{"name":"yaml2lambda","description":"Transforms YAML into a lambda hierarchy","signature":{"input":{"kind":"yaml","description":"YAML text to transform","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Lambda","kind":"lambda-tree","description":"Resolves to the parsed lambda hierarchy as child nodes"}}},{"name":"yield","description":"Returns multiple child nodes or evaluated nodes to the caller","signature":{"children":{"*":{"type":"lambda","description":"Returned child node after descendant expressions are unwrapped","required":false,"mode":"SourceLambda","cardinality":"ZeroOrMore","role":"Payload","evaluation":"UnwrapDescendants","projection":"Self"}},"output":{"mode":"Lambda","kind":"node-list","description":"Returns child nodes to the caller"}}},{"name":"auth.ticket.create","description":"Issues a signed JWT carrying the supplied username, roles, and claims; typically returned after a successful login","signature":{"children":{"username":{"type":"string","kind":"username","description":"Username to put in the ticket","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"},"roles":{"type":"lambda","kind":"role-list","description":"Roles to put in the ticket","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","role":"StructuredObject","projection":"Children","children":{"*":{"type":"string","kind":"role","description":"List item","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}},"claims":{"type":"lambda","description":"Claims to put in the ticket","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","role":"DynamicMap","projection":"Children","children":{"*":{"type":"string","kind":"jwt-claim","description":"Named map entry","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}},"expires":{"type":"DateTime","description":"Absolute UTC expiration time","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"duration":{"type":"long","description":"Relative expiration duration in minutes","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}},"constraints":[{"description":"Use either absolute [expires] or relative [duration]","values":["expires","duration"],"kind":"AtMostOneOf"}],"output":{"mode":"Value","kind":"jwt,text","description":"Resolves to the created JWT ticket string"}}},{"name":"auth.ticket.get","description":"Returns the current ticket username, roles, and claims","signature":{"output":{"mode":"Both","kind":"username,text","description":"Resolves to the username in value and roles and claims as child nodes"}}},{"name":"auth.ticket.in-role","description":"Returns true if the current ticket belongs to one of the specified roles","signature":{"input":{"kind":"role","description":"Comma-separated roles to test for","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Value","kind":"boolean","description":"Returns true if the current ticket belongs to at least one of the comma-separated roles"}}},{"name":"auth.ticket.refresh","description":"Issues a new JWT with an extended expiration based on the current ticket, so active users don't get logged out","signature":{"children":{"expires":{"type":"DateTime","description":"Absolute UTC expiration time","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"duration":{"type":"long","description":"Relative expiration duration in minutes","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}},"constraints":[{"description":"Use either absolute [expires] or relative [duration]","values":["expires","duration"],"kind":"AtMostOneOf"}],"output":{"mode":"Value","kind":"jwt,text","description":"Resolves to the refreshed JWT ticket string"}}},{"name":"auth.ticket.verify","description":"Verifies that the current user is authenticated and optionally in one of the specified roles","signature":{"input":{"kind":"role-list","description":"Optional comma-separated roles to require","required":false,"mode":"ValueOrExpression"}}},{"name":"auth.token.read","description":"Validates a JWT token and verifies that it contains one of the required roles","signature":{"input":{"kind":"jwt","description":"JWT token to validate","required":true,"mode":"ValueOrExpression"},"children":{"roles":{"type":"string","kind":"role","description":"Comma-separated roles required by the token","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"}}}},{"name":"auth.token.verify","description":"Verifies an externally created JWT token from the required [token] child node, against one or more trusted [issuer]/[issuers] supplied by the caller","signature":{"children":{"token":{"type":"string","kind":"jwt","description":"External JWT token to verify","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"},"issuer":{"type":"string","description":"Trusted issuer the token's issuer must equal; meta data is never fetched from issuers not supplied by the caller","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"issuers":{"type":"lambda","description":"Trusted issuers, the token's issuer must equal one of them; meta data is never fetched from issuers not supplied by the caller","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","role":"StructuredObject","projection":"Children","children":{"*":{"type":"string","description":"List item","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}}},"output":{"mode":"Lambda","kind":"jwt-claims,text,lambda-tree","description":"Returns token claims as child nodes such as [issuer], [email], and optional [name] and [nonce]"}}},{"name":"cache.clear","description":"Clears cached items matching the optional filter","signature":{"input":{"kind":"cache-key","description":"Optional filter for cache keys","required":false,"mode":"ValueOrExpression"}}},{"name":"cache.count","description":"Counts cached items matching the optional filter","signature":{"input":{"kind":"cache-key","description":"Optional filter for cache keys","required":false,"mode":"ValueOrExpression"},"output":{"mode":"Value","kind":"integer,number","description":"Resolves to the number of cached items matching the optional filter"}}},{"name":"cache.get","description":"Returns a cached value by key","signature":{"input":{"kind":"cache-key","description":"Cache key to retrieve","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Value","kind":"cache-value,text","description":"Resolves to the cached value, or null if the key does not exist"}}},{"name":"cache.list","description":"Lists cached keys matching the optional filter","signature":{"input":{"kind":"cache-key","description":"Optional filter for cache keys","required":false,"mode":"ValueOrExpression"},"children":{"offset":{"type":"int","description":"Result offset","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"0","role":"Option","projection":"Value"},"limit":{"type":"int","description":"Maximum number of items to return","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"10","role":"Option","projection":"Value"}},"output":{"mode":"Lambda","kind":"cache-key-list,node-list","element-kind":"cache-entry,lambda-tree","description":"Returns one child node per cached key matching the optional filter, each with [key] and [value] children","children":[{"type":"lambda","kind":"cache-entry","description":"One cached item; children carry the cache [key] and stored [value]","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"StructuredObject","projection":"StructuredTree","children":{"key":{"type":"string","kind":"cache-key","description":"Cached item key","required":false,"mode":"Value","cardinality":"ExactlyOne","role":"Option","projection":"Value"},"value":{"type":"string","kind":"cache-value","description":"Cached item value","required":false,"mode":"Value","cardinality":"ExactlyOne","role":"Option","projection":"Value"}}}]}}},{"name":"cache.set","description":"Stores a value in the in-memory cache under a key, with an optional sliding expiration","signature":{"input":{"kind":"cache-key","description":"Cache key to store","required":true,"mode":"ValueOrExpression"},"children":{"value":{"type":"string","kind":"cache-value,text","description":"Value to store; omitted or null removes the cached item","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"expiration":{"type":"long","kind":"duration-seconds","description":"Expiration in seconds","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"5","role":"Option","projection":"Value"}}}},{"name":"cache.try-get","description":"Returns a cached value by key if it exists, or creates a new cached item and returning it","signature":{"input":{"kind":"cache-key","description":"Cache key to retrieve","required":true,"mode":"ValueOrExpression"},"children":{"expiration":{"type":"long","kind":"duration-seconds","description":"Expiration in seconds for newly created value","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"5","role":"Option","projection":"Value"},".lambda":{"type":"lambda","description":"Callback executed to create the cached value when the key is missing","required":true,"mode":"ExecutableLambda","cardinality":"ExactlyOne","role":"Callback","evaluation":"EvalBlock","projection":"Value"}},"output":{"mode":"Value","kind":"cache-value,text","description":"Resolves to the cached value, or the newly created value when the key is missing"}}},{"name":"config.get","description":"Reads a single setting from appsettings.json by dotted key path (e.g. 'magic:auth:secret')","signature":{"input":{"kind":"config-key","description":"Configuration key to retrieve","required":true,"mode":"ValueOrExpression"},"children":{"*":{"type":"string","kind":"config-default","description":"Default value source evaluated and returned when the configuration key does not exist","required":false,"mode":"ExecutableLambda","cardinality":"ZeroOrOne","role":"SourceExpression","evaluation":"EvalSelf","projection":"Value"}},"output":{"mode":"Value","kind":"config-value,text","description":"Resolves to the configuration value, or the first child value when the key is missing"}}},{"name":"config.load","description":"Returns the raw contents of appsettings.json; pair with [config.save] for round-trip config editing","signature":{"output":{"mode":"Value","kind":"json,text","description":"Resolves to the raw appsettings.json content"}}},{"name":"config.save","description":"Saves JSON configuration values to appsettings.json","signature":{"input":{"kind":"json","description":"Valid JSON object content to save to appsettings.json","required":true,"mode":"ValueOrExpression"}}},{"name":"config.section","description":"Reads an entire appsettings.json section by key, returning its keys and nested values as child nodes","signature":{"input":{"kind":"config-key","description":"Configuration section to retrieve","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Lambda","kind":"config-section,text,lambda-tree","description":"Returns one child node per key/value entry in the requested configuration section"}}},{"name":"console.log","description":"Writes a message to the server console","signature":{"input":{"kind":"log-message,text","description":"Message to write to the server console","required":true,"mode":"ValueOrExpression"}}},{"name":"crypto.aes.decrypt","description":"Decrypts AES encrypted data","signature":{"input":{"kind":"aes-encrypted-package","description":"Encrypted package to decrypt","required":true,"mode":"ValueOrExpression"},"children":{"password":{"type":"string|byte[]","kind":"password,aes-key","description":"Password or raw AES key","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"},"raw":{"type":"bool","description":"Whether to return raw bytes instead of encoded text","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false","role":"Option","projection":"Value"}},"output":{"mode":"Value","kind":"text,binary-content","description":"Resolves to the decrypted content as text or raw bytes when [raw] is true"}}},{"name":"crypto.aes.encrypt","description":"Encrypts data using AES","signature":{"input":{"kind":"text,binary-content","description":"Content to encrypt","required":true,"mode":"ValueOrExpression"},"children":{"password":{"type":"string|byte[]","kind":"password,aes-key","description":"Password or raw AES key","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"},"raw":{"type":"bool","description":"Whether to return raw bytes instead of encoded text","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false","role":"Option","projection":"Value"}},"output":{"mode":"Value","kind":"aes-encrypted-package,fingerprint-source","description":"Resolves to the encrypted package as base64 text or raw bytes when [raw] is true"}}},{"name":"crypto.decrypt","description":"Decrypts data using the configured combination algorithm","signature":{"input":{"kind":"crypto-encrypted-package","description":"Encrypted package to decrypt and optionally verify","required":true,"mode":"ValueOrExpression"},"children":{"decryption-key":{"type":"string|byte[]","kind":"crypto-private-key","description":"Private decryption key","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"},"verification-key":{"type":"string|byte[]","kind":"crypto-public-key","description":"Public key used to verify the signature","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"},"raw":{"type":"bool","description":"Whether to return raw bytes instead of encoded text","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false","role":"Option","projection":"Value"}},"output":{"mode":"Value","kind":"text,binary-content","description":"Resolves to the decrypted content as text or raw bytes when [raw] is true"}}},{"name":"crypto.encrypt","description":"Encrypts data using the configured combination algorithm","signature":{"input":{"kind":"text,binary-content","description":"Content to sign and encrypt","required":true,"mode":"ValueOrExpression"},"children":{"signing-key":{"type":"string|byte[]","kind":"crypto-private-key","description":"Private signing key","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"},"encryption-key":{"type":"string|byte[]","kind":"crypto-public-key","description":"Public encryption key","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"},"signing-key-fingerprint":{"type":"string|byte[]","kind":"crypto-key-fingerprint","description":"Fingerprint for the signing key","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"},"raw":{"type":"bool","description":"Whether to return raw bytes instead of encoded text","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false","role":"Option","projection":"Value"},"seed":{"type":"string|byte[]","kind":"crypto-seed","description":"Optional encryption seed","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}},"output":{"mode":"Value","kind":"crypto-encrypted-package,fingerprint-source","description":"Resolves to the encrypted package as base64 text or raw bytes when [raw] is true"}}},{"name":"crypto.fingerprint","description":"Returns a SHA256 fingerprint of the input, formatted as colon-separated hex; useful for identifying public keys","signature":{"input":{"kind":"fingerprint-source","description":"Base64 encoded content or raw byte[] content to fingerprint","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Value","kind":"fingerprint,text","description":"Resolves to the SHA256 hash of the supplied content formatted as a fingerprint"}}},{"name":"crypto.get-key","description":"Returns or derives a cryptographic key","signature":{"input":{"kind":"crypto-encrypted-package","description":"Encrypted package to extract the key fingerprint from","required":true,"mode":"ValueOrExpression"},"children":{"raw":{"type":"bool","description":"Whether to return raw bytes instead of encoded text","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false","role":"Option","projection":"Value"}},"output":{"mode":"Value","kind":"crypto-key-fingerprint","description":"Resolves to the package key fingerprint as text or raw bytes when [raw] is true"}}},{"name":"crypto.hash","description":"Hashes input using SHA256 by default, or the supplied [algorithm] child","signature":{"input":{"kind":"text,binary-content","description":"String or byte[] content to hash when [filename] is not supplied","required":false,"mode":"ValueOrExpression"},"children":{"algorithm":{"type":"string","kind":"hash-algorithm","description":"Hash algorithm: md5, sha1, sha256, sha384, or sha512","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"sha256","role":"Option","projection":"Value"},"filename":{"type":"string","kind":"file-path","description":"File to hash when no input content is supplied","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"format":{"type":"string","kind":"hash-format","description":"Hash output format: text, raw, or fingerprint","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"text","role":"Option","projection":"Value"}},"constraints":[{"description":"Provide either input content or [filename]","values":["input","filename"],"kind":"ExactlyOneOf"}],"output":{"mode":"Value","kind":"hash,fingerprint,hash-bytes,text","description":"Resolves to the computed hash as text, raw bytes, or fingerprint according to [format]"}}},{"name":"crypto.hash.md5","description":"Hashes input using the MD5 algorithm","signature":{"input":{"kind":"text,binary-content","description":"String or byte[] content to hash when [filename] is not supplied","required":false,"mode":"ValueOrExpression"},"children":{"filename":{"type":"string","kind":"file-path","description":"File to hash when no input content is supplied","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"format":{"type":"string","kind":"hash-format","description":"Hash output format: text, raw, or fingerprint","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"text","role":"Option","projection":"Value"}},"constraints":[{"description":"Provide either input content or [filename]","values":["input","filename"],"kind":"ExactlyOneOf"}],"output":{"mode":"Value","kind":"hash,fingerprint,hash-bytes,text","description":"Resolves to the computed hash as text, raw bytes, or fingerprint according to [format]"}}},{"name":"crypto.hash.sha1","description":"Hashes input using the SHA1 algorithm","signature":{"input":{"kind":"text,binary-content","description":"String or byte[] content to hash when [filename] is not supplied","required":false,"mode":"ValueOrExpression"},"children":{"filename":{"type":"string","kind":"file-path","description":"File to hash when no input content is supplied","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"format":{"type":"string","kind":"hash-format","description":"Hash output format: text, raw, or fingerprint","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"text","role":"Option","projection":"Value"}},"constraints":[{"description":"Provide either input content or [filename]","values":["input","filename"],"kind":"ExactlyOneOf"}],"output":{"mode":"Value","kind":"hash,fingerprint,hash-bytes,text","description":"Resolves to the computed hash as text, raw bytes, or fingerprint according to [format]"}}},{"name":"crypto.hash.sha256","description":"Hashes input using the SHA256 algorithm","signature":{"input":{"kind":"text,binary-content","description":"String or byte[] content to hash when [filename] is not supplied","required":false,"mode":"ValueOrExpression"},"children":{"filename":{"type":"string","kind":"file-path","description":"File to hash when no input content is supplied","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"format":{"type":"string","kind":"hash-format","description":"Hash output format: text, raw, or fingerprint","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"text","role":"Option","projection":"Value"}},"constraints":[{"description":"Provide either input content or [filename]","values":["input","filename"],"kind":"ExactlyOneOf"}],"output":{"mode":"Value","kind":"hash,fingerprint,hash-bytes,text","description":"Resolves to the computed hash as text, raw bytes, or fingerprint according to [format]"}}},{"name":"crypto.hash.sha384","description":"Hashes input using the SHA384 algorithm","signature":{"input":{"kind":"text,binary-content","description":"String or byte[] content to hash when [filename] is not supplied","required":false,"mode":"ValueOrExpression"},"children":{"filename":{"type":"string","kind":"file-path","description":"File to hash when no input content is supplied","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"format":{"type":"string","kind":"hash-format","description":"Hash output format: text, raw, or fingerprint","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"text","role":"Option","projection":"Value"}},"constraints":[{"description":"Provide either input content or [filename]","values":["input","filename"],"kind":"ExactlyOneOf"}],"output":{"mode":"Value","kind":"hash,fingerprint,hash-bytes,text","description":"Resolves to the computed hash as text, raw bytes, or fingerprint according to [format]"}}},{"name":"crypto.hash.sha512","description":"Hashes input using the SHA512 algorithm","signature":{"input":{"kind":"text,binary-content","description":"String or byte[] content to hash when [filename] is not supplied","required":false,"mode":"ValueOrExpression"},"children":{"filename":{"type":"string","kind":"file-path","description":"File to hash when no input content is supplied","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"format":{"type":"string","kind":"hash-format","description":"Hash output format: text, raw, or fingerprint","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"text","role":"Option","projection":"Value"}},"constraints":[{"description":"Provide either input content or [filename]","values":["input","filename"],"kind":"ExactlyOneOf"}],"output":{"mode":"Value","kind":"hash,fingerprint,hash-bytes,text","description":"Resolves to the computed hash as text, raw bytes, or fingerprint according to [format]"}}},{"name":"crypto.password.hash","description":"Hashes a plaintext password with bcrypt and a per-user salt; check candidates later with [crypto.password.verify]","signature":{"input":{"kind":"password,text","description":"Password to hash","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Value","kind":"password-hash,text","description":"Resolves to the password hash"}}},{"name":"crypto.password.verify","description":"Verifies a password against a hash","signature":{"input":{"kind":"password,text","description":"Plaintext password to verify","required":true,"mode":"ValueOrExpression"},"children":{"hash":{"type":"string","kind":"password-hash","description":"BCrypt password hash produced by [crypto.password.hash]","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"}},"output":{"mode":"Value","kind":"boolean","description":"Returns true if the password matches the supplied hash"}}},{"name":"crypto.random","description":"Returns a cryptographically secure random string or random bytes","signature":{"children":{"min":{"type":"int","description":"Minimum random length","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"10","role":"Option","projection":"Value"},"max":{"type":"int","description":"Maximum random length","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"raw":{"type":"bool","description":"Whether to return raw bytes instead of encoded text","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false","role":"Option","projection":"Value"},"seed":{"type":"string","kind":"crypto-seed","description":"Optional deterministic seed","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}},"output":{"mode":"Value","kind":"random-content,binary-content","description":"Resolves to a random string, or random bytes when [raw] is true"}}},{"name":"crypto.random.int","description":"Returns a cryptographically secure random integer; use the optional [max] to cap the upper bound","signature":{"children":{"max":{"type":"int","description":"Exclusive maximum integer","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"int.MaxValue","role":"Option","projection":"Value"},"seed":{"type":"string","kind":"crypto-seed","description":"Optional deterministic seed","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}},"output":{"mode":"Value","kind":"random-number,integer,number","description":"Resolves to a random integer less than the optional [max] value"}}},{"name":"crypto.rsa.create-key","description":"Generates a fresh RSA key pair; returns the public key and private key as separate child nodes for storage or distribution","signature":{"children":{"strength":{"type":"int","kind":"rsa-key-strength","description":"RSA key strength in bits","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"2048","role":"Option","projection":"Value"},"seed":{"type":"string|byte[]","kind":"crypto-seed","description":"Optional deterministic seed","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"raw":{"type":"bool","description":"Whether to return raw bytes instead of encoded text","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false","role":"Option","projection":"Value"}},"output":{"mode":"Lambda","kind":"rsa-key-pair,lambda-tree","description":"Resolves to the generated RSA key pair as child nodes"}}},{"name":"crypto.rsa.decrypt","description":"Decrypts RSA encrypted data","signature":{"input":{"kind":"rsa-encrypted-package","description":"Encrypted package to decrypt","required":true,"mode":"ValueOrExpression"},"children":{"private-key":{"type":"string|byte[]","kind":"rsa-private-key","description":"Private key for the RSA operation","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"},"raw":{"type":"bool","description":"Whether to return raw bytes instead of encoded text","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false","role":"Option","projection":"Value"}},"output":{"mode":"Value","kind":"text,binary-content","description":"Resolves to the decrypted content as text or raw bytes when [raw] is true"}}},{"name":"crypto.rsa.encrypt","description":"Encrypts data using RSA","signature":{"input":{"kind":"text,binary-content","description":"Content to encrypt","required":true,"mode":"ValueOrExpression"},"children":{"public-key":{"type":"string|byte[]","kind":"rsa-public-key","description":"Public key for the RSA operation","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"},"raw":{"type":"bool","description":"Whether to return raw bytes instead of encoded text","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false","role":"Option","projection":"Value"}},"output":{"mode":"Value","kind":"rsa-encrypted-package,fingerprint-source","description":"Resolves to the encrypted package as base64 text or raw bytes when [raw] is true"}}},{"name":"crypto.rsa.sign","description":"Signs data using RSA","signature":{"input":{"kind":"text,binary-content","description":"Content to sign","required":true,"mode":"ValueOrExpression"},"children":{"private-key":{"type":"string|byte[]","kind":"rsa-private-key","description":"Private key for the RSA operation","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"},"raw":{"type":"bool","description":"Whether to return raw bytes instead of encoded text","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false","role":"Option","projection":"Value"}},"output":{"mode":"Value","kind":"rsa-signature,fingerprint-source","description":"Resolves to the signature as base64 text or raw bytes when [raw] is true"}}},{"name":"crypto.rsa.verify","description":"Verifies an RSA signature","signature":{"input":{"kind":"text,binary-content","description":"Content to verify against the supplied signature","required":true,"mode":"ValueOrExpression"},"children":{"signature":{"type":"string|byte[]","kind":"rsa-signature","description":"RSA signature to verify","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"},"public-key":{"type":"string|byte[]","kind":"rsa-public-key","description":"Public key used to verify the signature","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"},"raw":{"type":"bool","description":"Whether to return raw bytes instead of encoded text","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false","role":"Option","projection":"Value"}}}},{"name":"crypto.seed","description":"Adds entropy to the secure random number generator; useful when supplying additional out-of-band randomness","signature":{"input":{"kind":"crypto-seed,text","description":"Seed value for the random generator","required":true,"mode":"ValueOrExpression"}}},{"name":"crypto.sign","description":"Signs data using the configured combination algorithm","signature":{"input":{"kind":"text,binary-content","description":"Content to sign","required":true,"mode":"ValueOrExpression"},"children":{"signing-key":{"type":"string|byte[]","kind":"crypto-private-key","description":"Private signing key","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"},"signing-key-fingerprint":{"type":"string|byte[]","kind":"crypto-key-fingerprint","description":"Fingerprint for the signing key","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"},"raw":{"type":"bool","description":"Whether to return raw bytes instead of encoded text","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false","role":"Option","projection":"Value"}},"output":{"mode":"Value","kind":"crypto-signature,fingerprint-source,text","description":"Resolves to the signed package as base64 text or raw bytes when [raw] is true"}}},{"name":"crypto.verify","description":"Verifies a signature using the configured combination algorithm","signature":{"input":{"kind":"crypto-signature","description":"Signed package to verify","required":true,"mode":"ValueOrExpression"},"children":{"verification-key":{"type":"string|byte[]","kind":"crypto-public-key","description":"Public key used to verify the signature","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"},"raw":{"type":"bool","description":"Whether to return raw bytes instead of encoded text","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false","role":"Option","projection":"Value"}},"output":{"mode":"Value","kind":"text,binary-content","description":"Resolves to the verified content as text or raw bytes when [raw] is true"}}},{"name":"data.connect","description":"Opens a database connection using the configured provider","signature":{"input":{"kind":"database-name,connection-string","description":"Optional DATABASE_NAME or [CONNECTION_STRING|DATABASE_NAME] override","required":false,"mode":"ValueOrExpression"},"children":{"database-type":{"type":"string","kind":"database-type","description":"Database adapter to use instead of the configured default","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"*":{"type":"lambda","description":"Executable child slot evaluated while the database connection is open","required":false,"mode":"ExecutableLambda","cardinality":"ZeroOrMore","role":"ExecutableBody","evaluation":"EvalSelf","projection":"Self"}},"scope":{"provides":"data.connection","description":"Creates an open database connection scope for data.* slots"}}},{"name":"data.create","description":"Inserts a new row into the current open database connection","signature":{"children":{"database-type":{"type":"string","kind":"database-type","description":"Database adapter to use instead of the configured default","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne"},"generate":{"type":"bool","description":"Whether to only generate SQL and parameter nodes instead of executing it","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false"},"return-id":{"type":"bool","description":"Whether to return the created row ID","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"true"},"table":{"type":"string","kind":"table-name","description":"Table name to use in the SQL statement","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne"},"values":{"type":"lambda","description":"Column values to insert or update","required":true,"mode":"DynamicNamedValues","cardinality":"ExactlyOne","children":{"*":{"type":"object","kind":"sql-column-value,text,number,boolean,date,guid,content,value","description":"Column name and value","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore"}}}},"scope":{"requires":"data.connection","description":"Requires an open database connection created by [data.connect]"},"output":{"mode":"Value","description":"Resolves to the created row ID when [return-id] is true, otherwise null"}}},{"name":"data.delete","description":"Deletes rows in the current open database connection; include a [where] child unless intentionally deleting every row in the table","signature":{"children":{"database-type":{"type":"string","kind":"database-type","description":"Database adapter to use instead of the configured default","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne"},"generate":{"type":"bool","description":"Whether to only generate SQL and parameter nodes instead of executing it","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false"},"table":{"type":"string","kind":"table-name","description":"Table name to use in the SQL statement","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne"},"where":{"type":"lambda","kind":"sql-predicate-root","description":"Required boolean predicate tree — destructive SQL must constrain affected rows","required":true,"mode":"StructuredArguments","cardinality":"ExactlyOne","constraints":[{"description":"Where clause renders one top-level boolean group","values":["and","or"],"kind":"ExactlyOneOf"}],"children":{"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]},"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]},"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}}}}}}},"scope":{"requires":"data.connection","description":"Requires an open database connection created by [data.connect]"},"output":{"mode":"Value","kind":"integer,number","description":"Resolves to the number of rows affected"}}},{"name":"data.execute","description":"Executes SQL against the current database connection","signature":{"input":{"kind":"sql-execute","description":"SQL statement to execute","required":true,"mode":"ValueOrExpression"},"children":{"database-type":{"type":"string","kind":"database-type","description":"Database adapter to use instead of the configured default","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne"},"*":{"type":"object","kind":"sql-parameter-value,text,number,boolean,date,guid,content,value","description":"SQL parameter value; child name is used as the parameter name referenced by the SQL statement","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Arguments","projection":"Value"}},"scope":{"requires":"data.connection","description":"Requires an open database connection created by [data.connect]"},"output":{"mode":"Value","kind":"integer,number","description":"Resolves to the number of rows affected by the SQL statement"}}},{"name":"data.read","description":"Selects rows from the current open database connection; returns all columns unless [columns] is supplied and limits to 25 rows unless [limit] is supplied","signature":{"children":{"database-type":{"type":"string","kind":"database-type","description":"Database adapter to use instead of the configured default","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne"},"generate":{"type":"bool","description":"Whether to only generate SQL and parameter nodes instead of executing it","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false"},"table":{"type":"string","kind":"table-name","description":"Table name to use in the SQL statement","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","children":{"as":{"type":"string","kind":"table-alias","description":"Optional table alias","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne"},"join":{"type":"string","kind":"table-name","description":"Joined table name","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","children":{"type":{"type":"string","kind":"join-type","description":"Join type: inner, left, right, or full","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"inner"},"as":{"type":"string","kind":"table-alias","description":"Optional joined table alias","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne"},"on":{"type":"lambda","kind":"sql-predicate-root","description":"Join predicate tree comparing columns (AND-only at the schema level; the SQL builder still accepts hand-written [or] for legacy code)","required":true,"mode":"StructuredArguments","cardinality":"ExactlyOne","children":{"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":true,"mode":"StructuredArguments","cardinality":"ExactlyOne","children":{"*":{"type":"object","kind":"sql-column-condition,sql-qualified-column,text,number,boolean,date,guid,content,value","description":"Join predicate: LHS is a column-with-operator suffix, RHS is the joined-side column reference (leaf-only — value-list children are a WHERE-clause feature, not meaningful in JOIN ON)","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne"},"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,sql-qualified-column,text,number,boolean,date,guid,content,value","description":"Join predicate: LHS is a column-with-operator suffix, RHS is the joined-side column reference (leaf-only — value-list children are a WHERE-clause feature, not meaningful in JOIN ON)","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne"}}}}}}},"join":{"type":"string","kind":"table-name","description":"Joined table name","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","children":{"type":{"type":"string","kind":"join-type","description":"Join type: inner, left, right, or full","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"inner"},"as":{"type":"string","kind":"table-alias","description":"Optional joined table alias","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne"},"on":{"type":"lambda","kind":"sql-predicate-root","description":"Join predicate tree comparing columns (AND-only at the schema level; the SQL builder still accepts hand-written [or] for legacy code)","required":true,"mode":"StructuredArguments","cardinality":"ExactlyOne","children":{"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":true,"mode":"StructuredArguments","cardinality":"ExactlyOne","children":{"*":{"type":"object","kind":"sql-column-condition,sql-qualified-column,text,number,boolean,date,guid,content,value","description":"Join predicate: LHS is a column-with-operator suffix, RHS is the joined-side column reference (leaf-only — value-list children are a WHERE-clause feature, not meaningful in JOIN ON)","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne"},"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,sql-qualified-column,text,number,boolean,date,guid,content,value","description":"Join predicate: LHS is a column-with-operator suffix, RHS is the joined-side column reference (leaf-only — value-list children are a WHERE-clause feature, not meaningful in JOIN ON)","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne"}}}}}}}}}}}}},"distinct":{"type":"bool","description":"Removes duplicate rows from the result set when true","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false"},"columns":{"type":"lambda","description":"Columns or aggregate expressions to select; omitted or empty means all columns","required":false,"mode":"DynamicNamedValues","cardinality":"ZeroOrOne","children":{"*":{"type":"string","kind":"column-name,aggregate-expression","description":"Column name or aggregate expression; optional [as] child declares an alias","required":false,"mode":"Value","cardinality":"OneOrMore","children":{"as":{"type":"string","kind":"column-alias","description":"Column alias","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne"}}}}},"where":{"type":"lambda","kind":"sql-predicate-root","description":"Optional boolean predicate tree","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","constraints":[{"description":"Where clause renders one top-level boolean group","values":["and","or"],"kind":"ExactlyOneOf"}],"children":{"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]},"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]},"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}}}}}},"group":{"type":"lambda","description":"Columns or aggregate expressions to group by","required":false,"mode":"DynamicNamedValues","cardinality":"ZeroOrOne","children":{"*":{"type":"string","kind":"column-name,aggregate-expression","description":"Column name or aggregate expression","required":false,"mode":"Value","cardinality":"ZeroOrMore"}}},"order":{"type":"string","kind":"column-name,aggregate-expression","description":"Column, comma-separated columns, or aggregate expression to order by","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","children":{"direction":{"type":"string","kind":"sort-direction","description":"Order direction for this specific order node","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"asc"}}},"limit":{"type":"long","description":"Maximum number of rows to return; omitted defaults to 25 and -1 suppresses the generated limit clause","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"25"},"offset":{"type":"long","description":"Number of rows to skip","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"0"}},"scope":{"requires":"data.connection","description":"Requires an open database connection created by [data.connect]"},"output":{"mode":"Lambda","kind":"node-list","element-kind":"row-object,lambda-tree","description":"Resolves to matching rows as child nodes","children":[{"type":"lambda","kind":"row","description":"One row returned by the read; child nodes carry the selected column values, with each child's name being the column name or alias from the SELECT statement","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"StructuredObject","projection":"StructuredTree","children":{"*":{"type":"string","kind":"column-value","description":"Column value; child name is the column name (or alias) declared in the read","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}}]}}},{"name":"data.scalar","description":"Executes SQL and returns a scalar value from the current database connection","signature":{"input":{"kind":"sql-scalar","description":"SQL statement to execute","required":true,"mode":"ValueOrExpression"},"children":{"database-type":{"type":"string","kind":"database-type","description":"Database adapter to use instead of the configured default","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne"},"*":{"type":"object","kind":"sql-parameter-value,text,number,boolean,date,guid,content,value","description":"SQL parameter value; child name is used as the parameter name referenced by the SQL statement","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Arguments","projection":"Value"}},"scope":{"requires":"data.connection","description":"Requires an open database connection created by [data.connect]"},"output":{"mode":"Value","description":"Resolves to a scalar value from the current database connection"}}},{"name":"data.select","description":"Executes a query and returns rows from the current database connection","signature":{"input":{"kind":"sql-select","description":"SQL query to execute","required":true,"mode":"ValueOrExpression"},"children":{"database-type":{"type":"string","kind":"database-type","description":"Database adapter to use instead of the configured default","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne"},"max":{"type":"long","description":"Maximum number of rows to return; omitted or -1 returns all rows","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"-1","role":"Option","projection":"Value"},"multiple-result-sets":{"type":"bool","description":"Whether multiple SELECT statements in the SQL input should be returned as separate child result containers","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false","role":"Option","projection":"Value"},"*":{"type":"object","kind":"sql-parameter-value,text,number,boolean,date,guid,content,value","description":"SQL parameter value; child name is used as the parameter name referenced by the SQL statement","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Arguments","projection":"Value"}},"scope":{"requires":"data.connection","description":"Requires an open database connection created by [data.connect]"},"output":{"mode":"Lambda","kind":"node-list","element-kind":"row-object,lambda-tree","description":"Resolves to query result rows as child nodes","children":[{"type":"lambda","kind":"row","description":"One row returned by the read; child nodes carry the selected column values, with each child's name being the column name or alias from the SELECT statement","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"StructuredObject","projection":"StructuredTree","children":{"*":{"type":"string","kind":"column-value","description":"Column value; child name is the column name (or alias) declared in the read","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}}]}}},{"name":"data.transaction.commit","description":"Commits the current database transaction using the configured provider","signature":{"children":{"database-type":{"type":"string","kind":"database-type","description":"Database adapter to use instead of the configured default","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne"}},"scope":{"requires":"data.transaction","description":"Requires an active database transaction created by [data.transaction.create]"}}},{"name":"data.transaction.create","description":"Creates a database transaction using the configured provider","signature":{"children":{"database-type":{"type":"string","kind":"database-type","description":"Database adapter to use instead of the configured default","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne"}},"scope":{"provides":"data.transaction","requires":"data.connection","description":"Requires an open database connection created by [data.connect]"}}},{"name":"data.transaction.rollback","description":"Rolls back the current database transaction using the configured provider","signature":{"children":{"database-type":{"type":"string","kind":"database-type","description":"Database adapter to use instead of the configured default","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne"}},"scope":{"requires":"data.transaction","description":"Requires an active database transaction created by [data.transaction.create]"}}},{"name":"data.update","description":"Updates rows in the current open database connection; use [where] to constrain affected rows","signature":{"children":{"database-type":{"type":"string","kind":"database-type","description":"Database adapter to use instead of the configured default","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne"},"generate":{"type":"bool","description":"Whether to only generate SQL and parameter nodes instead of executing it","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false"},"table":{"type":"string","kind":"table-name","description":"Table name to use in the SQL statement","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne"},"values":{"type":"lambda","description":"Column values to insert or update","required":true,"mode":"DynamicNamedValues","cardinality":"ExactlyOne","children":{"*":{"type":"object","kind":"sql-column-value,text,number,boolean,date,guid,content,value","description":"Column name and value","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore"}}},"where":{"type":"lambda","kind":"sql-predicate-root","description":"Required boolean predicate tree — destructive SQL must constrain affected rows","required":true,"mode":"StructuredArguments","cardinality":"ExactlyOne","constraints":[{"description":"Where clause renders one top-level boolean group","values":["and","or"],"kind":"ExactlyOneOf"}],"children":{"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]},"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]},"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}}}}}}},"scope":{"requires":"data.connection","description":"Requires an open database connection created by [data.connect]"},"output":{"mode":"Value","kind":"integer,number","description":"Resolves to the number of rows affected"}}},{"name":"date.format","description":"Formats a DateTime using a .NET format string (e.g. yyyy-MM-dd HH:mm) for display or logging","signature":{"input":{"kind":"date","description":"Date value to format","required":true,"mode":"ValueOrExpression"},"children":{"format":{"type":"string","kind":"date-format","description":"Format string","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"}},"output":{"mode":"Value","kind":"formatted-date,text","description":"Resolves to the formatted date string"}}},{"name":"date.from-unix","description":"Converts a Unix timestamp into a DateTime value","signature":{"input":{"kind":"unix-timestamp,integer,number","description":"Unix timestamp to convert","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Value","kind":"date","description":"Resolves to the date represented by the supplied Unix timestamp"}}},{"name":"date.max","description":"Returns the maximum DateTime value","signature":{"output":{"mode":"Value","kind":"date","description":"Resolves to the maximum supported DateTime value"}}},{"name":"date.min","description":"Returns the minimum DateTime value","signature":{"output":{"mode":"Value","kind":"date","description":"Resolves to the minimum supported DateTime value"}}},{"name":"date.now","description":"Returns the current server time in UTC","signature":{"output":{"mode":"Value","kind":"date","description":"Resolves to the current UTC date and time"}}},{"name":"date.unix","description":"Returns the current UTC time as a Unix timestamp","signature":{"output":{"mode":"Value","kind":"unix-timestamp,integer,number","description":"Resolves to the current UTC Unix timestamp in milliseconds"}}},{"name":"endpoints.list","description":"Lists dynamic Hyperlambda endpoints with metadata","signature":{"output":{"mode":"Lambda","kind":"endpoint-list,node-list","element-kind":"endpoint,lambda-tree","description":"Resolves to one child node per discovered endpoint, including its endpoint metadata"}}},{"name":"execution.kill","description":"Cancels a running execution by execution ID","signature":{"input":{"kind":"execution-id","description":"Execution ID to cancel","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Value","kind":"boolean","description":"Returns true if the execution was cancelled"}}},{"name":"execution.throttle","description":"Enforces a named throttle previously declared with [execution.throttle.create], throwing a 429 exception once the limit is exceeded","signature":{"input":{"kind":"throttle-name","description":"Name of the throttle to enforce, as previously declared with [execution.throttle.create]","required":true,"mode":"ValueOrExpression"}}},{"name":"execution.throttle.create","description":"Creates or replaces a named throttle enforced by [execution.throttle]; declaring an unchanged configuration keeps the existing throttle and its counters, while invoking the slot without arguments deletes the throttle instead","signature":{"input":{"kind":"throttle-name","description":"Name of the throttle to create, replace or delete","required":true,"mode":"ValueOrExpression"},"children":{"limit":{"type":"int","description":"Maximum number of invocations allowed per window; mandatory when creating a throttle, while invoking the slot without any arguments deletes the throttle instead","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"window":{"type":"int","kind":"duration-seconds","description":"Window length in seconds","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"60","role":"Option","projection":"Value"},"per":{"type":"string","description":"How to partition the limit; 'user' partitions per authenticated username, 'ip' per client IP address, and 'global' shares one limit between all callers","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"user when authenticated, otherwise ip","role":"Option","projection":"Value"}}}},{"name":"execution.timeout","description":"Sets a timeout in milliseconds for the current execution","signature":{"input":{"kind":"timeout-ms,integer,number","description":"Timeout in milliseconds for the current execution","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Value","kind":"boolean","description":"Returns true if the timeout was applied"}}},{"name":"git.branch.list","description":"Returns every branch in the local repository, marking which one is currently checked out","signature":{"input":{"kind":"git-repo-path","description":"Repository path","required":true,"mode":"ValueOrExpression"},"children":{"remote":{"type":"bool","description":"List remote branches","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false","role":"Option","projection":"Value"},"all":{"type":"bool","description":"List all branches","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false","role":"Option","projection":"Value"}},"output":{"mode":"Lambda","kind":"git-branch-list,string-list","element-kind":"git-branch,text","description":"Returns one unnamed child node per git branch name"}}},{"name":"git.checkout","description":"Checks out a Git branch","signature":{"input":{"kind":"git-repo-path","description":"Repository path","required":true,"mode":"ValueOrExpression"},"children":{"branch":{"type":"string","kind":"git-branch","description":"Branch to check out","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"},"create":{"type":"bool","description":"Create the branch while checking it out","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false","role":"Option","projection":"Value"}},"output":{"mode":"Value","kind":"git-response,text","description":"Resolves to the git checkout command output"}}},{"name":"git.clone-repo","description":"Clones a Git repository","signature":{"input":{"kind":"git-url","description":"Repository URL to clone","required":true,"mode":"ValueOrExpression"},"children":{"path":{"type":"string","kind":"git-repo-path","description":"Destination repository folder","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"branch":{"type":"string","kind":"git-branch","description":"Branch to clone","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"depth":{"type":"int","description":"Shallow clone depth","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}},"output":{"mode":"Value","kind":"git-response,text","description":"Resolves to the git clone command output"}}},{"name":"git.commit","description":"Stages all changes in the repo and creates a new commit with the supplied message and author","signature":{"input":{"kind":"git-repo-path","description":"Repository path","required":true,"mode":"ValueOrExpression"},"children":{"message":{"type":"string","kind":"commit-message","description":"Commit message","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"},"all":{"type":"bool","description":"Stage all changed files before committing","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"true","role":"Option","projection":"Value"},"amend":{"type":"bool","description":"Amend the previous commit","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false","role":"Option","projection":"Value"},"name":{"type":"string","description":"Author name for the commit; omitted falls back to git's configured identity","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"email":{"type":"string","description":"Author email for the commit; omitted falls back to git's configured identity","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}},"output":{"mode":"Value","kind":"git-response,text","description":"Resolves to the git commit command output"}}},{"name":"git.create-repo","description":"Initializes a Git repository","signature":{"input":{"kind":"folder-path","description":"Folder path to initialize as a repository","required":true,"mode":"ValueOrExpression"},"children":{"branch":{"type":"string","kind":"git-branch","description":"Initial branch name","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"bare":{"type":"bool","description":"Create a bare repository","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false","role":"Option","projection":"Value"}},"output":{"mode":"Value","kind":"git-response,text","description":"Resolves to the git init command output"}}},{"name":"git.delete-repo","description":"Deletes a local Git repository","signature":{"input":{"kind":"git-repo-path","description":"Repository path to delete","required":true,"mode":"ValueOrExpression"}}},{"name":"git.diff","description":"Returns the unified diff between the working tree and HEAD, for the whole repository or one file","signature":{"input":{"kind":"git-repo-path","description":"Repository path","required":true,"mode":"ValueOrExpression"},"children":{"file":{"type":"string","kind":"git-file-path","description":"Repository-relative path of one file to diff; omitted diffs the whole repository","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}},"output":{"mode":"Value","kind":"git-diff,text","description":"Returns the unified diff text"}}},{"name":"git.fetch","description":"Fetches updates from a Git remote","signature":{"input":{"kind":"git-repo-path","description":"Repository path","required":true,"mode":"ValueOrExpression"},"children":{"remote":{"type":"string","kind":"git-remote","description":"Remote to fetch from","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"origin","role":"Option","projection":"Value"},"refspec":{"type":"string","kind":"git-refspec","description":"Optional refspec to fetch","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}},"output":{"mode":"Value","kind":"git-response,text","description":"Resolves to the git fetch command output"}}},{"name":"git.pull","description":"Pulls updates from a Git remote","signature":{"input":{"kind":"git-repo-path","description":"Repository path","required":true,"mode":"ValueOrExpression"},"children":{"remote":{"type":"string","kind":"git-remote","description":"Remote to pull from","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"origin","role":"Option","projection":"Value"},"branch":{"type":"string","kind":"git-branch","description":"Branch to pull","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"rebase":{"type":"bool","description":"Use rebase while pulling","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false","role":"Option","projection":"Value"},"ff-only":{"type":"bool","description":"Only allow fast-forward pulls","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false","role":"Option","projection":"Value"}},"output":{"mode":"Value","kind":"git-response,text","description":"Resolves to the git pull command output"}}},{"name":"git.push","description":"Pushes changes to a Git remote","signature":{"input":{"kind":"git-repo-path","description":"Repository path","required":true,"mode":"ValueOrExpression"},"children":{"remote":{"type":"string","kind":"git-remote","description":"Remote to push to","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"origin","role":"Option","projection":"Value"},"branch":{"type":"string","kind":"git-branch","description":"Branch to push","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"set-upstream":{"type":"bool","description":"Set upstream while pushing","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false","role":"Option","projection":"Value"}},"output":{"mode":"Value","kind":"git-response,text","description":"Resolves to the git push command output"}}},{"name":"git.remote.add","description":"Adds a Git remote","signature":{"input":{"kind":"git-repo-path","description":"Repository path","required":true,"mode":"ValueOrExpression"},"children":{"name":{"type":"string","kind":"git-remote","description":"Remote name","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"origin","role":"Option","projection":"Value"},"url":{"type":"string","kind":"git-url","description":"Remote URL","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"}},"output":{"mode":"Value","kind":"git-response,text","description":"Resolves to the git remote add command output"}}},{"name":"git.restore","description":"Discards uncommitted changes by restoring one file from HEAD, or resets the whole working tree to HEAD including removal of untracked files","signature":{"input":{"kind":"git-repo-path","description":"Repository path","required":true,"mode":"ValueOrExpression"},"children":{"file":{"type":"string","kind":"git-file-path","description":"Repository-relative path of one file to restore from HEAD; omitted resets the whole working tree to HEAD and removes untracked files","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}},"output":{"mode":"Value","kind":"git-response,text","description":"Resolves to the git command output"}}},{"name":"git.status","description":"Returns Git repository status","signature":{"input":{"kind":"git-repo-path","description":"Repository path","required":true,"mode":"ValueOrExpression"},"children":{"porcelain":{"type":"bool","description":"Use porcelain status output","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false","role":"Option","projection":"Value"},"branch":{"type":"bool","description":"Include branch information","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false","role":"Option","projection":"Value"},"structured":{"type":"bool","description":"Return status lines as child nodes","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false","role":"Option","projection":"Value"}},"output":{"mode":"Both","kind":"git-status,text","description":"Returns Git status text in value or, when structured, one child node per status line"}}},{"name":"github.repo.create","description":"Creates a GitHub repository","signature":{"input":{"kind":"github-repo-name","description":"GitHub repository name","required":true,"mode":"ValueOrExpression"},"children":{"owner":{"type":"string","kind":"github-owner","description":"Organization owner; omit to create under the authenticated user","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"private":{"type":"bool","description":"Whether the repository is private","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false","role":"Option","projection":"Value"},"description":{"type":"string","kind":"git-repo-description","description":"Repository description","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"homepage":{"type":"string","kind":"url","description":"Repository homepage URL","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"auto-init":{"type":"bool","description":"Initialize the repository","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false","role":"Option","projection":"Value"},"default-branch":{"type":"string","kind":"git-branch","description":"Default branch name","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"gitignore-template":{"type":"string","kind":"gitignore-template","description":"GitHub gitignore template","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"license-template":{"type":"string","kind":"license-template","description":"GitHub license template","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}},"output":{"mode":"Lambda","kind":"github-repository,lambda-tree","description":"Resolves to the created GitHub repository as child nodes projected from the API response"}}},{"name":"github.repo.delete","description":"Deletes a GitHub repository","signature":{"input":{"kind":"github-repo-name","description":"GitHub repository name","required":true,"mode":"ValueOrExpression"},"children":{"owner":{"type":"string","kind":"github-owner","description":"Repository owner; omit to delete from the authenticated user","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}},"output":{"mode":"Value","kind":"boolean","description":"Returns true after the repository has been deleted"}}},{"name":"github.repo.list","description":"Lists GitHub repositories using child-node filters","signature":{"children":{"owner":{"type":"string","kind":"github-owner","description":"Organization owner; omit to list authenticated user repositories","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"visibility":{"type":"string","kind":"repo-visibility","description":"Repository visibility filter","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"type":{"type":"string","kind":"repo-type","description":"Repository type filter","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"per-page":{"type":"int","description":"Number of repositories per page","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"page":{"type":"int","description":"Page number","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}},"output":{"mode":"Lambda","kind":"github-repository-list,node-list","element-kind":"github-repository,lambda-tree","description":"Returns one child node per GitHub repository with the projected repository metadata"}}},{"name":"guid.new","description":"Generates a random version-4 GUID for use as a unique identifier","signature":{"output":{"mode":"Value","kind":"guid,text","description":"Resolves to a new GUID string"}}},{"name":"http.delete","description":"Issues an HTTP DELETE to the specified URL; used to remove a remote resource","signature":{"input":{"kind":"url-template","description":"URL to send the request to; supports {placeholder} segments substituted from [url-params]","required":true,"mode":"ValueOrExpression"},"children":{"query":{"type":"lambda","kind":"query-parameter-list","description":"Query string parameters","required":false,"mode":"DynamicNamedValues","cardinality":"ZeroOrOne","role":"DynamicMap","projection":"StructuredTree","children":{"*":{"type":"string","kind":"query-parameter-value","description":"Query parameter value","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}},"url-params":{"type":"lambda","kind":"url-parameter-list","description":"Named replacements for {placeholders} in the URL","required":false,"mode":"DynamicNamedValues","cardinality":"ZeroOrOne","role":"DynamicMap","projection":"StructuredTree","children":{"*":{"type":"string","kind":"url-parameter-value","description":"URL placeholder replacement value","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}},"headers":{"type":"lambda","kind":"http-header-list","description":"HTTP request headers","required":false,"mode":"DynamicNamedValues","cardinality":"ZeroOrOne","role":"DynamicMap","projection":"StructuredTree","children":{"*":{"type":"string","kind":"http-header-value","description":"HTTP header value","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}},"token":{"type":"string","kind":"bearer-token","description":"Bearer token to add as Authorization header","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"timeout":{"type":"int","kind":"timeout-seconds","description":"Request timeout in seconds","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"convert":{"type":"bool","kind":"boolean","description":"Whether to convert known response content types to lambda","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false","role":"Option","projection":"Value"},".sse":{"type":"lambda","kind":"sse-callback","description":"Callback executed once per server-sent event line; receives the line in [.arguments/message]","required":false,"mode":"ExecutableLambda","cardinality":"ZeroOrOne","role":"Callback","evaluation":"EvalBlock","projection":"Self"}},"output":{"mode":"Both","kind":"http-response","description":"Resolves to the HTTP status code in value and response headers and content as child nodes","children":{"content":{"type":"string|byte[]|lambda","kind":"http-response-content,lambda-tree,text","description":"HTTP response body; text responses are returned as string, binary responses as byte[], and converted known content types as child nodes when [convert] is true","required":false,"mode":"Value","cardinality":"ZeroOrOne","role":"Payload","projection":"Self"},"headers":{"type":"lambda","kind":"http-header-list","description":"HTTP response headers returned by the server","required":false,"mode":"Value","cardinality":"ZeroOrOne","role":"StructuredObject","projection":"StructuredTree","children":{"*":{"type":"string","kind":"http-header-value","description":"HTTP response header value; child name is the header name","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}}}}}},{"name":"http.get","description":"Issues an HTTP GET to the specified URL and returns the response body, status code, and headers","signature":{"input":{"kind":"url-template","description":"URL to send the request to; supports {placeholder} segments substituted from [url-params]","required":true,"mode":"ValueOrExpression"},"children":{"query":{"type":"lambda","kind":"query-parameter-list","description":"Query string parameters","required":false,"mode":"DynamicNamedValues","cardinality":"ZeroOrOne","role":"DynamicMap","projection":"StructuredTree","children":{"*":{"type":"string","kind":"query-parameter-value","description":"Query parameter value","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}},"url-params":{"type":"lambda","kind":"url-parameter-list","description":"Named replacements for {placeholders} in the URL","required":false,"mode":"DynamicNamedValues","cardinality":"ZeroOrOne","role":"DynamicMap","projection":"StructuredTree","children":{"*":{"type":"string","kind":"url-parameter-value","description":"URL placeholder replacement value","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}},"headers":{"type":"lambda","kind":"http-header-list","description":"HTTP request headers","required":false,"mode":"DynamicNamedValues","cardinality":"ZeroOrOne","role":"DynamicMap","projection":"StructuredTree","children":{"*":{"type":"string","kind":"http-header-value","description":"HTTP header value","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}},"token":{"type":"string","kind":"bearer-token","description":"Bearer token to add as Authorization header","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"timeout":{"type":"int","kind":"timeout-seconds","description":"Request timeout in seconds","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"convert":{"type":"bool","kind":"boolean","description":"Whether to convert known response content types to lambda","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false","role":"Option","projection":"Value"},".sse":{"type":"lambda","kind":"sse-callback","description":"Callback executed once per server-sent event line; receives the line in [.arguments/message]","required":false,"mode":"ExecutableLambda","cardinality":"ZeroOrOne","role":"Callback","evaluation":"EvalBlock","projection":"Self"}},"output":{"mode":"Both","kind":"http-response","description":"Resolves to the HTTP status code in value and response headers and content as child nodes","children":{"content":{"type":"string|byte[]|lambda","kind":"http-response-content,lambda-tree,text","description":"HTTP response body; text responses are returned as string, binary responses as byte[], and converted known content types as child nodes when [convert] is true","required":false,"mode":"Value","cardinality":"ZeroOrOne","role":"Payload","projection":"Self"},"headers":{"type":"lambda","kind":"http-header-list","description":"HTTP response headers returned by the server","required":false,"mode":"Value","cardinality":"ZeroOrOne","role":"StructuredObject","projection":"StructuredTree","children":{"*":{"type":"string","kind":"http-header-value","description":"HTTP response header value; child name is the header name","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}}}}}},{"name":"http.patch","description":"Issues an HTTP PATCH to the specified URL with a payload; used to apply partial updates to a remote resource","signature":{"input":{"kind":"url-template","description":"URL to send the request to; supports {placeholder} segments substituted from [url-params]","required":true,"mode":"ValueOrExpression"},"children":{"query":{"type":"lambda","kind":"query-parameter-list","description":"Query string parameters","required":false,"mode":"DynamicNamedValues","cardinality":"ZeroOrOne","role":"DynamicMap","projection":"StructuredTree","children":{"*":{"type":"string","kind":"query-parameter-value","description":"Query parameter value","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}},"url-params":{"type":"lambda","kind":"url-parameter-list","description":"Named replacements for {placeholders} in the URL","required":false,"mode":"DynamicNamedValues","cardinality":"ZeroOrOne","role":"DynamicMap","projection":"StructuredTree","children":{"*":{"type":"string","kind":"url-parameter-value","description":"URL placeholder replacement value","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}},"headers":{"type":"lambda","kind":"http-header-list","description":"HTTP request headers","required":false,"mode":"DynamicNamedValues","cardinality":"ZeroOrOne","role":"DynamicMap","projection":"StructuredTree","children":{"*":{"type":"string","kind":"http-header-value","description":"HTTP header value","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}},"token":{"type":"string","kind":"bearer-token","description":"Bearer token to add as Authorization header","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"timeout":{"type":"int","kind":"timeout-seconds","description":"Request timeout in seconds","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"convert":{"type":"bool","kind":"boolean","description":"Whether to convert known response content types to lambda","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false","role":"Option","projection":"Value"},".sse":{"type":"lambda","kind":"sse-callback","description":"Callback executed once per server-sent event line; receives the line in [.arguments/message]","required":false,"mode":"ExecutableLambda","cardinality":"ZeroOrOne","role":"Callback","evaluation":"EvalBlock","projection":"Self"},"payload":{"type":"object|lambda","kind":"http-request-payload,text","description":"Request payload value or structured payload transformed according to Content-Type","required":false,"mode":"SourceLambda","cardinality":"ZeroOrOne","role":"Payload","evaluation":"UnwrapDescendants","projection":"StructuredTree"},"filename":{"type":"string","kind":"file-path","description":"File path to stream as the request payload","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}},"constraints":[{"description":"Provide exactly one of [payload] or [filename] as the request body source","values":["payload","filename"],"kind":"ExactlyOneOf"}],"output":{"mode":"Both","kind":"http-response","description":"Resolves to the HTTP status code in value and response headers and content as child nodes","children":{"content":{"type":"string|byte[]|lambda","kind":"http-response-content,lambda-tree,text","description":"HTTP response body; text responses are returned as string, binary responses as byte[], and converted known content types as child nodes when [convert] is true","required":false,"mode":"Value","cardinality":"ZeroOrOne","role":"Payload","projection":"Self"},"headers":{"type":"lambda","kind":"http-header-list","description":"HTTP response headers returned by the server","required":false,"mode":"Value","cardinality":"ZeroOrOne","role":"StructuredObject","projection":"StructuredTree","children":{"*":{"type":"string","kind":"http-header-value","description":"HTTP response header value; child name is the header name","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}}}}}},{"name":"http.post","description":"Issues an HTTP POST to the specified URL with payload from [payload] or [filename]; returns the response body and headers","signature":{"input":{"kind":"url-template","description":"URL to send the request to; supports {placeholder} segments substituted from [url-params]","required":true,"mode":"ValueOrExpression"},"children":{"query":{"type":"lambda","kind":"query-parameter-list","description":"Query string parameters","required":false,"mode":"DynamicNamedValues","cardinality":"ZeroOrOne","role":"DynamicMap","projection":"StructuredTree","children":{"*":{"type":"string","kind":"query-parameter-value","description":"Query parameter value","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}},"url-params":{"type":"lambda","kind":"url-parameter-list","description":"Named replacements for {placeholders} in the URL","required":false,"mode":"DynamicNamedValues","cardinality":"ZeroOrOne","role":"DynamicMap","projection":"StructuredTree","children":{"*":{"type":"string","kind":"url-parameter-value","description":"URL placeholder replacement value","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}},"headers":{"type":"lambda","kind":"http-header-list","description":"HTTP request headers","required":false,"mode":"DynamicNamedValues","cardinality":"ZeroOrOne","role":"DynamicMap","projection":"StructuredTree","children":{"*":{"type":"string","kind":"http-header-value","description":"HTTP header value","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}},"token":{"type":"string","kind":"bearer-token","description":"Bearer token to add as Authorization header","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"timeout":{"type":"int","kind":"timeout-seconds","description":"Request timeout in seconds","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"convert":{"type":"bool","kind":"boolean","description":"Whether to convert known response content types to lambda","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false","role":"Option","projection":"Value"},".sse":{"type":"lambda","kind":"sse-callback","description":"Callback executed once per server-sent event line; receives the line in [.arguments/message]","required":false,"mode":"ExecutableLambda","cardinality":"ZeroOrOne","role":"Callback","evaluation":"EvalBlock","projection":"Self"},"payload":{"type":"object|lambda","kind":"http-request-payload,text","description":"Request payload value or structured payload transformed according to Content-Type","required":false,"mode":"SourceLambda","cardinality":"ZeroOrOne","role":"Payload","evaluation":"UnwrapDescendants","projection":"StructuredTree"},"filename":{"type":"string","kind":"file-path","description":"File path to stream as the request payload","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}},"constraints":[{"description":"Provide exactly one of [payload] or [filename] as the request body source","values":["payload","filename"],"kind":"ExactlyOneOf"}],"output":{"mode":"Both","kind":"http-response","description":"Resolves to the HTTP status code in value and response headers and content as child nodes","children":{"content":{"type":"string|byte[]|lambda","kind":"http-response-content,lambda-tree,text","description":"HTTP response body; text responses are returned as string, binary responses as byte[], and converted known content types as child nodes when [convert] is true","required":false,"mode":"Value","cardinality":"ZeroOrOne","role":"Payload","projection":"Self"},"headers":{"type":"lambda","kind":"http-header-list","description":"HTTP response headers returned by the server","required":false,"mode":"Value","cardinality":"ZeroOrOne","role":"StructuredObject","projection":"StructuredTree","children":{"*":{"type":"string","kind":"http-header-value","description":"HTTP response header value; child name is the header name","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}}}}}},{"name":"http.put","description":"Issues an HTTP PUT to the specified URL with a payload; commonly used to replace a remote resource in full","signature":{"input":{"kind":"url-template","description":"URL to send the request to; supports {placeholder} segments substituted from [url-params]","required":true,"mode":"ValueOrExpression"},"children":{"query":{"type":"lambda","kind":"query-parameter-list","description":"Query string parameters","required":false,"mode":"DynamicNamedValues","cardinality":"ZeroOrOne","role":"DynamicMap","projection":"StructuredTree","children":{"*":{"type":"string","kind":"query-parameter-value","description":"Query parameter value","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}},"url-params":{"type":"lambda","kind":"url-parameter-list","description":"Named replacements for {placeholders} in the URL","required":false,"mode":"DynamicNamedValues","cardinality":"ZeroOrOne","role":"DynamicMap","projection":"StructuredTree","children":{"*":{"type":"string","kind":"url-parameter-value","description":"URL placeholder replacement value","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}},"headers":{"type":"lambda","kind":"http-header-list","description":"HTTP request headers","required":false,"mode":"DynamicNamedValues","cardinality":"ZeroOrOne","role":"DynamicMap","projection":"StructuredTree","children":{"*":{"type":"string","kind":"http-header-value","description":"HTTP header value","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}},"token":{"type":"string","kind":"bearer-token","description":"Bearer token to add as Authorization header","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"timeout":{"type":"int","kind":"timeout-seconds","description":"Request timeout in seconds","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"convert":{"type":"bool","kind":"boolean","description":"Whether to convert known response content types to lambda","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false","role":"Option","projection":"Value"},".sse":{"type":"lambda","kind":"sse-callback","description":"Callback executed once per server-sent event line; receives the line in [.arguments/message]","required":false,"mode":"ExecutableLambda","cardinality":"ZeroOrOne","role":"Callback","evaluation":"EvalBlock","projection":"Self"},"payload":{"type":"object|lambda","kind":"http-request-payload,text","description":"Request payload value or structured payload transformed according to Content-Type","required":false,"mode":"SourceLambda","cardinality":"ZeroOrOne","role":"Payload","evaluation":"UnwrapDescendants","projection":"StructuredTree"},"filename":{"type":"string","kind":"file-path","description":"File path to stream as the request payload","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}},"constraints":[{"description":"Provide exactly one of [payload] or [filename] as the request body source","values":["payload","filename"],"kind":"ExactlyOneOf"}],"output":{"mode":"Both","kind":"http-response","description":"Resolves to the HTTP status code in value and response headers and content as child nodes","children":{"content":{"type":"string|byte[]|lambda","kind":"http-response-content,lambda-tree,text","description":"HTTP response body; text responses are returned as string, binary responses as byte[], and converted known content types as child nodes when [convert] is true","required":false,"mode":"Value","cardinality":"ZeroOrOne","role":"Payload","projection":"Self"},"headers":{"type":"lambda","kind":"http-header-list","description":"HTTP response headers returned by the server","required":false,"mode":"Value","cardinality":"ZeroOrOne","role":"StructuredObject","projection":"StructuredTree","children":{"*":{"type":"string","kind":"http-header-value","description":"HTTP response header value; child name is the header name","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}}}}}},{"name":"hyperlambda.verify-slots","description":"Verifies that all slots referenced in executable statement position of the specified Hyperlambda exist","signature":{"input":{"kind":"hyperlambda","description":"Hyperlambda text to verify; alternatively supply an already parsed lambda as children","required":false,"mode":"ValueOrExpression"},"output":{"mode":"Both","kind":"boolean","element-kind":"text","description":"Resolves to true when every invocation is statically valid; otherwise lists missing slot names and invalid-invocation diagnostics as child nodes"}}},{"name":"image.chart","description":"Renders a bar, stacked, or grouped chart from the supplied series data as a PNG image","signature":{"input":{"kind":"chart-type","description":"Chart type to create, such as bars, stacked, or grouped","required":true,"mode":"ValueOrExpression"},"children":{"width":{"type":"int","description":"Chart width in pixels","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"},"height":{"type":"int","description":"Chart height in pixels","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"},"filename":{"type":"string","kind":"image-file","description":"Optional destination filename","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"bars":{"type":"lambda","description":"Chart values keyed by label; grouped and stacked charts use nested numeric values","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"StructuredObject","projection":"StructuredTree","children":{"*":{"type":"double|lambda","description":"Bar value or grouped/stacked bar value collection","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","role":"DynamicMap","projection":"StructuredTree"}}},"legend":{"type":"lambda","description":"Legend labels required by grouped and stacked charts","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"StructuredObject","projection":"Children","children":[{"type":"string","kind":"chart-legend-label","description":"Legend label","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}]}},"output":{"mode":"Value","kind":"image,binary-content","description":"Resolves to the generated chart image bytes"}}},{"name":"image.convert","description":"Re-encodes an image into a different format (e.g. PNG to JPEG) preserving its pixel content","signature":{"input":{"kind":"image-file","description":"Source image filename or stream to convert","required":true,"mode":"ValueOrExpression"},"children":{"type":{"type":"string","kind":"image-format","description":"Output image format: png, jpeg, bmp, gif, tga, pbm, tiff, or webp","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","default":"png","role":"Option","projection":"Value"},"dest":{"type":"string","kind":"image-file","description":"Optional destination filename; when supplied, the image is saved to disk instead of returned as a stream","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}},"output":{"mode":"Both","kind":"image","description":"Resolves to the converted image stream unless [dest] is supplied, in which case the converted image is saved to disk and nothing is returned"}}},{"name":"image.crop","description":"Cuts a rectangular region out of an image at the given x, y, width, and height","signature":{"input":{"kind":"image-file","description":"Source image filename or stream to crop","required":true,"mode":"ValueOrExpression"},"children":{"type":{"type":"string","kind":"image-format","description":"Output image format: png, jpeg, bmp, gif, tga, pbm, tiff, or webp","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"png","role":"Option","projection":"Value"},"dest":{"type":"string","kind":"image-file","description":"Optional destination filename; when supplied, the image is saved to disk instead of returned as a stream","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"left":{"type":"int","kind":"image-crop-pixels","description":"Pixels to crop from the left edge","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"0","role":"Option","projection":"Value"},"top":{"type":"int","kind":"image-crop-pixels","description":"Pixels to crop from the top edge","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"0","role":"Option","projection":"Value"},"right":{"type":"int","kind":"image-crop-pixels","description":"Pixels to crop from the right edge","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"0","role":"Option","projection":"Value"},"bottom":{"type":"int","kind":"image-crop-pixels","description":"Pixels to crop from the bottom edge","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"0","role":"Option","projection":"Value"}},"output":{"mode":"Both","kind":"image","description":"Resolves to the cropped image stream unless [dest] is supplied, in which case the cropped image is saved to disk and nothing is returned"}}},{"name":"image.generate-qr","description":"Renders the supplied text or URL into a PNG QR code; commonly used for links and payment codes","signature":{"input":{"kind":"qr-content,url,text","description":"Text or URL to encode in the QR code","required":true,"mode":"ValueOrExpression"},"children":{"size":{"type":"int","description":"QR module size","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"4","role":"Option","projection":"Value"}},"output":{"mode":"Value","kind":"image,binary-content","description":"Resolves to the generated QR code image bytes"}}},{"name":"image.resize","description":"Resizes an image to the specified width and height; useful for generating thumbnails or fitting screen sizes","signature":{"input":{"kind":"image-file","description":"Source image filename or stream to resize","required":true,"mode":"ValueOrExpression"},"children":{"type":{"type":"string","kind":"image-format","description":"Output image format: png, jpeg, bmp, gif, tga, pbm, tiff, or webp","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"png","role":"Option","projection":"Value"},"dest":{"type":"string","kind":"image-file","description":"Optional destination filename; when supplied, the image is saved to disk instead of returned as a stream","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"width":{"type":"int","kind":"image-dimensions","description":"Target width in pixels","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"height":{"type":"int","kind":"image-dimensions","description":"Target height in pixels","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}},"output":{"mode":"Both","kind":"image","description":"Resolves to the resized image stream unless [dest] is supplied, in which case the resized image is saved to disk and nothing is returned"}}},{"name":"image.size","description":"Returns the width and height of an image","signature":{"input":{"kind":"image-file","description":"Image filename to inspect","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Lambda","kind":"image-dimensions,lambda-tree","description":"Returns [width:int] and [height:int] child nodes for the image dimensions"}}},{"name":"io.content.zip-stream","description":"Builds an in-memory zip stream from child entries; useful for returning an archive over HTTP without writing to disk","signature":{"children":{"*":{"type":"string","kind":"zip-entry-path","description":"ZIP entry path","required":true,"mode":"ExecutableLambda","cardinality":"OneOrMore","children":{"*":{"type":"string|byte[]","kind":"zip-entry-content","description":"Entry content","required":true,"mode":"ExecutableLambda","cardinality":"ExactlyOne"}}}},"output":{"mode":"Value","kind":"zip-stream","description":"Resolves to a zip stream containing the supplied entries"}}},{"name":"io.file.copy","description":"Copies a file on the server","signature":{"input":{"kind":"file-path","description":"Source file path","required":true,"mode":"ValueOrExpression"},"children":{"*":{"type":"string","kind":"file-path","description":"Destination path","required":true,"mode":"ExecutableLambda","cardinality":"ExactlyOne"}}}},{"name":"io.file.delete","description":"Deletes a file on the server","signature":{"input":{"kind":"file-path","description":"File path to delete","required":true,"mode":"ValueOrExpression"}}},{"name":"io.file.execute","description":"Loads a Hyperlambda file and evaluates it as if it were inlined; child nodes become its [.arguments]","signature":{"input":{"kind":"hyperlambda-file","description":"File path to execute","required":true,"mode":"ValueOrExpression"},"children":{"*":{"type":"object","kind":"value","description":"Named argument passed to the executed file as a child of [.arguments]","required":false,"mode":"Arguments","cardinality":"ZeroOrMore","role":"Arguments","projection":"ArgumentBag"}},"output":{"mode":"Both","kind":"lambda-result","description":"Resolves to the executed file's value result and any returned child nodes","children":{"*":{"type":"lambda","kind":"hyperlambda-result-node","description":"Returned child node produced by the executed Hyperlambda file","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"Payload","projection":"Self"}}}}},{"name":"io.file.exists","description":"Returns true if a file exists","signature":{"input":{"kind":"file-path","description":"File path to test","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Value","kind":"boolean","description":"Returns true if the file exists"}}},{"name":"io.file.list","description":"Lists files in the specified folder","signature":{"input":{"kind":"folder-path","description":"Folder path to list files from","required":true,"mode":"ValueOrExpression"},"children":{"display-hidden":{"type":"bool","kind":"boolean","description":"Whether hidden files or folders should be included","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false"},"display-system":{"type":"bool","kind":"boolean","description":"Whether system folders such as /system/, /misc/, /data/, and /config/ should be included","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"true"}},"output":{"mode":"Lambda","kind":"file-path-list,string-list","element-kind":"file-path,text","description":"Returns one unnamed child node per relative file path"}}},{"name":"io.file.list-recursively","description":"Lists files recursively in the specified folder","signature":{"input":{"kind":"folder-path","description":"Folder path to list files from","required":true,"mode":"ValueOrExpression"},"children":{"display-hidden":{"type":"bool","kind":"boolean","description":"Whether hidden files or folders should be included","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false"},"display-system":{"type":"bool","kind":"boolean","description":"Whether system folders such as /system/, /misc/, /data/, and /config/ should be included","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"true"}},"output":{"mode":"Lambda","kind":"file-path-list,string-list","element-kind":"file-path,text","description":"Returns one unnamed child node per relative file path, recursively"}}},{"name":"io.file.load","description":"Loads a text file from the server","signature":{"input":{"kind":"file-path","description":"File path to load","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Value","kind":"text-file-content,text","description":"Resolves to the loaded file content"}}},{"name":"io.file.load-recursively","description":"Loads files recursively from the specified folder","signature":{"input":{"kind":"folder-path","description":"Folder path to load from","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Lambda","kind":"loaded-file-list,node-list","element-kind":"loaded-file,lambda-tree","description":"Returns one unnamed child node per loaded file; each entry has a [name] child (relative file path) and a [content] child (file content as string)","children":[{"type":"lambda","kind":"loaded-file","description":"One loaded file entry; access fields via the [name] and [content] children","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"StructuredObject","projection":"StructuredTree","children":{"name":{"type":"string","kind":"file-path","description":"Relative file path of the loaded file","required":true,"mode":"Value","cardinality":"ExactlyOne","role":"Option","projection":"Value"},"content":{"type":"string","kind":"text-file-content","description":"Loaded file content as text","required":true,"mode":"Value","cardinality":"ExactlyOne","role":"Payload","projection":"Value"}}}]}}},{"name":"io.file.load.binary","description":"Loads a binary file from the server","signature":{"input":{"kind":"binary-file","description":"File path to load","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Value","kind":"binary-file-content,binary-content,fingerprint-source","description":"Resolves to the loaded binary file bytes"}}},{"name":"io.file.mixin","description":"Loads a static file, applies same-named Hyperlambda codebehind, and returns the mixed result","signature":{"input":{"kind":"file-path","description":"Path to the static file to mix with its same-named .hl codebehind file","required":true,"mode":"ValueOrExpression"},"children":{"*":{"type":"object","kind":"value","description":"Optional argument available to codebehind lambda loaded for the mixed file","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Arguments","projection":"ArgumentBag"}},"output":{"mode":"Both","kind":"mixed-file-content,text","description":"Resolves to the mixed file content in value and any codebehind-produced child nodes"}}},{"name":"io.file.move","description":"Moves a file on the server","signature":{"input":{"kind":"file-path","description":"Source file path","required":true,"mode":"ValueOrExpression"},"children":{"*":{"type":"string","kind":"file-path","description":"Destination path","required":true,"mode":"ExecutableLambda","cardinality":"ExactlyOne"}}}},{"name":"io.file.patch","description":"Applies a unified-diff patch to a file on disk; useful for surgical edits or replaying generated diffs","signature":{"input":{"kind":"file-path","description":"File path to patch","required":true,"mode":"ValueOrExpression"},"children":{"*":{"type":"string","kind":"unified-diff","description":"Unified diff patch content to apply","required":true,"mode":"ExecutableLambda","cardinality":"ExactlyOne"}}}},{"name":"io.file.save","description":"Saves a text file to the server","signature":{"input":{"kind":"file-path","description":"File path to save","required":true,"mode":"ValueOrExpression"},"children":{"*":{"type":"string","kind":"text-file-content,text","description":"Child node yielding the text content to save","required":true,"mode":"ExecutableLambda","cardinality":"ExactlyOne"}}}},{"name":"io.file.save.binary","description":"Saves a binary file to the server","signature":{"input":{"kind":"binary-file","description":"File path to save","required":true,"mode":"ValueOrExpression"},"children":{"*":{"type":"byte[]","kind":"binary-file-content","description":"Child node yielding the binary content to save","required":true,"mode":"ExecutableLambda","cardinality":"ExactlyOne"}}}},{"name":"io.file.search","description":"Searches for files on the server","signature":{"input":{"kind":"folder-path","description":"Folder path to search from","required":true,"mode":"ValueOrExpression"},"children":{"pattern":{"type":"string","kind":"search-pattern","description":"Text or regular expression pattern to search for","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne"},"regex":{"type":"bool","kind":"search-regex-mode","description":"Whether [pattern] should be interpreted as a regular expression","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false"},"case-sensitive":{"type":"bool","kind":"boolean","description":"Whether matching should be case-sensitive","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false"},"extensions":{"type":"string","kind":"text-file-extension-list","description":"Optional comma-separated file extensions to include","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne"}},"output":{"mode":"Lambda","kind":"file-search-result-list,node-list","element-kind":"file-search-result,lambda-tree","description":"Returns one child node per matching file, each containing [file] with the relative file path and [lines] with matching line numbers","children":[{"type":"lambda","kind":"file-search-result","description":"Search result object for one matching file","required":false,"mode":"None","cardinality":"ZeroOrMore","role":"StructuredObject","projection":"StructuredTree","children":{"file":{"type":"string","kind":"file-path","description":"Relative path to the matching file","required":true,"mode":"Value","cardinality":"ExactlyOne","role":"Option","projection":"Value"},"lines":{"type":"lambda","kind":"line-number-list","description":"Line numbers containing matches in the file","required":true,"mode":"None","cardinality":"ExactlyOne","role":"StructuredObject","projection":"Children","children":[{"type":"int","kind":"line-number","description":"One matching line number","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}]}}}]}}},{"name":"io.file.unzip","description":"Extracts a zip archive on the server","signature":{"input":{"kind":"zip-file","description":"Zip archive path to extract","required":true,"mode":"ValueOrExpression"},"children":{"folder":{"type":"string","kind":"folder-path","description":"Destination folder; defaults to the zip file's folder","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne"},"overwrite":{"type":"bool","kind":"boolean","description":"Whether existing extracted files should be overwritten","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false"}}}},{"name":"io.folder.copy","description":"Copies a folder on the server","signature":{"input":{"kind":"folder-path","description":"Source folder path","required":true,"mode":"ValueOrExpression"},"children":{"*":{"type":"string","kind":"folder-path","description":"Destination path","required":true,"mode":"ExecutableLambda","cardinality":"ExactlyOne"}}}},{"name":"io.folder.create","description":"Creates a folder on the server","signature":{"input":{"kind":"folder-path","description":"Folder path to create","required":true,"mode":"ValueOrExpression"}}},{"name":"io.folder.delete","description":"Deletes a folder on the server","signature":{"input":{"kind":"folder-path","description":"Folder path to delete","required":true,"mode":"ValueOrExpression"}}},{"name":"io.folder.exists","description":"Returns true if a folder exists","signature":{"input":{"kind":"folder-path","description":"Folder path to test","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Value","kind":"boolean","description":"Returns true if the folder exists"}}},{"name":"io.folder.list","description":"Lists folders in the specified folder","signature":{"input":{"kind":"folder-path","description":"Folder path to list subfolders from","required":true,"mode":"ValueOrExpression"},"children":{"display-hidden":{"type":"bool","kind":"boolean","description":"Whether hidden files or folders should be included","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false"},"display-system":{"type":"bool","kind":"boolean","description":"Whether system folders such as /system/, /misc/, /data/, and /config/ should be included","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"true"}},"output":{"mode":"Lambda","kind":"folder-path-list,string-list","element-kind":"folder-path,text","description":"Returns one unnamed child node per relative folder path"}}},{"name":"io.folder.list-recursively","description":"Lists folders recursively in the specified folder","signature":{"input":{"kind":"folder-path","description":"Folder path to list subfolders from","required":true,"mode":"ValueOrExpression"},"children":{"display-hidden":{"type":"bool","kind":"boolean","description":"Whether hidden files or folders should be included","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false"},"display-system":{"type":"bool","kind":"boolean","description":"Whether system folders such as /system/, /misc/, /data/, and /config/ should be included","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"true"}},"output":{"mode":"Lambda","kind":"folder-path-list,string-list","element-kind":"folder-path,text","description":"Returns one unnamed child node per relative folder path, recursively"}}},{"name":"io.folder.move","description":"Moves a folder on the server","signature":{"input":{"kind":"folder-path","description":"Source folder path","required":true,"mode":"ValueOrExpression"},"children":{"*":{"type":"string","kind":"folder-path","description":"Destination path","required":true,"mode":"ExecutableLambda","cardinality":"ExactlyOne"}}}},{"name":"io.path.get-folder","description":"Strips the filename from a path and returns just its folder portion (e.g. '/foo/bar/baz.txt' becomes '/foo/bar/')","signature":{"input":{"kind":"file-path","description":"Path to inspect","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Value","kind":"folder-path,text","description":"Resolves to the folder portion of the supplied path"}}},{"name":"io.stream.close","description":"Closes and disposes a stream previously opened by [io.stream.open-file] or similar; always call to release the file handle","signature":{"input":{"kind":"stream","description":"Stream instance to close","required":true,"mode":"Expression"}}},{"name":"io.stream.open-file","description":"Opens a file as a read-only stream so large files can be processed without loading them into memory; close with [io.stream.close]","signature":{"input":{"kind":"file-path","description":"File path to open as a stream","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Value","kind":"stream","description":"Resolves to an open file stream"}}},{"name":"io.stream.read","description":"Reads from an open stream","signature":{"input":{"kind":"stream","description":"Stream instance to read from","required":true,"mode":"Expression"},"output":{"mode":"Value","kind":"binary-content,fingerprint-source","description":"Resolves to the bytes read from the stream"}}},{"name":"io.stream.save-file","description":"Writes a stream's contents to disk under the given path; commonly used after uploads or [http.get] downloads","signature":{"input":{"kind":"file-path","description":"File path to save the stream to","required":true,"mode":"ValueOrExpression"},"children":{"overwrite":{"type":"bool","kind":"boolean","description":"Whether an existing file should be overwritten","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"true"},"*":{"type":"Stream","kind":"stream","description":"Child node yielding the stream to save","required":true,"mode":"ExecutableLambda","cardinality":"ExactlyOne"}}}},{"name":"log.capabilities","description":"Returns capabilities of the current log provider","signature":{"output":{"mode":"Lambda","kind":"log-capabilities,lambda-tree","description":"Returns [can-filter] and [can-timeshift] capability nodes for the current log provider"}}},{"name":"log.count","description":"Returns the total number of log entries, optionally restricted to a single content type","signature":{"input":{"kind":"content-type","description":"Optional content type filter","required":false,"mode":"ValueOrExpression"},"output":{"mode":"Value","kind":"integer,number","description":"Resolves to the number of log entries matching the optional query"}}},{"name":"log.debug","description":"Writes a debug-level log entry; useful during development for high-volume diagnostic detail","signature":{"input":{"kind":"log-message,text","description":"Log message to write","required":true,"mode":"ValueOrExpression"},"children":{"*":{"type":"string","kind":"log-metadata","description":"Metadata entry stored with the log item when the slot has an input value; otherwise evaluated content fragment","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"DynamicMap","evaluation":"EvalSelf","projection":"Value"}},"output":{"mode":"Value","kind":"log-entry-id","description":"Id of the log entry created, or null if the configured log level filtered it out"}}},{"name":"log.error","description":"Writes an error-level log entry; use for caught exceptions or failed operations that need follow-up","signature":{"input":{"kind":"log-message,text","description":"Log message to write","required":true,"mode":"ValueOrExpression"},"children":{"*":{"type":"string","kind":"log-metadata","description":"Metadata entry stored with the log item when the slot has an input value; otherwise evaluated content fragment","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"DynamicMap","evaluation":"EvalSelf","projection":"Value"},"exception":{"type":"string","kind":"exception-text","description":"Exception text attached to error and fatal log entries","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}},"output":{"mode":"Value","kind":"log-entry-id","description":"Id of the log entry created, or null if the configured log level filtered it out"}}},{"name":"log.fatal","description":"Writes a fatal-level log entry; reserve for unrecoverable failures that warrant immediate attention","signature":{"input":{"kind":"log-message,text","description":"Log message to write","required":true,"mode":"ValueOrExpression"},"children":{"*":{"type":"string","kind":"log-metadata","description":"Metadata entry stored with the log item when the slot has an input value; otherwise evaluated content fragment","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"DynamicMap","evaluation":"EvalSelf","projection":"Value"},"exception":{"type":"string","kind":"exception-text","description":"Exception text attached to error and fatal log entries","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}},"output":{"mode":"Value","kind":"log-entry-id","description":"Id of the log entry created, or null if the configured log level filtered it out"}}},{"name":"log.get","description":"Returns a log entry by ID","signature":{"input":{"kind":"log-entry-id,integer,number","description":"ID of the log entry to retrieve","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Lambda","kind":"log-entry,lambda-tree","description":"Resolves to the log entry as child nodes"}}},{"name":"log.info","description":"Writes an informational log entry capturing routine, non-error events of interest","signature":{"input":{"kind":"log-message,text","description":"Log message to write","required":true,"mode":"ValueOrExpression"},"children":{"*":{"type":"string","kind":"log-metadata","description":"Metadata entry stored with the log item when the slot has an input value; otherwise evaluated content fragment","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"DynamicMap","evaluation":"EvalSelf","projection":"Value"}},"output":{"mode":"Value","kind":"log-entry-id","description":"Id of the log entry created, or null if the configured log level filtered it out"}}},{"name":"log.query","description":"Returns recent log entries with most-recent-first ordering; supports optional content-type filtering and pagination","signature":{"input":{"kind":"content-type","description":"Optional content type filter","required":false,"mode":"ValueOrExpression"},"children":{"max":{"type":"int","description":"Maximum number of log entries to return","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"10","role":"Option","projection":"Value"},"from":{"type":"object","description":"Cursor or timestamp to query from","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}},"output":{"mode":"Lambda","kind":"log-entry-list,node-list","element-kind":"log-entry,lambda-tree","description":"Returns matching log entries as child nodes"}}},{"name":"log.timeshift","description":"Aggregates log entries into time buckets","signature":{"input":{"kind":"log-search","description":"Search string or log entry type to aggregate over the last two weeks","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Lambda","kind":"log-timeshift-list,node-list","element-kind":"log-timeshift-bucket","description":"Returns one child node per day with [when] and [count] values for the time bucket"}}},{"name":"mail.pop3.fetch","description":"Fetches messages from a POP3 mailbox using child-node options and a required [.lambda] callback","signature":{"children":{"raw":{"type":"bool","description":"Whether to pass raw MIME text to the callback","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"max":{"type":"int","description":"Maximum number of messages to fetch","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},".lambda":{"type":"lambda","description":"Callback evaluated once per fetched message with [.message] injected","required":true,"mode":"ExecutableLambda","cardinality":"ExactlyOne","role":"Callback","evaluation":"EvalBlock","projection":"Self"}}}},{"name":"mail.smtp.send","description":"Sends one or more email messages through SMTP from child [message] nodes","signature":{"children":{"message":{"type":"lambda","kind":"mail-message","description":"Email message to send","required":true,"mode":"StructuredArguments","cardinality":"OneOrMore","role":"StructuredObject","projection":"StructuredTree","children":{"subject":{"type":"string","kind":"mail-subject,text","description":"Message subject","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"to":{"type":"lambda","kind":"mail-address-list","description":"Email address collection","required":true,"mode":"StructuredArguments","cardinality":"ExactlyOne","role":"StructuredObject","projection":"Children","children":[{"type":"lambda","kind":"mail-address","description":"Structured address containing [email] and optional [name]","required":true,"mode":"StructuredArguments","cardinality":"OneOrMore","role":"StructuredObject","projection":"StructuredTree","children":{"name":{"type":"string","kind":"display-name,text","description":"Display name","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"email":{"type":"string","kind":"email","description":"Email address","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"}}}]},"from":{"type":"lambda","kind":"mail-address-list","description":"Email address collection","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","role":"StructuredObject","projection":"Children","children":[{"type":"lambda","kind":"mail-address","description":"Structured address containing [email] and optional [name]","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","role":"StructuredObject","projection":"StructuredTree","children":{"name":{"type":"string","kind":"display-name,text","description":"Display name","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"email":{"type":"string","kind":"email","description":"Email address","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"}}}]},"cc":{"type":"lambda","kind":"mail-address-list","description":"Email address collection","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","role":"StructuredObject","projection":"Children","children":[{"type":"lambda","kind":"mail-address","description":"Structured address containing [email] and optional [name]","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","role":"StructuredObject","projection":"StructuredTree","children":{"name":{"type":"string","kind":"display-name,text","description":"Display name","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"email":{"type":"string","kind":"email","description":"Email address","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"}}}]},"bcc":{"type":"lambda","kind":"mail-address-list","description":"Email address collection","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","role":"StructuredObject","projection":"Children","children":[{"type":"lambda","kind":"mail-address","description":"Structured address containing [email] and optional [name]","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","role":"StructuredObject","projection":"StructuredTree","children":{"name":{"type":"string","kind":"display-name,text","description":"Display name","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"email":{"type":"string","kind":"email","description":"Email address","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"}}}]},"reply-to":{"type":"lambda","kind":"mail-address-list","description":"Email address collection","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","role":"StructuredObject","projection":"Children","children":[{"type":"lambda","kind":"mail-address","description":"Structured address containing [email] and optional [name]","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","role":"StructuredObject","projection":"StructuredTree","children":{"name":{"type":"string","kind":"display-name,text","description":"Display name","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"email":{"type":"string","kind":"email","description":"Email address","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"}}}]},"entity":{"type":"string","kind":"content-type","description":"MIME entity declaration for the message body; node value is the MIME content type","required":true,"mode":"Value","cardinality":"ExactlyOne","role":"Payload","evaluation":"UnwrapDescendants","projection":"StructuredTree","constraints":[{"description":"Binary MIME parts cannot carry inline [content] — reference the bytes via [filename]","value-pattern":"^(image/|video/|audio/|application/(octet-stream|pdf|zip|gzip|x-tar|x-bzip2|x-7z-compressed|vnd\\.ms-excel|vnd\\.openxmlformats-officedocument))","values":["content"],"kind":"Excludes"},{"description":"Leaf MIME parts must not contain nested [entity] children","value-pattern":"^(?!multipart/).+/.+$","values":["entity"],"kind":"Excludes"},{"description":"Leaf MIME parts require either [content] or [filename]","value-pattern":"^(?!multipart/).+/.+$","values":["content","filename"],"kind":"ExactlyOneOf"},{"description":"Multipart MIME parts must not contain [content] or [filename]","value-pattern":"^multipart/.+$","values":["content","filename"],"kind":"Excludes"},{"description":"Multipart MIME parts require two or more [entity] children","value-pattern":"^multipart/.+$","values":["entity"],"kind":"AtLeastOneOf"}],"children":{"headers":{"type":"lambda","kind":"mime-header-list","description":"MIME headers","required":false,"mode":"DynamicNamedValues","cardinality":"ZeroOrOne","role":"DynamicMap","projection":"StructuredTree","children":{"*":{"type":"string","kind":"mime-header-value","description":"Header name and value","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}},"content":{"type":"string","kind":"mime-content,mime-entity-source,text","description":"Inline MIME part content","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"filename":{"type":"string","kind":"file-path,mime-entity-source,mime-entity-filename-source","description":"File path to use as MIME part content","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"entity":{"type":"string","kind":"content-type","description":"Nested MIME entity content type; same leaf-vs-multipart shape as the parent [mime.create] value","required":true,"mode":"Value","cardinality":"TwoOrMore","role":"StructuredObject","projection":"StructuredTree","constraints":[{"description":"Binary MIME parts cannot carry inline [content] — reference the bytes via [filename]","value-pattern":"^(image/|video/|audio/|application/(octet-stream|pdf|zip|gzip|x-tar|x-bzip2|x-7z-compressed|vnd\\.ms-excel|vnd\\.openxmlformats-officedocument))","values":["content"],"kind":"Excludes"},{"description":"Leaf MIME parts must not contain nested [entity] children","value-pattern":"^(?!multipart/).+/.+$","values":["entity"],"kind":"Excludes"},{"description":"Leaf MIME parts require either [content] or [filename]","value-pattern":"^(?!multipart/).+/.+$","values":["content","filename"],"kind":"ExactlyOneOf"},{"description":"Multipart MIME parts must not contain [content] or [filename]","value-pattern":"^multipart/.+$","values":["content","filename"],"kind":"Excludes"},{"description":"Multipart MIME parts require two or more [entity] children","value-pattern":"^multipart/.+$","values":["entity"],"kind":"AtLeastOneOf"}],"children":{"headers":{"type":"lambda","kind":"mime-header-list","description":"MIME headers","required":false,"mode":"DynamicNamedValues","cardinality":"ZeroOrOne","role":"DynamicMap","projection":"StructuredTree","children":{"*":{"type":"string","kind":"mime-header-value","description":"Header name and value","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}},"content":{"type":"string","kind":"mime-content,mime-entity-source,text","description":"Inline MIME part content","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"filename":{"type":"string","kind":"file-path,mime-entity-source,mime-entity-filename-source","description":"File path to use as MIME part content","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"entity":{"type":"string","kind":"mime-content-types-leaf","description":"Innermost MIME leaf entity content type; must be a leaf type because no further [entity] nesting is permitted here","required":true,"mode":"Value","cardinality":"TwoOrMore","role":"StructuredObject","projection":"StructuredTree","constraints":[{"description":"Binary MIME parts cannot carry inline [content] — reference the bytes via [filename]","value-pattern":"^(image/|video/|audio/|application/(octet-stream|pdf|zip|gzip|x-tar|x-bzip2|x-7z-compressed|vnd\\.ms-excel|vnd\\.openxmlformats-officedocument))","values":["content"],"kind":"Excludes"},{"description":"Leaf MIME parts must not contain nested [entity] children","value-pattern":"^(?!multipart/).+/.+$","values":["entity"],"kind":"Excludes"},{"description":"Leaf MIME parts require either [content] or [filename]","value-pattern":"^(?!multipart/).+/.+$","values":["content","filename"],"kind":"ExactlyOneOf"},{"description":"Multipart MIME parts must not contain [content] or [filename]","value-pattern":"^multipart/.+$","values":["content","filename"],"kind":"Excludes"},{"description":"Multipart MIME parts require two or more [entity] children","value-pattern":"^multipart/.+$","values":["entity"],"kind":"AtLeastOneOf"}],"children":{"headers":{"type":"lambda","kind":"mime-header-list","description":"MIME headers","required":false,"mode":"DynamicNamedValues","cardinality":"ZeroOrOne","role":"DynamicMap","projection":"StructuredTree","children":{"*":{"type":"string","kind":"mime-header-value","description":"Header name and value","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}},"content":{"type":"string","kind":"mime-content,mime-entity-source,text","description":"Inline MIME part content","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"filename":{"type":"string","kind":"file-path,mime-entity-source,mime-entity-filename-source","description":"File path to use as MIME part content","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}}}}}}}}}}}},{"name":"math.abs","description":"Returns the absolute value","signature":{"input":{"kind":"number","description":"Numeric value to transform","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Value","kind":"number","description":"Resolves to the absolute value"}}},{"name":"math.add","description":"Adds numeric values","signature":{"children":{"*":{"type":"number","kind":"number","description":"Numeric operand evaluated before calculating the result","required":true,"mode":"ExecutableLambda","cardinality":"TwoOrMore","role":"OperandPaired","evaluation":"EvalSelf","projection":"Value"}},"output":{"mode":"Value","kind":"number","description":"Resolves to the sum of the supplied operands"}}},{"name":"math.ceil","description":"Rounds a number up","signature":{"input":{"kind":"number","description":"Numeric value to round","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Value","kind":"number","description":"Resolves to the rounded-up value"}}},{"name":"math.cos","description":"Calculates the cosine of the specified value","signature":{"input":{"kind":"number","description":"Numeric value to transform","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Value","kind":"number","description":"Resolves to the cosine of the supplied angle"}}},{"name":"math.decrement","description":"Decrements the numeric nodes selected by the input expression","signature":{"input":{"kind":"numeric-node","description":"Expression selecting the numeric node or nodes to decrement","required":true,"mode":"Expression"},"children":{"step":{"type":"number","description":"Amount to add to or subtract from each selected node","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"1","role":"Option","projection":"Value"}}}},{"name":"math.divide","description":"Divides numeric values","signature":{"children":{"*":{"type":"number","kind":"number","description":"Numeric operand evaluated before calculating the result","required":true,"mode":"ExecutableLambda","cardinality":"TwoOrMore","role":"OperandPaired","evaluation":"EvalSelf","projection":"Value"}},"output":{"mode":"Value","kind":"number","description":"Resolves to the quotient of the supplied operands"}}},{"name":"math.dot","description":"Calculates the dot product of two vectors from child nodes","signature":{"children":{"*":{"type":"lambda","description":"Vector operand evaluated before calculating the dot product","required":true,"mode":"ExecutableLambda","cardinality":"ExactlyTwo","role":"OperandPaired","evaluation":"EvalSelf","projection":"Children"}},"output":{"mode":"Value","kind":"number","description":"Resolves to the dot product of the two supplied vectors"}}},{"name":"math.floor","description":"Rounds a number down","signature":{"input":{"kind":"number","description":"Numeric value to round","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Value","kind":"number","description":"Resolves to the rounded-down value"}}},{"name":"math.increment","description":"Increments the numeric nodes selected by the input expression","signature":{"input":{"kind":"numeric-node","description":"Expression selecting the numeric node or nodes to increment","required":true,"mode":"Expression"},"children":{"step":{"type":"number","description":"Amount to add to or subtract from each selected node","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"1","role":"Option","projection":"Value"}}}},{"name":"math.max","description":"Returns the largest value from the supplied inputs","signature":{"children":{"*":{"type":"number","kind":"number","description":"Numeric operand evaluated before calculating the result","required":true,"mode":"ExecutableLambda","cardinality":"TwoOrMore","role":"OperandPaired","evaluation":"EvalSelf","projection":"Value"}},"output":{"mode":"Value","kind":"number","description":"Resolves to the largest supplied value"}}},{"name":"math.min","description":"Returns the smallest value from the supplied inputs","signature":{"children":{"*":{"type":"number","kind":"number","description":"Numeric operand evaluated before calculating the result","required":true,"mode":"ExecutableLambda","cardinality":"TwoOrMore","role":"OperandPaired","evaluation":"EvalSelf","projection":"Value"}},"output":{"mode":"Value","kind":"number","description":"Resolves to the smallest supplied value"}}},{"name":"math.modulo","description":"Calculates the remainder of a division","signature":{"children":{"*":{"type":"number","kind":"number","description":"Numeric operand evaluated before calculating the result","required":true,"mode":"ExecutableLambda","cardinality":"TwoOrMore","role":"OperandPaired","evaluation":"EvalSelf","projection":"Value"}},"output":{"mode":"Value","kind":"number","description":"Resolves to the remainder of the modulo operation"}}},{"name":"math.multiply","description":"Multiplies numeric values","signature":{"children":{"*":{"type":"number","kind":"number","description":"Numeric operand evaluated before calculating the result","required":true,"mode":"ExecutableLambda","cardinality":"TwoOrMore","role":"OperandPaired","evaluation":"EvalSelf","projection":"Value"}},"output":{"mode":"Value","kind":"number","description":"Resolves to the product of the supplied operands"}}},{"name":"math.random","description":"Returns a random number from optional child-node bounds","signature":{"children":{"min":{"type":"int","kind":"validator-min-integer","description":"Inclusive lower bound; requires [max] and must appear before it","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"max":{"type":"int","kind":"validator-max-integer","description":"Exclusive upper bound; when supplied without [min], the lower bound is 0","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}},"constraints":[{"target":"min","description":"[min] requires [max]","values":["max"],"kind":"Requires"}],"output":{"mode":"Value","kind":"number","description":"Resolves to a random double, or a random integer when bounds are supplied"}}},{"name":"math.round","description":"Rounds a number","signature":{"input":{"kind":"number","description":"Numeric value to round","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Value","kind":"number","description":"Resolves to the rounded value"}}},{"name":"math.sin","description":"Calculates the sine of the specified value","signature":{"input":{"kind":"number","description":"Numeric value to transform","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Value","kind":"number","description":"Resolves to the sine of the supplied angle"}}},{"name":"math.sqrt","description":"Calculates the square root of the specified value","signature":{"input":{"kind":"number","description":"Numeric value to transform","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Value","kind":"number","description":"Resolves to the square root of the supplied value"}}},{"name":"math.subtract","description":"Subtracts numeric values","signature":{"children":{"*":{"type":"number","kind":"number","description":"Numeric operand evaluated before calculating the result","required":true,"mode":"ExecutableLambda","cardinality":"TwoOrMore","role":"OperandPaired","evaluation":"EvalSelf","projection":"Value"}},"output":{"mode":"Value","kind":"number","description":"Resolves to the difference of the supplied operands"}}},{"name":"mime.add","description":"Associates a file extension with a MIME content-type so the server returns the correct Content-Type header for matching responses","signature":{"input":{"kind":"content-type","description":"File extension or MIME type key to register","required":true,"mode":"ValueOrExpression"},"children":[{"type":"string","kind":"mime-type","description":"MIME type value for the extension/key","required":true,"mode":"ExecutableLambda","cardinality":"ExactlyOne","role":"SourceExpression","evaluation":"EvalSelf","projection":"Value"}]}},{"name":"mime.create","description":"Builds a MIME message from headers and child [entity] nodes; useful for sending email or composing multipart payloads","signature":{"input":{"kind":"content-type","description":"Primary MIME content type","required":true,"mode":"Value"},"children":{"structured":{"type":"bool","description":"When true returns the MIME tree as [headers] and [content] children; when false (default) returns the serialized MIME message text in the slot value","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false","role":"Option","projection":"Value"},"headers":{"type":"lambda","kind":"mime-header-list","description":"MIME headers","required":false,"mode":"DynamicNamedValues","cardinality":"ZeroOrOne","role":"DynamicMap","projection":"StructuredTree","children":{"*":{"type":"string","kind":"mime-header-value","description":"Header name and value","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}},"content":{"type":"string","kind":"mime-content,mime-entity-source,text","description":"Inline MIME part content","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"filename":{"type":"string","kind":"file-path,mime-entity-source,mime-entity-filename-source","description":"File path to use as MIME part content","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"entity":{"type":"string","kind":"content-type","description":"Nested MIME entity content type; same leaf-vs-multipart shape as the parent [mime.create] value","required":true,"mode":"Value","cardinality":"TwoOrMore","role":"StructuredObject","projection":"StructuredTree","constraints":[{"description":"Binary MIME parts cannot carry inline [content] — reference the bytes via [filename]","value-pattern":"^(image/|video/|audio/|application/(octet-stream|pdf|zip|gzip|x-tar|x-bzip2|x-7z-compressed|vnd\\.ms-excel|vnd\\.openxmlformats-officedocument))","values":["content"],"kind":"Excludes"},{"description":"Leaf MIME parts must not contain nested [entity] children","value-pattern":"^(?!multipart/).+/.+$","values":["entity"],"kind":"Excludes"},{"description":"Leaf MIME parts require either [content] or [filename]","value-pattern":"^(?!multipart/).+/.+$","values":["content","filename"],"kind":"ExactlyOneOf"},{"description":"Multipart MIME parts must not contain [content] or [filename]","value-pattern":"^multipart/.+$","values":["content","filename"],"kind":"Excludes"},{"description":"Multipart MIME parts require two or more [entity] children","value-pattern":"^multipart/.+$","values":["entity"],"kind":"AtLeastOneOf"}],"children":{"headers":{"type":"lambda","kind":"mime-header-list","description":"MIME headers","required":false,"mode":"DynamicNamedValues","cardinality":"ZeroOrOne","role":"DynamicMap","projection":"StructuredTree","children":{"*":{"type":"string","kind":"mime-header-value","description":"Header name and value","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}},"content":{"type":"string","kind":"mime-content,mime-entity-source,text","description":"Inline MIME part content","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"filename":{"type":"string","kind":"file-path,mime-entity-source,mime-entity-filename-source","description":"File path to use as MIME part content","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"entity":{"type":"string","kind":"content-type","description":"Nested MIME entity content type; same leaf-vs-multipart shape as the parent [mime.create] value","required":true,"mode":"Value","cardinality":"TwoOrMore","role":"StructuredObject","projection":"StructuredTree","constraints":[{"description":"Binary MIME parts cannot carry inline [content] — reference the bytes via [filename]","value-pattern":"^(image/|video/|audio/|application/(octet-stream|pdf|zip|gzip|x-tar|x-bzip2|x-7z-compressed|vnd\\.ms-excel|vnd\\.openxmlformats-officedocument))","values":["content"],"kind":"Excludes"},{"description":"Leaf MIME parts must not contain nested [entity] children","value-pattern":"^(?!multipart/).+/.+$","values":["entity"],"kind":"Excludes"},{"description":"Leaf MIME parts require either [content] or [filename]","value-pattern":"^(?!multipart/).+/.+$","values":["content","filename"],"kind":"ExactlyOneOf"},{"description":"Multipart MIME parts must not contain [content] or [filename]","value-pattern":"^multipart/.+$","values":["content","filename"],"kind":"Excludes"},{"description":"Multipart MIME parts require two or more [entity] children","value-pattern":"^multipart/.+$","values":["entity"],"kind":"AtLeastOneOf"}],"children":{"headers":{"type":"lambda","kind":"mime-header-list","description":"MIME headers","required":false,"mode":"DynamicNamedValues","cardinality":"ZeroOrOne","role":"DynamicMap","projection":"StructuredTree","children":{"*":{"type":"string","kind":"mime-header-value","description":"Header name and value","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}},"content":{"type":"string","kind":"mime-content,mime-entity-source,text","description":"Inline MIME part content","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"filename":{"type":"string","kind":"file-path,mime-entity-source,mime-entity-filename-source","description":"File path to use as MIME part content","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"entity":{"type":"string","kind":"mime-content-types-leaf","description":"Innermost MIME leaf entity content type; must be a leaf type because no further [entity] nesting is permitted here","required":true,"mode":"Value","cardinality":"TwoOrMore","role":"StructuredObject","projection":"StructuredTree","constraints":[{"description":"Binary MIME parts cannot carry inline [content] — reference the bytes via [filename]","value-pattern":"^(image/|video/|audio/|application/(octet-stream|pdf|zip|gzip|x-tar|x-bzip2|x-7z-compressed|vnd\\.ms-excel|vnd\\.openxmlformats-officedocument))","values":["content"],"kind":"Excludes"},{"description":"Leaf MIME parts must not contain nested [entity] children","value-pattern":"^(?!multipart/).+/.+$","values":["entity"],"kind":"Excludes"},{"description":"Leaf MIME parts require either [content] or [filename]","value-pattern":"^(?!multipart/).+/.+$","values":["content","filename"],"kind":"ExactlyOneOf"},{"description":"Multipart MIME parts must not contain [content] or [filename]","value-pattern":"^multipart/.+$","values":["content","filename"],"kind":"Excludes"},{"description":"Multipart MIME parts require two or more [entity] children","value-pattern":"^multipart/.+$","values":["entity"],"kind":"AtLeastOneOf"}],"children":{"headers":{"type":"lambda","kind":"mime-header-list","description":"MIME headers","required":false,"mode":"DynamicNamedValues","cardinality":"ZeroOrOne","role":"DynamicMap","projection":"StructuredTree","children":{"*":{"type":"string","kind":"mime-header-value","description":"Header name and value","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}},"content":{"type":"string","kind":"mime-content,mime-entity-source,text","description":"Inline MIME part content","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"filename":{"type":"string","kind":"file-path,mime-entity-source,mime-entity-filename-source","description":"File path to use as MIME part content","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}}}}}}}},"constraints":[{"description":"Binary MIME parts cannot carry inline [content] — reference the bytes via [filename]","value-pattern":"^(image/|video/|audio/|application/(octet-stream|pdf|zip|gzip|x-tar|x-bzip2|x-7z-compressed|vnd\\.ms-excel|vnd\\.openxmlformats-officedocument))","values":["content"],"kind":"Excludes"},{"description":"Leaf MIME parts must not contain nested [entity] children","value-pattern":"^(?!multipart/).+/.+$","values":["entity"],"kind":"Excludes"},{"description":"Leaf MIME parts require either [content] or [filename]","value-pattern":"^(?!multipart/).+/.+$","values":["content","filename"],"kind":"ExactlyOneOf"},{"description":"Multipart MIME parts must not contain [content] or [filename]","value-pattern":"^multipart/.+$","values":["content","filename"],"kind":"Excludes"},{"description":"Multipart MIME parts require two or more [entity] children","value-pattern":"^multipart/.+$","values":["entity"],"kind":"AtLeastOneOf"}],"output":{"mode":"Both","kind":"mime-message,text","description":"Resolves to the MIME message text in value or, when structured, MIME header and content nodes as children","children":{"headers":{"type":"lambda","kind":"mime-header-list","description":"MIME headers from the parsed entity, excluding Content-Type because the entity content type is returned as the node value","required":false,"mode":"Value","cardinality":"ZeroOrOne","role":"StructuredObject","projection":"StructuredTree","children":{"*":{"type":"string","kind":"mime-header-value","description":"Parsed MIME header value; child name is the header name","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}},"content":{"type":"string|byte[]","kind":"mime-content,binary-content","description":"Decoded MIME part content; text parts return string content and binary parts return byte[] content","required":false,"mode":"Value","cardinality":"ZeroOrOne","role":"Payload","projection":"Value"},"entity":{"type":"string","kind":"content-type","description":"Nested parsed MIME entity; node value is the nested entity content type, and children carry headers, content, and any deeper entities","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"StructuredObject","projection":"StructuredTree","children":{"headers":{"type":"lambda","kind":"mime-header-list","description":"MIME headers from the parsed entity, excluding Content-Type because the entity content type is returned as the node value","required":false,"mode":"Value","cardinality":"ZeroOrOne","role":"StructuredObject","projection":"StructuredTree","children":{"*":{"type":"string","kind":"mime-header-value","description":"Parsed MIME header value; child name is the header name","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}},"content":{"type":"string|byte[]","kind":"mime-content,binary-content","description":"Decoded MIME part content; text parts return string content and binary parts return byte[] content","required":false,"mode":"Value","cardinality":"ZeroOrOne","role":"Payload","projection":"Value"},"entity":{"type":"string","kind":"content-type","description":"Nested parsed MIME entity; node value is the nested entity content type, and children carry headers, content, and any deeper entities","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"StructuredObject","projection":"StructuredTree","children":{"headers":{"type":"lambda","kind":"mime-header-list","description":"MIME headers from the parsed entity, excluding Content-Type because the entity content type is returned as the node value","required":false,"mode":"Value","cardinality":"ZeroOrOne","role":"StructuredObject","projection":"StructuredTree","children":{"*":{"type":"string","kind":"mime-header-value","description":"Parsed MIME header value; child name is the header name","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}},"content":{"type":"string|byte[]","kind":"mime-content,binary-content","description":"Decoded MIME part content; text parts return string content and binary parts return byte[] content","required":false,"mode":"Value","cardinality":"ZeroOrOne","role":"Payload","projection":"Value"}}}}}}}}},{"name":"mime.list","description":"Lists registered MIME type mappings","signature":{"output":{"mode":"Lambda","kind":"mime-type-list,string-list","element-kind":"mime-type-mapping,text","description":"Resolves to one named child node per registered MIME type mapping, where the child name is the file extension and the value is the MIME type"}}},{"name":"mime.parse","description":"Parses a raw MIME message into a lambda tree of headers and body parts; commonly used for email or multipart payloads","signature":{"input":{"kind":"mime-message","description":"Raw MIME message to parse","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Both","kind":"content-type,text","element-kind":"mime-tree-node","description":"Resolves to the parsed MIME entity content type as the node value, and headers, content, and nested entities as child nodes","children":{"headers":{"type":"lambda","kind":"mime-header-list","description":"MIME headers from the parsed entity, excluding Content-Type because the entity content type is returned as the node value","required":false,"mode":"Value","cardinality":"ZeroOrOne","role":"StructuredObject","projection":"StructuredTree","children":{"*":{"type":"string","kind":"mime-header-value","description":"Parsed MIME header value; child name is the header name","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}},"content":{"type":"string|byte[]","kind":"mime-content,binary-content","description":"Decoded MIME part content; text parts return string content and binary parts return byte[] content","required":false,"mode":"Value","cardinality":"ZeroOrOne","role":"Payload","projection":"Value"},"entity":{"type":"string","kind":"content-type","description":"Nested parsed MIME entity; node value is the nested entity content type, and children carry headers, content, and any deeper entities","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"StructuredObject","projection":"StructuredTree","children":{"headers":{"type":"lambda","kind":"mime-header-list","description":"MIME headers from the parsed entity, excluding Content-Type because the entity content type is returned as the node value","required":false,"mode":"Value","cardinality":"ZeroOrOne","role":"StructuredObject","projection":"StructuredTree","children":{"*":{"type":"string","kind":"mime-header-value","description":"Parsed MIME header value; child name is the header name","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}},"content":{"type":"string|byte[]","kind":"mime-content,binary-content","description":"Decoded MIME part content; text parts return string content and binary parts return byte[] content","required":false,"mode":"Value","cardinality":"ZeroOrOne","role":"Payload","projection":"Value"},"entity":{"type":"string","kind":"content-type","description":"Nested parsed MIME entity; node value is the nested entity content type, and children carry headers, content, and any deeper entities","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"StructuredObject","projection":"StructuredTree","children":{"headers":{"type":"lambda","kind":"mime-header-list","description":"MIME headers from the parsed entity, excluding Content-Type because the entity content type is returned as the node value","required":false,"mode":"Value","cardinality":"ZeroOrOne","role":"StructuredObject","projection":"StructuredTree","children":{"*":{"type":"string","kind":"mime-header-value","description":"Parsed MIME header value; child name is the header name","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}},"content":{"type":"string|byte[]","kind":"mime-content,binary-content","description":"Decoded MIME part content; text parts return string content and binary parts return byte[] content","required":false,"mode":"Value","cardinality":"ZeroOrOne","role":"Payload","projection":"Value"}}}}}}}}},{"name":"mssql.connect","description":"Opens a SQL Server connection","signature":{"input":{"kind":"database-name,connection-string","description":"Optional DATABASE_NAME or [CONNECTION_STRING|DATABASE_NAME] override","required":false,"mode":"ValueOrExpression"},"children":{"*":{"type":"lambda","description":"Executable child slot evaluated while the database connection is open","required":false,"mode":"ExecutableLambda","cardinality":"ZeroOrMore","role":"ExecutableBody","evaluation":"EvalSelf","projection":"Self"}},"scope":{"provides":"mssql.connection","description":"Creates an open SQL Server connection scope for mssql.* slots"}}},{"name":"mssql.create","description":"Inserts rows through the current SQL Server connection","signature":{"children":{"generate":{"type":"bool","description":"Whether to only generate SQL and parameter nodes instead of executing it","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false"},"return-id":{"type":"bool","description":"Whether to return the created row ID","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"true"},"table":{"type":"string","kind":"table-name","description":"Table name to use in the SQL statement","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne"},"values":{"type":"lambda","description":"Column values to insert or update","required":true,"mode":"DynamicNamedValues","cardinality":"ExactlyOne","children":{"*":{"type":"object","kind":"sql-column-value,text,number,boolean,date,guid,content,value","description":"Column name and value","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore"}}}},"scope":{"requires":"mssql.connection","description":"Requires an open SQL Server connection created by [mssql.connect]"},"output":{"mode":"Value","description":"Resolves to the created row ID when [return-id] is true, otherwise null"}}},{"name":"mssql.delete","description":"Deletes rows through the current SQL Server connection; include a [where] child unless intentionally deleting every row in the table","signature":{"children":{"generate":{"type":"bool","description":"Whether to only generate SQL and parameter nodes instead of executing it","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false"},"table":{"type":"string","kind":"table-name","description":"Table name to use in the SQL statement","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne"},"where":{"type":"lambda","kind":"sql-predicate-root","description":"Required boolean predicate tree — destructive SQL must constrain affected rows","required":true,"mode":"StructuredArguments","cardinality":"ExactlyOne","constraints":[{"description":"Where clause renders one top-level boolean group","values":["and","or"],"kind":"ExactlyOneOf"}],"children":{"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]},"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]},"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}}}}}}},"scope":{"requires":"mssql.connection","description":"Requires an open SQL Server connection created by [mssql.connect]"},"output":{"mode":"Value","kind":"integer,number","description":"Resolves to the number of rows affected"}}},{"name":"mssql.execute","description":"Executes SQL on the current SQL Server connection","signature":{"input":{"kind":"sql-execute","description":"SQL statement to execute","required":true,"mode":"ValueOrExpression"},"children":{"*":{"type":"object","kind":"sql-parameter-value,text,number,boolean,date,guid,content,value","description":"SQL parameter value; child name is used as the parameter name referenced by the SQL statement","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Arguments","projection":"Value"}},"scope":{"requires":"mssql.connection","description":"Requires an open SQL Server connection created by [mssql.connect]"},"output":{"mode":"Value","kind":"integer,number","description":"Resolves to the number of rows affected by the SQL statement"}}},{"name":"mssql.execute-batch","description":"Executes a batch SQL script on the current SQL Server connection","signature":{"input":{"kind":"sql-batch","description":"Batch SQL script to execute","required":true,"mode":"ValueOrExpression"},"scope":{"requires":"mssql.connection","description":"Requires an open SQL Server connection created by [mssql.connect]"},"output":{"mode":"Lambda","kind":"sql-batch-result-list,node-list","element-kind":"row","description":"Returns one child node per batch execution result"}}},{"name":"mssql.read","description":"Reads rows through the current SQL Server connection","signature":{"children":{"generate":{"type":"bool","description":"Whether to only generate SQL and parameter nodes instead of executing it","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false"},"table":{"type":"string","kind":"table-name","description":"Table name to use in the SQL statement","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","children":{"as":{"type":"string","kind":"table-alias","description":"Optional table alias","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne"},"join":{"type":"string","kind":"table-name","description":"Joined table name","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","children":{"type":{"type":"string","kind":"join-type","description":"Join type: inner, left, right, or full","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"inner"},"as":{"type":"string","kind":"table-alias","description":"Optional joined table alias","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne"},"on":{"type":"lambda","kind":"sql-predicate-root","description":"Join predicate tree comparing columns (AND-only at the schema level; the SQL builder still accepts hand-written [or] for legacy code)","required":true,"mode":"StructuredArguments","cardinality":"ExactlyOne","children":{"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":true,"mode":"StructuredArguments","cardinality":"ExactlyOne","children":{"*":{"type":"object","kind":"sql-column-condition,sql-qualified-column,text,number,boolean,date,guid,content,value","description":"Join predicate: LHS is a column-with-operator suffix, RHS is the joined-side column reference (leaf-only — value-list children are a WHERE-clause feature, not meaningful in JOIN ON)","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne"},"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,sql-qualified-column,text,number,boolean,date,guid,content,value","description":"Join predicate: LHS is a column-with-operator suffix, RHS is the joined-side column reference (leaf-only — value-list children are a WHERE-clause feature, not meaningful in JOIN ON)","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne"}}}}}}},"join":{"type":"string","kind":"table-name","description":"Joined table name","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","children":{"type":{"type":"string","kind":"join-type","description":"Join type: inner, left, right, or full","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"inner"},"as":{"type":"string","kind":"table-alias","description":"Optional joined table alias","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne"},"on":{"type":"lambda","kind":"sql-predicate-root","description":"Join predicate tree comparing columns (AND-only at the schema level; the SQL builder still accepts hand-written [or] for legacy code)","required":true,"mode":"StructuredArguments","cardinality":"ExactlyOne","children":{"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":true,"mode":"StructuredArguments","cardinality":"ExactlyOne","children":{"*":{"type":"object","kind":"sql-column-condition,sql-qualified-column,text,number,boolean,date,guid,content,value","description":"Join predicate: LHS is a column-with-operator suffix, RHS is the joined-side column reference (leaf-only — value-list children are a WHERE-clause feature, not meaningful in JOIN ON)","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne"},"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,sql-qualified-column,text,number,boolean,date,guid,content,value","description":"Join predicate: LHS is a column-with-operator suffix, RHS is the joined-side column reference (leaf-only — value-list children are a WHERE-clause feature, not meaningful in JOIN ON)","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne"}}}}}}}}}}}}},"distinct":{"type":"bool","description":"Removes duplicate rows from the result set when true","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false"},"columns":{"type":"lambda","description":"Columns or aggregate expressions to select; omitted or empty means all columns","required":false,"mode":"DynamicNamedValues","cardinality":"ZeroOrOne","children":{"*":{"type":"string","kind":"column-name,aggregate-expression","description":"Column name or aggregate expression; optional [as] child declares an alias","required":false,"mode":"Value","cardinality":"OneOrMore","children":{"as":{"type":"string","kind":"column-alias","description":"Column alias","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne"}}}}},"where":{"type":"lambda","kind":"sql-predicate-root","description":"Optional boolean predicate tree","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","constraints":[{"description":"Where clause renders one top-level boolean group","values":["and","or"],"kind":"ExactlyOneOf"}],"children":{"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]},"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]},"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}}}}}},"group":{"type":"lambda","description":"Columns or aggregate expressions to group by","required":false,"mode":"DynamicNamedValues","cardinality":"ZeroOrOne","children":{"*":{"type":"string","kind":"column-name,aggregate-expression","description":"Column name or aggregate expression","required":false,"mode":"Value","cardinality":"ZeroOrMore"}}},"order":{"type":"string","kind":"column-name,aggregate-expression","description":"Column, comma-separated columns, or aggregate expression to order by","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","children":{"direction":{"type":"string","kind":"sort-direction","description":"Order direction for this specific order node","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"asc"}}},"limit":{"type":"long","description":"Maximum number of rows to return; omitted defaults to 25 and -1 suppresses the generated limit clause","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"25"},"offset":{"type":"long","description":"Number of rows to skip","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"0"}},"scope":{"requires":"mssql.connection","description":"Requires an open SQL Server connection created by [mssql.connect]"},"output":{"mode":"Lambda","kind":"node-list","element-kind":"row-object,lambda-tree","description":"Returns one child node per row read from the current SQL Server connection","children":[{"type":"lambda","kind":"row","description":"One row returned by the read; child nodes carry the selected column values, with each child's name being the column name or alias from the SELECT statement","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"StructuredObject","projection":"StructuredTree","children":{"*":{"type":"string","kind":"column-value","description":"Column value; child name is the column name (or alias) declared in the read","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}}]}}},{"name":"mssql.scalar","description":"Executes SQL and returns a scalar value from the current SQL Server connection","signature":{"input":{"kind":"sql-scalar","description":"SQL statement to execute","required":true,"mode":"ValueOrExpression"},"children":{"*":{"type":"object","kind":"sql-parameter-value,text,number,boolean,date,guid,content,value","description":"SQL parameter value; child name is used as the parameter name referenced by the SQL statement","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Arguments","projection":"Value"}},"scope":{"requires":"mssql.connection","description":"Requires an open SQL Server connection created by [mssql.connect]"},"output":{"mode":"Value","description":"Resolves to the scalar result of the SQL statement"}}},{"name":"mssql.select","description":"Executes a SELECT query on the current SQL Server connection","signature":{"input":{"kind":"sql-select","description":"SQL query to execute","required":true,"mode":"ValueOrExpression"},"children":{"max":{"type":"long","description":"Maximum number of rows to return; omitted or -1 returns all rows","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"-1","role":"Option","projection":"Value"},"multiple-result-sets":{"type":"bool","description":"Whether multiple SELECT statements in the SQL input should be returned as separate child result containers","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false","role":"Option","projection":"Value"},"*":{"type":"object","kind":"sql-parameter-value,text,number,boolean,date,guid,content,value","description":"SQL parameter value; child name is used as the parameter name referenced by the SQL statement","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Arguments","projection":"Value"}},"scope":{"requires":"mssql.connection","description":"Requires an open SQL Server connection created by [mssql.connect]"},"output":{"mode":"Lambda","kind":"node-list","element-kind":"row-object,lambda-tree","description":"Returns one child node per row returned by the SELECT query","children":[{"type":"lambda","kind":"row","description":"One row returned by the read; child nodes carry the selected column values, with each child's name being the column name or alias from the SELECT statement","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"StructuredObject","projection":"StructuredTree","children":{"*":{"type":"string","kind":"column-value","description":"Column value; child name is the column name (or alias) declared in the read","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}}]}}},{"name":"mssql.transaction.commit","description":"Commits the current SQL Server transaction","signature":{"scope":{"requires":"mssql.transaction","description":"Requires an active SQL Server transaction created by [mssql.transaction.create]"}}},{"name":"mssql.transaction.create","description":"Creates a SQL Server transaction","signature":{"scope":{"provides":"mssql.transaction","requires":"mssql.connection","description":"Requires an open SQL Server connection created by [mssql.connect]"}}},{"name":"mssql.transaction.rollback","description":"Rolls back the current SQL Server transaction","signature":{"scope":{"requires":"mssql.transaction","description":"Requires an active SQL Server transaction created by [mssql.transaction.create]"}}},{"name":"mssql.update","description":"Updates rows through the current SQL Server connection; use [where] to constrain affected rows","signature":{"children":{"generate":{"type":"bool","description":"Whether to only generate SQL and parameter nodes instead of executing it","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false"},"table":{"type":"string","kind":"table-name","description":"Table name to use in the SQL statement","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne"},"values":{"type":"lambda","description":"Column values to insert or update","required":true,"mode":"DynamicNamedValues","cardinality":"ExactlyOne","children":{"*":{"type":"object","kind":"sql-column-value,text,number,boolean,date,guid,content,value","description":"Column name and value","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore"}}},"where":{"type":"lambda","kind":"sql-predicate-root","description":"Required boolean predicate tree — destructive SQL must constrain affected rows","required":true,"mode":"StructuredArguments","cardinality":"ExactlyOne","constraints":[{"description":"Where clause renders one top-level boolean group","values":["and","or"],"kind":"ExactlyOneOf"}],"children":{"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]},"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]},"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}}}}}}},"scope":{"requires":"mssql.connection","description":"Requires an open SQL Server connection created by [mssql.connect]"},"output":{"mode":"Value","kind":"integer,number","description":"Resolves to the number of rows affected"}}},{"name":"mysql.connect","description":"Opens a MySQL connection","signature":{"input":{"kind":"database-name,connection-string","description":"Optional DATABASE_NAME or [CONNECTION_STRING|DATABASE_NAME] override","required":false,"mode":"ValueOrExpression"},"children":{"*":{"type":"lambda","description":"Executable child slot evaluated while the database connection is open","required":false,"mode":"ExecutableLambda","cardinality":"ZeroOrMore","role":"ExecutableBody","evaluation":"EvalSelf","projection":"Self"}},"scope":{"provides":"mysql.connection","description":"Creates an open MySQL connection scope for mysql.* slots"}}},{"name":"mysql.create","description":"Inserts rows through the current MySQL connection","signature":{"children":{"generate":{"type":"bool","description":"Whether to only generate SQL and parameter nodes instead of executing it","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false"},"return-id":{"type":"bool","description":"Whether to return the created row ID","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"true"},"table":{"type":"string","kind":"table-name","description":"Table name to use in the SQL statement","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne"},"values":{"type":"lambda","description":"Column values to insert or update","required":true,"mode":"DynamicNamedValues","cardinality":"ExactlyOne","children":{"*":{"type":"object","kind":"sql-column-value,text,number,boolean,date,guid,content,value","description":"Column name and value","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore"}}}},"scope":{"requires":"mysql.connection","description":"Requires an open MySQL connection created by [mysql.connect]"},"output":{"mode":"Value","description":"Resolves to the created row ID when [return-id] is true, otherwise null"}}},{"name":"mysql.delete","description":"Deletes rows through the current MySQL connection; include a [where] child unless intentionally deleting every row in the table","signature":{"children":{"generate":{"type":"bool","description":"Whether to only generate SQL and parameter nodes instead of executing it","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false"},"table":{"type":"string","kind":"table-name","description":"Table name to use in the SQL statement","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne"},"where":{"type":"lambda","kind":"sql-predicate-root","description":"Required boolean predicate tree — destructive SQL must constrain affected rows","required":true,"mode":"StructuredArguments","cardinality":"ExactlyOne","constraints":[{"description":"Where clause renders one top-level boolean group","values":["and","or"],"kind":"ExactlyOneOf"}],"children":{"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]},"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]},"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}}}}}}},"scope":{"requires":"mysql.connection","description":"Requires an open MySQL connection created by [mysql.connect]"},"output":{"mode":"Value","kind":"integer,number","description":"Resolves to the number of rows affected"}}},{"name":"mysql.execute","description":"Executes SQL on the current MySQL connection","signature":{"input":{"kind":"sql-execute","description":"SQL statement to execute","required":true,"mode":"ValueOrExpression"},"children":{"*":{"type":"object","kind":"sql-parameter-value,text,number,boolean,date,guid,content,value","description":"SQL parameter value; child name is used as the parameter name referenced by the SQL statement","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Arguments","projection":"Value"}},"scope":{"requires":"mysql.connection","description":"Requires an open MySQL connection created by [mysql.connect]"},"output":{"mode":"Value","kind":"integer,number","description":"Resolves to the number of rows affected by the SQL statement"}}},{"name":"mysql.read","description":"Reads rows through the current MySQL connection","signature":{"children":{"generate":{"type":"bool","description":"Whether to only generate SQL and parameter nodes instead of executing it","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false"},"table":{"type":"string","kind":"table-name","description":"Table name to use in the SQL statement","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","children":{"as":{"type":"string","kind":"table-alias","description":"Optional table alias","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne"},"join":{"type":"string","kind":"table-name","description":"Joined table name","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","children":{"type":{"type":"string","kind":"join-type","description":"Join type: inner, left, right, or full","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"inner"},"as":{"type":"string","kind":"table-alias","description":"Optional joined table alias","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne"},"on":{"type":"lambda","kind":"sql-predicate-root","description":"Join predicate tree comparing columns (AND-only at the schema level; the SQL builder still accepts hand-written [or] for legacy code)","required":true,"mode":"StructuredArguments","cardinality":"ExactlyOne","children":{"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":true,"mode":"StructuredArguments","cardinality":"ExactlyOne","children":{"*":{"type":"object","kind":"sql-column-condition,sql-qualified-column,text,number,boolean,date,guid,content,value","description":"Join predicate: LHS is a column-with-operator suffix, RHS is the joined-side column reference (leaf-only — value-list children are a WHERE-clause feature, not meaningful in JOIN ON)","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne"},"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,sql-qualified-column,text,number,boolean,date,guid,content,value","description":"Join predicate: LHS is a column-with-operator suffix, RHS is the joined-side column reference (leaf-only — value-list children are a WHERE-clause feature, not meaningful in JOIN ON)","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne"}}}}}}},"join":{"type":"string","kind":"table-name","description":"Joined table name","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","children":{"type":{"type":"string","kind":"join-type","description":"Join type: inner, left, right, or full","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"inner"},"as":{"type":"string","kind":"table-alias","description":"Optional joined table alias","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne"},"on":{"type":"lambda","kind":"sql-predicate-root","description":"Join predicate tree comparing columns (AND-only at the schema level; the SQL builder still accepts hand-written [or] for legacy code)","required":true,"mode":"StructuredArguments","cardinality":"ExactlyOne","children":{"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":true,"mode":"StructuredArguments","cardinality":"ExactlyOne","children":{"*":{"type":"object","kind":"sql-column-condition,sql-qualified-column,text,number,boolean,date,guid,content,value","description":"Join predicate: LHS is a column-with-operator suffix, RHS is the joined-side column reference (leaf-only — value-list children are a WHERE-clause feature, not meaningful in JOIN ON)","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne"},"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,sql-qualified-column,text,number,boolean,date,guid,content,value","description":"Join predicate: LHS is a column-with-operator suffix, RHS is the joined-side column reference (leaf-only — value-list children are a WHERE-clause feature, not meaningful in JOIN ON)","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne"}}}}}}}}}}}}},"distinct":{"type":"bool","description":"Removes duplicate rows from the result set when true","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false"},"columns":{"type":"lambda","description":"Columns or aggregate expressions to select; omitted or empty means all columns","required":false,"mode":"DynamicNamedValues","cardinality":"ZeroOrOne","children":{"*":{"type":"string","kind":"column-name,aggregate-expression","description":"Column name or aggregate expression; optional [as] child declares an alias","required":false,"mode":"Value","cardinality":"OneOrMore","children":{"as":{"type":"string","kind":"column-alias","description":"Column alias","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne"}}}}},"where":{"type":"lambda","kind":"sql-predicate-root","description":"Optional boolean predicate tree","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","constraints":[{"description":"Where clause renders one top-level boolean group","values":["and","or"],"kind":"ExactlyOneOf"}],"children":{"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]},"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]},"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}}}}}},"group":{"type":"lambda","description":"Columns or aggregate expressions to group by","required":false,"mode":"DynamicNamedValues","cardinality":"ZeroOrOne","children":{"*":{"type":"string","kind":"column-name,aggregate-expression","description":"Column name or aggregate expression","required":false,"mode":"Value","cardinality":"ZeroOrMore"}}},"order":{"type":"string","kind":"column-name,aggregate-expression","description":"Column, comma-separated columns, or aggregate expression to order by","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","children":{"direction":{"type":"string","kind":"sort-direction","description":"Order direction for this specific order node","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"asc"}}},"limit":{"type":"long","description":"Maximum number of rows to return; omitted defaults to 25 and -1 suppresses the generated limit clause","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"25"},"offset":{"type":"long","description":"Number of rows to skip","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"0"}},"scope":{"requires":"mysql.connection","description":"Requires an open MySQL connection created by [mysql.connect]"},"output":{"mode":"Lambda","kind":"node-list","element-kind":"row-object,lambda-tree","description":"Returns one child node per row read from the current MySQL connection","children":[{"type":"lambda","kind":"row","description":"One row returned by the read; child nodes carry the selected column values, with each child's name being the column name or alias from the SELECT statement","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"StructuredObject","projection":"StructuredTree","children":{"*":{"type":"string","kind":"column-value","description":"Column value; child name is the column name (or alias) declared in the read","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}}]}}},{"name":"mysql.scalar","description":"Executes SQL and returns a scalar value from the current MySQL connection","signature":{"input":{"kind":"sql-scalar","description":"SQL statement to execute","required":true,"mode":"ValueOrExpression"},"children":{"*":{"type":"object","kind":"sql-parameter-value,text,number,boolean,date,guid,content,value","description":"SQL parameter value; child name is used as the parameter name referenced by the SQL statement","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Arguments","projection":"Value"}},"scope":{"requires":"mysql.connection","description":"Requires an open MySQL connection created by [mysql.connect]"},"output":{"mode":"Value","description":"Resolves to the scalar result of the SQL statement"}}},{"name":"mysql.select","description":"Executes a SELECT query on the current MySQL connection","signature":{"input":{"kind":"sql-select","description":"SQL query to execute","required":true,"mode":"ValueOrExpression"},"children":{"max":{"type":"long","description":"Maximum number of rows to return; omitted or -1 returns all rows","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"-1","role":"Option","projection":"Value"},"multiple-result-sets":{"type":"bool","description":"Whether multiple SELECT statements in the SQL input should be returned as separate child result containers","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false","role":"Option","projection":"Value"},"*":{"type":"object","kind":"sql-parameter-value,text,number,boolean,date,guid,content,value","description":"SQL parameter value; child name is used as the parameter name referenced by the SQL statement","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Arguments","projection":"Value"}},"scope":{"requires":"mysql.connection","description":"Requires an open MySQL connection created by [mysql.connect]"},"output":{"mode":"Lambda","kind":"node-list","element-kind":"row-object,lambda-tree","description":"Returns one child node per row returned by the SELECT query","children":[{"type":"lambda","kind":"row","description":"One row returned by the read; child nodes carry the selected column values, with each child's name being the column name or alias from the SELECT statement","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"StructuredObject","projection":"StructuredTree","children":{"*":{"type":"string","kind":"column-value","description":"Column value; child name is the column name (or alias) declared in the read","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}}]}}},{"name":"mysql.transaction.commit","description":"Commits the current MySQL transaction","signature":{"scope":{"requires":"mysql.transaction","description":"Requires an active MySQL transaction created by [mysql.transaction.create]"}}},{"name":"mysql.transaction.create","description":"Creates a MySQL transaction","signature":{"scope":{"provides":"mysql.transaction","requires":"mysql.connection","description":"Requires an open MySQL connection created by [mysql.connect]"}}},{"name":"mysql.transaction.rollback","description":"Rolls back the current MySQL transaction","signature":{"scope":{"requires":"mysql.transaction","description":"Requires an active MySQL transaction created by [mysql.transaction.create]"}}},{"name":"mysql.update","description":"Updates rows through the current MySQL connection; use [where] to constrain affected rows","signature":{"children":{"generate":{"type":"bool","description":"Whether to only generate SQL and parameter nodes instead of executing it","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false"},"table":{"type":"string","kind":"table-name","description":"Table name to use in the SQL statement","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne"},"values":{"type":"lambda","description":"Column values to insert or update","required":true,"mode":"DynamicNamedValues","cardinality":"ExactlyOne","children":{"*":{"type":"object","kind":"sql-column-value,text,number,boolean,date,guid,content,value","description":"Column name and value","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore"}}},"where":{"type":"lambda","kind":"sql-predicate-root","description":"Required boolean predicate tree — destructive SQL must constrain affected rows","required":true,"mode":"StructuredArguments","cardinality":"ExactlyOne","constraints":[{"description":"Where clause renders one top-level boolean group","values":["and","or"],"kind":"ExactlyOneOf"}],"children":{"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]},"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]},"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}}}}}}},"scope":{"requires":"mysql.connection","description":"Requires an open MySQL connection created by [mysql.connect]"},"output":{"mode":"Value","kind":"integer,number","description":"Resolves to the number of rows affected"}}},{"name":"odbc.connect","description":"Opens a ODBC connection","signature":{"input":{"kind":"connection-string","description":"Optional ODBC connection string override; ODBC does not use the database-name shorthand supported by other database providers","required":false,"mode":"ValueOrExpression"},"children":{"*":{"type":"lambda","description":"Executable child slot evaluated while the database connection is open","required":false,"mode":"ExecutableLambda","cardinality":"ZeroOrMore","role":"ExecutableBody","evaluation":"EvalSelf","projection":"Self"}},"scope":{"provides":"odbc.connection","description":"Creates an open ODBC connection scope for odbc.* slots"}}},{"name":"odbc.execute","description":"Executes SQL on the current ODBC connection","signature":{"input":{"kind":"sql-execute","description":"SQL statement to execute","required":true,"mode":"ValueOrExpression"},"children":{"*":{"type":"object","kind":"sql-parameter-value,text,number,boolean,date,guid,content,value","description":"SQL parameter value; child name is used as the parameter name referenced by the SQL statement","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Arguments","projection":"Value"}},"scope":{"requires":"odbc.connection","description":"Requires an open ODBC connection created by [odbc.connect]"},"output":{"mode":"Value","kind":"integer,number","description":"Resolves to the number of rows affected by the SQL statement"}}},{"name":"odbc.scalar","description":"Executes SQL and returns a scalar value from the current ODBC connection","signature":{"input":{"kind":"sql-scalar","description":"SQL statement to execute","required":true,"mode":"ValueOrExpression"},"children":{"*":{"type":"object","kind":"sql-parameter-value,text,number,boolean,date,guid,content,value","description":"SQL parameter value; child name is used as the parameter name referenced by the SQL statement","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Arguments","projection":"Value"}},"scope":{"requires":"odbc.connection","description":"Requires an open ODBC connection created by [odbc.connect]"},"output":{"mode":"Value","description":"Resolves to the scalar result of the SQL statement"}}},{"name":"odbc.select","description":"Executes a SELECT query on the current ODBC connection","signature":{"input":{"kind":"sql-select","description":"SQL query to execute","required":true,"mode":"ValueOrExpression"},"children":{"max":{"type":"long","description":"Maximum number of rows to return; omitted or -1 returns all rows","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"-1","role":"Option","projection":"Value"},"multiple-result-sets":{"type":"bool","description":"Whether multiple SELECT statements in the SQL input should be returned as separate child result containers","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false","role":"Option","projection":"Value"},"*":{"type":"object","kind":"sql-parameter-value,text,number,boolean,date,guid,content,value","description":"SQL parameter value; child name is used as the parameter name referenced by the SQL statement","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Arguments","projection":"Value"}},"scope":{"requires":"odbc.connection","description":"Requires an open ODBC connection created by [odbc.connect]"},"output":{"mode":"Lambda","kind":"node-list","element-kind":"row-object,lambda-tree","description":"Returns one child node per row returned by the SELECT query","children":[{"type":"lambda","kind":"row","description":"One row returned by the read; child nodes carry the selected column values, with each child's name being the column name or alias from the SELECT statement","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"StructuredObject","projection":"StructuredTree","children":{"*":{"type":"string","kind":"column-value","description":"Column value; child name is the column name (or alias) declared in the read","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}}]}}},{"name":"odbc.transaction.commit","description":"Commits the current ODBC transaction","signature":{"scope":{"requires":"odbc.transaction","description":"Requires an active ODBC transaction created by [odbc.transaction.create]"}}},{"name":"odbc.transaction.create","description":"Creates a ODBC transaction","signature":{"scope":{"provides":"odbc.transaction","requires":"odbc.connection","description":"Requires an open ODBC connection created by [odbc.connect]"}}},{"name":"odbc.transaction.rollback","description":"Rolls back the current ODBC transaction","signature":{"scope":{"requires":"odbc.transaction","description":"Requires an active ODBC transaction created by [odbc.transaction.create]"}}},{"name":"openai.tokenize","description":"Counts how many OpenAI tokens the given text consumes; useful for estimating cost or staying under context limits. Pass [model] to count with that model's exact encoding - defaults to o200k_base, the GPT-4o/GPT-5 family encoding","signature":{"input":{"kind":"text","description":"Text to tokenize","required":true,"mode":"ValueOrExpression"},"children":{"model":{"type":"string","kind":"model-name","description":"OpenAI model whose encoding to count with - defaults to o200k_base when omitted or unknown","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}},"output":{"mode":"Value","kind":"integer,number","description":"Resolves to the number of tokens in the supplied text"}}},{"name":"openai.whisper","description":"Transcribes audio content using OpenAI Whisper","signature":{"children":{"key":{"type":"string","kind":"openai-api-key","description":"OpenAI API key","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"},"content":{"type":"byte[]","kind":"binary-content","description":"Audio content bytes","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"},"type":{"type":"string","kind":"content-type","description":"Audio MIME type","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"},"language":{"type":"string","kind":"language-code","description":"Optional language hint","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}},"output":{"mode":"Value","kind":"text","description":"Resolves to the transcribed text"}}},{"name":"pgsql.connect","description":"Opens a PostgreSQL connection","signature":{"input":{"kind":"database-name,connection-string","description":"Optional DATABASE_NAME or [CONNECTION_STRING|DATABASE_NAME] override","required":false,"mode":"ValueOrExpression"},"children":{"*":{"type":"lambda","description":"Executable child slot evaluated while the database connection is open","required":false,"mode":"ExecutableLambda","cardinality":"ZeroOrMore","role":"ExecutableBody","evaluation":"EvalSelf","projection":"Self"}},"scope":{"provides":"pgsql.connection","description":"Creates an open PostgreSQL connection scope for pgsql.* slots"}}},{"name":"pgsql.create","description":"Inserts rows through the current PostgreSQL connection","signature":{"children":{"generate":{"type":"bool","description":"Whether to only generate SQL and parameter nodes instead of executing it","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false"},"return-id":{"type":"bool","description":"Whether to return the created row ID","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"true"},"table":{"type":"string","kind":"table-name","description":"Table name to use in the SQL statement","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne"},"values":{"type":"lambda","description":"Column values to insert or update","required":true,"mode":"DynamicNamedValues","cardinality":"ExactlyOne","children":{"*":{"type":"object","kind":"sql-column-value,text,number,boolean,date,guid,content,value","description":"Column name and value","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore"}}}},"scope":{"requires":"pgsql.connection","description":"Requires an open PostgreSQL connection created by [pgsql.connect]"},"output":{"mode":"Value","description":"Resolves to the created row ID when [return-id] is true, otherwise null"}}},{"name":"pgsql.delete","description":"Deletes rows through the current PostgreSQL connection; include a [where] child unless intentionally deleting every row in the table","signature":{"children":{"generate":{"type":"bool","description":"Whether to only generate SQL and parameter nodes instead of executing it","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false"},"table":{"type":"string","kind":"table-name","description":"Table name to use in the SQL statement","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne"},"where":{"type":"lambda","kind":"sql-predicate-root","description":"Required boolean predicate tree — destructive SQL must constrain affected rows","required":true,"mode":"StructuredArguments","cardinality":"ExactlyOne","constraints":[{"description":"Where clause renders one top-level boolean group","values":["and","or"],"kind":"ExactlyOneOf"}],"children":{"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]},"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]},"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}}}}}}},"scope":{"requires":"pgsql.connection","description":"Requires an open PostgreSQL connection created by [pgsql.connect]"},"output":{"mode":"Value","kind":"integer,number","description":"Resolves to the number of rows affected"}}},{"name":"pgsql.execute","description":"Executes SQL on the current PostgreSQL connection","signature":{"input":{"kind":"sql-execute","description":"SQL statement to execute","required":true,"mode":"ValueOrExpression"},"children":{"*":{"type":"object","kind":"sql-parameter-value,text,number,boolean,date,guid,content,value","description":"SQL parameter value; child name is used as the parameter name referenced by the SQL statement","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Arguments","projection":"Value"}},"scope":{"requires":"pgsql.connection","description":"Requires an open PostgreSQL connection created by [pgsql.connect]"},"output":{"mode":"Value","kind":"integer,number","description":"Resolves to the number of rows affected by the SQL statement"}}},{"name":"pgsql.read","description":"Reads rows through the current PostgreSQL connection","signature":{"children":{"generate":{"type":"bool","description":"Whether to only generate SQL and parameter nodes instead of executing it","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false"},"table":{"type":"string","kind":"table-name","description":"Table name to use in the SQL statement","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","children":{"as":{"type":"string","kind":"table-alias","description":"Optional table alias","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne"},"join":{"type":"string","kind":"table-name","description":"Joined table name","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","children":{"type":{"type":"string","kind":"join-type","description":"Join type: inner, left, right, or full","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"inner"},"as":{"type":"string","kind":"table-alias","description":"Optional joined table alias","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne"},"on":{"type":"lambda","kind":"sql-predicate-root","description":"Join predicate tree comparing columns (AND-only at the schema level; the SQL builder still accepts hand-written [or] for legacy code)","required":true,"mode":"StructuredArguments","cardinality":"ExactlyOne","children":{"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":true,"mode":"StructuredArguments","cardinality":"ExactlyOne","children":{"*":{"type":"object","kind":"sql-column-condition,sql-qualified-column,text,number,boolean,date,guid,content,value","description":"Join predicate: LHS is a column-with-operator suffix, RHS is the joined-side column reference (leaf-only — value-list children are a WHERE-clause feature, not meaningful in JOIN ON)","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne"},"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,sql-qualified-column,text,number,boolean,date,guid,content,value","description":"Join predicate: LHS is a column-with-operator suffix, RHS is the joined-side column reference (leaf-only — value-list children are a WHERE-clause feature, not meaningful in JOIN ON)","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne"}}}}}}},"join":{"type":"string","kind":"table-name","description":"Joined table name","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","children":{"type":{"type":"string","kind":"join-type","description":"Join type: inner, left, right, or full","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"inner"},"as":{"type":"string","kind":"table-alias","description":"Optional joined table alias","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne"},"on":{"type":"lambda","kind":"sql-predicate-root","description":"Join predicate tree comparing columns (AND-only at the schema level; the SQL builder still accepts hand-written [or] for legacy code)","required":true,"mode":"StructuredArguments","cardinality":"ExactlyOne","children":{"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":true,"mode":"StructuredArguments","cardinality":"ExactlyOne","children":{"*":{"type":"object","kind":"sql-column-condition,sql-qualified-column,text,number,boolean,date,guid,content,value","description":"Join predicate: LHS is a column-with-operator suffix, RHS is the joined-side column reference (leaf-only — value-list children are a WHERE-clause feature, not meaningful in JOIN ON)","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne"},"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,sql-qualified-column,text,number,boolean,date,guid,content,value","description":"Join predicate: LHS is a column-with-operator suffix, RHS is the joined-side column reference (leaf-only — value-list children are a WHERE-clause feature, not meaningful in JOIN ON)","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne"}}}}}}}}}}}}},"distinct":{"type":"bool","description":"Removes duplicate rows from the result set when true","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false"},"columns":{"type":"lambda","description":"Columns or aggregate expressions to select; omitted or empty means all columns","required":false,"mode":"DynamicNamedValues","cardinality":"ZeroOrOne","children":{"*":{"type":"string","kind":"column-name,aggregate-expression","description":"Column name or aggregate expression; optional [as] child declares an alias","required":false,"mode":"Value","cardinality":"OneOrMore","children":{"as":{"type":"string","kind":"column-alias","description":"Column alias","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne"}}}}},"where":{"type":"lambda","kind":"sql-predicate-root","description":"Optional boolean predicate tree","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","constraints":[{"description":"Where clause renders one top-level boolean group","values":["and","or"],"kind":"ExactlyOneOf"}],"children":{"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]},"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]},"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}}}}}},"group":{"type":"lambda","description":"Columns or aggregate expressions to group by","required":false,"mode":"DynamicNamedValues","cardinality":"ZeroOrOne","children":{"*":{"type":"string","kind":"column-name,aggregate-expression","description":"Column name or aggregate expression","required":false,"mode":"Value","cardinality":"ZeroOrMore"}}},"order":{"type":"string","kind":"column-name,aggregate-expression","description":"Column, comma-separated columns, or aggregate expression to order by","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","children":{"direction":{"type":"string","kind":"sort-direction","description":"Order direction for this specific order node","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"asc"}}},"limit":{"type":"long","description":"Maximum number of rows to return; omitted defaults to 25 and -1 suppresses the generated limit clause","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"25"},"offset":{"type":"long","description":"Number of rows to skip","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"0"}},"scope":{"requires":"pgsql.connection","description":"Requires an open PostgreSQL connection created by [pgsql.connect]"},"output":{"mode":"Lambda","kind":"node-list","element-kind":"row-object,lambda-tree","description":"Returns one child node per row read from the current PostgreSQL connection","children":[{"type":"lambda","kind":"row","description":"One row returned by the read; child nodes carry the selected column values, with each child's name being the column name or alias from the SELECT statement","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"StructuredObject","projection":"StructuredTree","children":{"*":{"type":"string","kind":"column-value","description":"Column value; child name is the column name (or alias) declared in the read","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}}]}}},{"name":"pgsql.scalar","description":"Executes SQL and returns a scalar value from the current PostgreSQL connection","signature":{"input":{"kind":"sql-scalar","description":"SQL statement to execute","required":true,"mode":"ValueOrExpression"},"children":{"*":{"type":"object","kind":"sql-parameter-value,text,number,boolean,date,guid,content,value","description":"SQL parameter value; child name is used as the parameter name referenced by the SQL statement","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Arguments","projection":"Value"}},"scope":{"requires":"pgsql.connection","description":"Requires an open PostgreSQL connection created by [pgsql.connect]"},"output":{"mode":"Value","description":"Resolves to the scalar result of the SQL statement"}}},{"name":"pgsql.select","description":"Executes a SELECT query on the current PostgreSQL connection","signature":{"input":{"kind":"sql-select","description":"SQL query to execute","required":true,"mode":"ValueOrExpression"},"children":{"max":{"type":"long","description":"Maximum number of rows to return; omitted or -1 returns all rows","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"-1","role":"Option","projection":"Value"},"multiple-result-sets":{"type":"bool","description":"Whether multiple SELECT statements in the SQL input should be returned as separate child result containers","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false","role":"Option","projection":"Value"},"*":{"type":"object","kind":"sql-parameter-value,text,number,boolean,date,guid,content,value","description":"SQL parameter value; child name is used as the parameter name referenced by the SQL statement","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Arguments","projection":"Value"}},"scope":{"requires":"pgsql.connection","description":"Requires an open PostgreSQL connection created by [pgsql.connect]"},"output":{"mode":"Lambda","kind":"node-list","element-kind":"row-object,lambda-tree","description":"Returns one child node per row returned by the SELECT query","children":[{"type":"lambda","kind":"row","description":"One row returned by the read; child nodes carry the selected column values, with each child's name being the column name or alias from the SELECT statement","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"StructuredObject","projection":"StructuredTree","children":{"*":{"type":"string","kind":"column-value","description":"Column value; child name is the column name (or alias) declared in the read","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}}]}}},{"name":"pgsql.transaction.commit","description":"Commits the current PostgreSQL transaction","signature":{"scope":{"requires":"pgsql.transaction","description":"Requires an active PostgreSQL transaction created by [pgsql.transaction.create]"}}},{"name":"pgsql.transaction.create","description":"Creates a PostgreSQL transaction","signature":{"scope":{"provides":"pgsql.transaction","requires":"pgsql.connection","description":"Requires an open PostgreSQL connection created by [pgsql.connect]"}}},{"name":"pgsql.transaction.rollback","description":"Rolls back the current PostgreSQL transaction","signature":{"scope":{"requires":"pgsql.transaction","description":"Requires an active PostgreSQL transaction created by [pgsql.transaction.create]"}}},{"name":"pgsql.update","description":"Updates rows through the current PostgreSQL connection; use [where] to constrain affected rows","signature":{"children":{"generate":{"type":"bool","description":"Whether to only generate SQL and parameter nodes instead of executing it","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false"},"table":{"type":"string","kind":"table-name","description":"Table name to use in the SQL statement","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne"},"values":{"type":"lambda","description":"Column values to insert or update","required":true,"mode":"DynamicNamedValues","cardinality":"ExactlyOne","children":{"*":{"type":"object","kind":"sql-column-value,text,number,boolean,date,guid,content,value","description":"Column name and value","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore"}}},"where":{"type":"lambda","kind":"sql-predicate-root","description":"Required boolean predicate tree — destructive SQL must constrain affected rows","required":true,"mode":"StructuredArguments","cardinality":"ExactlyOne","constraints":[{"description":"Where clause renders one top-level boolean group","values":["and","or"],"kind":"ExactlyOneOf"}],"children":{"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]},"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]},"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}}}}}}},"scope":{"requires":"pgsql.connection","description":"Requires an open PostgreSQL connection created by [pgsql.connect]"},"output":{"mode":"Value","kind":"integer,number","description":"Resolves to the number of rows affected"}}},{"name":"puppeteer.click","description":"Clicks an element on the page","signature":{"input":{"kind":"puppeteer-session","description":"Puppeteer session ID","required":true,"mode":"ValueOrExpression"},"children":{"selector":{"type":"string","kind":"css-selector","description":"CSS selector","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"},"button":{"type":"string","kind":"mouse-button","description":"Mouse button to click","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"left","role":"Option","projection":"Value"},"click-count":{"type":"int","kind":"click-count","description":"Number of clicks","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"delay":{"type":"int","description":"Delay in milliseconds between mouse down and up","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}},"scope":{"requires":"puppeteer-session"}}},{"name":"puppeteer.close","description":"Closes a Puppeteer session","signature":{"input":{"kind":"puppeteer-session","description":"Puppeteer session ID","required":true,"mode":"ValueOrExpression"},"scope":{"requires":"puppeteer-session"}}},{"name":"puppeteer.connect","description":"Creates or reuses a Puppeteer browser session","signature":{"children":{"timeout-minutes":{"type":"int","description":"Idle timeout in minutes","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"max-lifetime-minutes":{"type":"int","description":"Maximum session lifetime in minutes","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"headless":{"type":"bool","description":"Whether the browser should run headless","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"true","role":"Option","projection":"Value"},"timeout":{"type":"int","description":"Browser launch timeout in milliseconds","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"args":{"type":"string|lambda","description":"Browser launch arguments","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Arguments","projection":"ArgumentBag","children":[{"type":"string","kind":"browser-arg","description":"Argument value","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}]},"user-data-dir":{"type":"string","kind":"folder-path","description":"Browser user data directory","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"executable":{"type":"string","kind":"executable-path","description":"Browser executable path","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"executable-path":{"type":"string","kind":"executable-path","description":"Browser executable path","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}},"constraints":[{"description":"[executable] and [executable-path] are aliases; supply at most one","values":["executable","executable-path"],"kind":"AtMostOneOf"}],"scope":{"provides":"puppeteer-session","description":"Creates an open Puppeteer browser session scope for puppeteer.* slots"},"output":{"mode":"Value","kind":"puppeteer-session","description":"Resolves to the created Puppeteer session ID"}}},{"name":"puppeteer.content","description":"Returns the current page HTML content","signature":{"input":{"kind":"puppeteer-session","description":"Puppeteer session ID","required":true,"mode":"ValueOrExpression"},"scope":{"requires":"puppeteer-session"},"output":{"mode":"Value","kind":"html,text","description":"Resolves to the current page HTML content"}}},{"name":"puppeteer.evaluate","description":"Evaluates JavaScript in the page context","signature":{"input":{"kind":"puppeteer-session","description":"Puppeteer session ID","required":true,"mode":"ValueOrExpression"},"children":{"expression":{"type":"string","kind":"javascript","description":"JavaScript expression or function","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"},"args":{"type":"string|lambda","description":"Arguments passed to the JavaScript function","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Arguments","projection":"ArgumentBag","children":[{"type":"string","kind":"javascript-argument","description":"Argument value","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}]}},"scope":{"requires":"puppeteer-session"},"output":{"mode":"Value","kind":"javascript-result","description":"Resolves to the result of the evaluated JavaScript expression"}}},{"name":"puppeteer.fill","description":"Fills an input element with text","signature":{"input":{"kind":"puppeteer-session","description":"Puppeteer session ID","required":true,"mode":"ValueOrExpression"},"children":{"selector":{"type":"string","kind":"css-selector","description":"CSS selector","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"},"text":{"type":"string","kind":"form-text,text","description":"Text to send","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"config-key":{"type":"string","kind":"config-key","description":"Configuration key resolving the text to send","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"delay":{"type":"int","description":"Delay in milliseconds between key presses","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}},"constraints":[{"description":"Provide either [text] or [config-key]","values":["text","config-key"],"kind":"ExactlyOneOf"}],"scope":{"requires":"puppeteer-session"}}},{"name":"puppeteer.goto","description":"Navigates the current page to a URL","signature":{"input":{"kind":"puppeteer-session","description":"Puppeteer session ID","required":true,"mode":"ValueOrExpression"},"children":{"url":{"type":"string","kind":"url","description":"URL to navigate to","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"},"timeout":{"type":"int","description":"Navigation timeout in milliseconds","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"wait-until":{"type":"string","kind":"puppeteer-wait-until","description":"Navigation completion condition: load, domcontentloaded, networkidle0, or networkidle2","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}},"scope":{"requires":"puppeteer-session"},"output":{"mode":"Value","kind":"url,puppeteer-page-loaded,text","description":"Resolves to the resolved page URL after navigation"}}},{"name":"puppeteer.press","description":"Sends a key press to the page","signature":{"input":{"kind":"puppeteer-session","description":"Puppeteer session ID","required":true,"mode":"ValueOrExpression"},"children":{"selector":{"type":"string","kind":"css-selector","description":"CSS selector","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"},"key":{"type":"string","kind":"keyboard-key","description":"Key to press","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"delay":{"type":"int","description":"Delay in milliseconds between key down and up","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}},"scope":{"requires":"puppeteer-session"}}},{"name":"puppeteer.screenshot","description":"Captures a screenshot of the page","signature":{"input":{"kind":"puppeteer-session","description":"Puppeteer session ID","required":true,"mode":"ValueOrExpression"},"children":{"filename":{"type":"string","kind":"image-file","description":"Destination filename","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"},"full-page":{"type":"bool","description":"Whether to capture the full page","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false","role":"Option","projection":"Value"},"type":{"type":"string","kind":"image-format","description":"Image type","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"quality":{"type":"int","description":"JPEG/WebP image quality","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}},"scope":{"requires":"puppeteer-session"},"output":{"mode":"Value","kind":"image,binary-content","description":"Resolves to the screenshot image bytes"}}},{"name":"puppeteer.select","description":"Selects an option in a select element","signature":{"input":{"kind":"puppeteer-session","description":"Puppeteer session ID","required":true,"mode":"ValueOrExpression"},"children":{"selector":{"type":"string","kind":"css-selector","description":"CSS selector","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"},"values":{"type":"string|lambda","description":"Option values to select","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Arguments","projection":"ArgumentBag","children":[{"type":"string","kind":"javascript-argument","description":"Argument value","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}]}},"scope":{"requires":"puppeteer-session"}}},{"name":"puppeteer.title","description":"Returns the current page title","signature":{"input":{"kind":"puppeteer-session","description":"Puppeteer session ID","required":true,"mode":"ValueOrExpression"},"scope":{"requires":"puppeteer-session"},"output":{"mode":"Value","kind":"page-title,text","description":"Resolves to the current page title"}}},{"name":"puppeteer.type","description":"Types text into an element","signature":{"input":{"kind":"puppeteer-session","description":"Puppeteer session ID","required":true,"mode":"ValueOrExpression"},"children":{"selector":{"type":"string","kind":"css-selector","description":"CSS selector","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"},"text":{"type":"string","kind":"form-text,text","description":"Text to send","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"config-key":{"type":"string","kind":"config-key","description":"Configuration key resolving the text to send","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"delay":{"type":"int","description":"Delay in milliseconds between key presses","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}},"constraints":[{"description":"Provide either [text] or [config-key]","values":["text","config-key"],"kind":"ExactlyOneOf"}],"scope":{"requires":"puppeteer-session"}}},{"name":"puppeteer.url","description":"Returns the current page URL","signature":{"input":{"kind":"puppeteer-session","description":"Puppeteer session ID","required":true,"mode":"ValueOrExpression"},"scope":{"requires":"puppeteer-session"},"output":{"mode":"Value","kind":"url,text","description":"Resolves to the current page URL"}}},{"name":"puppeteer.wait-for-selector","description":"Waits for a selector to appear","signature":{"input":{"kind":"puppeteer-session","description":"Puppeteer session ID","required":true,"mode":"ValueOrExpression"},"children":{"selector":{"type":"string","kind":"css-selector","description":"CSS selector","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"},"timeout":{"type":"int","description":"Wait timeout in milliseconds","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"visible":{"type":"bool","description":"Wait until selector is visible","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"hidden":{"type":"bool","description":"Wait until selector is hidden","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}},"scope":{"requires":"puppeteer-session"}}},{"name":"puppeteer.wait-for-url","description":"Waits for the page URL to match a condition","signature":{"input":{"kind":"puppeteer-session","description":"Puppeteer session ID","required":true,"mode":"ValueOrExpression"},"children":{"url":{"type":"string","kind":"url-pattern","description":"URL pattern to wait for","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"},"timeout":{"type":"int","description":"Wait timeout in milliseconds","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}},"scope":{"requires":"puppeteer-session"}}},{"name":"python.execute","description":"Runs a Python script or file in a subprocess and captures stdout, stderr, and exit code","signature":{"children":{"code":{"type":"string","kind":"python-code","description":"Inline Python code to execute","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"file":{"type":"string","kind":"python-file","description":"Python file to execute","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"args":{"type":"string|lambda","kind":"terminal-arguments","description":"Command-line arguments as a shell-like string or child values","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","role":"Arguments","projection":"ArgumentBag","children":{"*":{"type":"string","kind":"terminal-argument","description":"Single command-line argument","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Arguments","projection":"Value"}}},"stdin":{"type":"string","kind":"stdin-text","description":"Text written to standard input","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"working-directory":{"type":"string","kind":"folder-path","description":"Working directory for the Python process","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"timeout":{"type":"int","description":"Execution timeout in seconds","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"30","role":"Option","projection":"Value"}},"constraints":[{"description":"Exactly one code source must be supplied","values":["code","file"],"kind":"ExactlyOneOf"}],"output":{"mode":"Both","kind":"terminal-response,text","description":"Returns stdout in value and stderr and exit code as child nodes"}}},{"name":"request.cookies.get","description":"Returns a request cookie by name","signature":{"input":{"kind":"cookie-name","description":"Cookie name to retrieve","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Value","kind":"cookie-value,text","description":"Resolves to the value of the named request cookie, or null if it does not exist"}}},{"name":"request.cookies.list","description":"Lists request cookies","signature":{"output":{"mode":"Lambda","kind":"cookie-map,lambda-tree","element-kind":"cookie-value,text","description":"Resolves to one child node per request cookie, with the cookie name as the node name and its value as the node value"}}},{"name":"request.headers.get","description":"Returns a request header by name","signature":{"input":{"kind":"http-header-name","description":"Header name to retrieve","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Value","kind":"http-header-value,text","description":"Resolves to the value of the named request header, or null if it does not exist"}}},{"name":"request.headers.list","description":"Lists request headers","signature":{"output":{"mode":"Lambda","kind":"http-header-map,lambda-tree","element-kind":"http-header-value,text","description":"Resolves to one child node per request header, with the header name as the node name and its value as the node value"}}},{"name":"request.host","description":"Returns the host header (domain and optional port) of the current incoming request","signature":{"output":{"mode":"Value","kind":"host-name,text","description":"Resolves to the host name from the current request"}}},{"name":"request.ip","description":"Returns the client IP address for the current request","signature":{"children":{"version":{"type":"string","kind":"ip-version","description":"IP version to return, either ipv4 or ipv6","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}},"output":{"mode":"Value","kind":"ip-address,text","description":"Resolves to the client IP address for the requested IP version"}}},{"name":"request.scheme","description":"Returns the scheme (http or https) of the current incoming request","signature":{"output":{"mode":"Value","kind":"http-scheme,text","description":"Resolves to the scheme of the current request, such as http or https"}}},{"name":"request.url","description":"Returns the requested URL path and exposes each query-string parameter as a child node","signature":{"output":{"mode":"Both","kind":"url,text","description":"Resolves to the full request URL in value and the parsed query string parameters as child nodes"}}},{"name":"request.verb","description":"Returns the HTTP verb (get, post, put, delete, etc.) of the current incoming request","signature":{"output":{"mode":"Value","kind":"http-method,text","description":"Resolves to the HTTP verb of the current request"}}},{"name":"response.cookies.set","description":"Sets a response cookie","signature":{"input":{"kind":"cookie-name","description":"Cookie name to set","required":true,"mode":"ValueOrExpression"},"children":{"value":{"type":"string","kind":"cookie-value,text","description":"Cookie value","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"},"expires":{"type":"DateTime","description":"Cookie expiration","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"http-only":{"type":"bool","description":"Whether the cookie is HTTP-only","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"secure":{"type":"bool","description":"Whether the cookie is secure","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"domain":{"type":"string","kind":"cookie-domain","description":"Cookie domain","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"path":{"type":"string","kind":"cookie-path","description":"Cookie path","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"same-site":{"type":"string","kind":"cookie-same-site","description":"Cookie SameSite mode: Strict, Lax, None, or Unspecified","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}}}},{"name":"response.headers.set","description":"Sets one or more response headers from key/value child nodes","signature":{"children":{"*":{"type":"string","kind":"http-response-header-value","description":"Response header name and value","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","role":"DynamicMap","projection":"Value"}}}},{"name":"response.status.set","description":"Overrides the HTTP status code returned to the caller (e.g. 201 Created, 404 Not Found, 500 Internal Error)","signature":{"input":{"kind":"http-status-code,integer,number","description":"HTTP status code to set","required":true,"mode":"ValueOrExpression"}}},{"name":"server.ip","description":"Returns the server's local IP address (IPv4 by default); useful for logging or building absolute URLs","signature":{"children":{"version":{"type":"string","kind":"ip-version","description":"IP version to return, either ipv4 or ipv6","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}},"output":{"mode":"Value","kind":"ip-address,text","description":"Resolves to the server IP address for the requested IP version"}}},{"name":"slot.description","description":"Returns the description for a single compiled slot","signature":{"input":{"kind":"slot-name","description":"Name of the compiled slot to inspect","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Value","kind":"slot-description,text","description":"Resolves to the description of the requested slot"}}},{"name":"slot.signature","description":"Returns the documented input and output contract for a single compiled slot","signature":{"input":{"kind":"slot-name","description":"Name of the compiled slot to inspect","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Lambda","kind":"slot-signature,lambda-tree","description":"Resolves to input and output contract metadata for the requested slot"}}},{"name":"slots.create","description":"Creates a dynamic slot that can be invoked with [signal]","signature":{"input":{"kind":"dynamic-slot-name","description":"Name of the dynamic slot to create","required":true,"mode":"ValueOrExpression"},"children":{"*":{"type":"lambda","description":"Executable child slot stored as the dynamic slot body","required":true,"mode":"ExecutableLambda","cardinality":"OneOrMore","role":"ExecutableBody","evaluation":"SerializeLambda","projection":"Self"}}}},{"name":"slots.delete","description":"Deletes a dynamic slot","signature":{"input":{"kind":"dynamic-slot-name","description":"Name of the dynamic slot to delete","required":true,"mode":"ValueOrExpression"}}},{"name":"slots.exists","description":"Returns true if a dynamic slot exists","signature":{"input":{"kind":"dynamic-slot-name","description":"Name of the dynamic slot to test for","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Value","kind":"boolean","description":"Returns true if the slot exists"}}},{"name":"slots.get","description":"Returns a dynamic slot by name","signature":{"input":{"kind":"dynamic-slot-name","description":"Name of the dynamic slot to retrieve","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Lambda","kind":"dynamic-slot-lambda,lambda-object,lambda-tree","description":"Resolves to the dynamic slot lambda body as child nodes"}}},{"name":"slots.vocabulary","description":"Lists dynamically created slots","signature":{"input":{"kind":"dynamic-slot-name","description":"Optional filter for dynamic slot names","required":false,"mode":"ValueOrExpression"},"output":{"mode":"Lambda","kind":"dynamic-slot-name-list,string-list","element-kind":"dynamic-slot-name,text","description":"Resolves to available dynamic slot names as child nodes"}}},{"name":"sockets.connection.enter-group","description":"Adds the current connection to a socket group","signature":{"children":{"group":{"type":"string","kind":"socket-group","description":"Socket group name","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"}}}},{"name":"sockets.connection.leave-group","description":"Removes the current connection from a socket group","signature":{"children":{"group":{"type":"string","kind":"socket-group","description":"Socket group name","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"}}}},{"name":"sockets.signal","description":"Pushes a SignalR message to clients subscribed to the channel; use to broadcast events from server to browsers","signature":{"input":{"kind":"socket-channel","description":"Socket channel to publish","required":true,"mode":"ValueOrExpression"},"children":{"args":{"type":"lambda","kind":"socket-args","description":"Payload serialized to JSON and sent with the socket message","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Payload","evaluation":"UnwrapDescendants","projection":"StructuredTree"},"roles":{"type":"string","kind":"role","description":"Comma-separated roles receiving the message","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"users":{"type":"string","kind":"username","description":"Comma-separated users receiving the message","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"groups":{"type":"string","kind":"socket-group","description":"Comma-separated groups receiving the message","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"clients":{"type":"string","kind":"socket-connection-id","description":"Comma-separated connection IDs receiving the message","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}}}},{"name":"sockets.user.add-to-group","description":"Adds a user to a socket group","signature":{"input":{"kind":"username","description":"Username to add to the socket group","required":true,"mode":"ValueOrExpression"},"children":{"group":{"type":"string","kind":"socket-group","description":"Socket group name","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"}}}},{"name":"sockets.user.remove-from-group","description":"Removes a user from a socket group","signature":{"input":{"kind":"username","description":"Username to remove from the socket group","required":true,"mode":"ValueOrExpression"},"children":{"group":{"type":"string","kind":"socket-group","description":"Socket group name","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"}}}},{"name":"sockets.users","description":"Lists connected socket users, optionally filtered by username","signature":{"children":{"filter":{"type":"string","kind":"username","description":"Username filter","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"offset":{"type":"int","description":"Number of matching users to skip","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"0","role":"Option","projection":"Value"},"limit":{"type":"int","description":"Maximum number of users to return","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"10","role":"Option","projection":"Value"}},"output":{"mode":"Lambda","kind":"socket-user-list,node-list","element-kind":"socket-user,lambda-tree","description":"Returns one child node per connected socket user matching the optional filter"}}},{"name":"sockets.users.count","description":"Counts connected socket users, optionally filtered by username","signature":{"children":{"filter":{"type":"string","kind":"username","description":"Username filter","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}},"output":{"mode":"Value","kind":"integer,number","description":"Resolves to the number of connected socket users matching the optional filter"}}},{"name":"sql.create","description":"Builds a parameterized INSERT SQL statement","signature":{"children":{"table":{"type":"string","kind":"table-name","description":"Table name to use in the SQL statement","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne"},"values":{"type":"lambda","description":"Column values to insert or update","required":true,"mode":"DynamicNamedValues","cardinality":"ExactlyOne","children":{"*":{"type":"object","kind":"sql-column-value,text,number,boolean,date,guid,content,value","description":"Column name and value","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore"}}}},"output":{"mode":"Both","description":"Resolves to the generated SQL string in value and the generated parameter nodes as children"}}},{"name":"sql.delete","description":"Builds a parameterized DELETE SQL statement; include a [where] child unless intentionally deleting every row in the table","signature":{"children":{"table":{"type":"string","kind":"table-name","description":"Table name to use in the SQL statement","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne"},"where":{"type":"lambda","kind":"sql-predicate-root","description":"Optional boolean predicate tree","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","constraints":[{"description":"Where clause renders one top-level boolean group","values":["and","or"],"kind":"ExactlyOneOf"}],"children":{"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]},"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]},"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}}}}}}},"output":{"mode":"Both","description":"Resolves to the generated SQL string in value and the generated parameter nodes as children"}}},{"name":"sql.read","description":"Builds a parameterized SELECT SQL statement","signature":{"children":{"table":{"type":"string","kind":"table-name","description":"Table name to use in the SQL statement","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","children":{"as":{"type":"string","kind":"table-alias","description":"Optional table alias","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne"},"join":{"type":"string","kind":"table-name","description":"Joined table name","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","children":{"type":{"type":"string","kind":"join-type","description":"Join type: inner, left, right, or full","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"inner"},"as":{"type":"string","kind":"table-alias","description":"Optional joined table alias","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne"},"on":{"type":"lambda","kind":"sql-predicate-root","description":"Join predicate tree comparing columns (AND-only at the schema level; the SQL builder still accepts hand-written [or] for legacy code)","required":true,"mode":"StructuredArguments","cardinality":"ExactlyOne","children":{"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":true,"mode":"StructuredArguments","cardinality":"ExactlyOne","children":{"*":{"type":"object","kind":"sql-column-condition,sql-qualified-column,text,number,boolean,date,guid,content,value","description":"Join predicate: LHS is a column-with-operator suffix, RHS is the joined-side column reference (leaf-only — value-list children are a WHERE-clause feature, not meaningful in JOIN ON)","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne"},"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,sql-qualified-column,text,number,boolean,date,guid,content,value","description":"Join predicate: LHS is a column-with-operator suffix, RHS is the joined-side column reference (leaf-only — value-list children are a WHERE-clause feature, not meaningful in JOIN ON)","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne"}}}}}}},"join":{"type":"string","kind":"table-name","description":"Joined table name","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","children":{"type":{"type":"string","kind":"join-type","description":"Join type: inner, left, right, or full","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"inner"},"as":{"type":"string","kind":"table-alias","description":"Optional joined table alias","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne"},"on":{"type":"lambda","kind":"sql-predicate-root","description":"Join predicate tree comparing columns (AND-only at the schema level; the SQL builder still accepts hand-written [or] for legacy code)","required":true,"mode":"StructuredArguments","cardinality":"ExactlyOne","children":{"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":true,"mode":"StructuredArguments","cardinality":"ExactlyOne","children":{"*":{"type":"object","kind":"sql-column-condition,sql-qualified-column,text,number,boolean,date,guid,content,value","description":"Join predicate: LHS is a column-with-operator suffix, RHS is the joined-side column reference (leaf-only — value-list children are a WHERE-clause feature, not meaningful in JOIN ON)","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne"},"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,sql-qualified-column,text,number,boolean,date,guid,content,value","description":"Join predicate: LHS is a column-with-operator suffix, RHS is the joined-side column reference (leaf-only — value-list children are a WHERE-clause feature, not meaningful in JOIN ON)","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne"}}}}}}}}}}}}},"distinct":{"type":"bool","description":"Removes duplicate rows from the result set when true","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false"},"columns":{"type":"lambda","description":"Columns or aggregate expressions to select; omitted or empty means all columns","required":false,"mode":"DynamicNamedValues","cardinality":"ZeroOrOne","children":{"*":{"type":"string","kind":"column-name,aggregate-expression","description":"Column name or aggregate expression; optional [as] child declares an alias","required":false,"mode":"Value","cardinality":"OneOrMore","children":{"as":{"type":"string","kind":"column-alias","description":"Column alias","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne"}}}}},"where":{"type":"lambda","kind":"sql-predicate-root","description":"Optional boolean predicate tree","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","constraints":[{"description":"Where clause renders one top-level boolean group","values":["and","or"],"kind":"ExactlyOneOf"}],"children":{"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]},"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]},"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}}}}}},"group":{"type":"lambda","description":"Columns or aggregate expressions to group by","required":false,"mode":"DynamicNamedValues","cardinality":"ZeroOrOne","children":{"*":{"type":"string","kind":"column-name,aggregate-expression","description":"Column name or aggregate expression","required":false,"mode":"Value","cardinality":"ZeroOrMore"}}},"order":{"type":"string","kind":"column-name,aggregate-expression","description":"Column, comma-separated columns, or aggregate expression to order by","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","children":{"direction":{"type":"string","kind":"sort-direction","description":"Order direction for this specific order node","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"asc"}}},"limit":{"type":"long","description":"Maximum number of rows to return; omitted defaults to 25 and -1 suppresses the generated limit clause","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"25"},"offset":{"type":"long","description":"Number of rows to skip","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"0"}},"output":{"mode":"Both","description":"Resolves to the generated SQL string in value and the generated parameter nodes as children","children":[{"type":"lambda","kind":"row","description":"One row returned by the read; child nodes carry the selected column values, with each child's name being the column name or alias from the SELECT statement","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"StructuredObject","projection":"StructuredTree","children":{"*":{"type":"string","kind":"column-value","description":"Column value; child name is the column name (or alias) declared in the read","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}}]}}},{"name":"sql.update","description":"Builds a parameterized UPDATE SQL statement; use [where] to constrain affected rows","signature":{"children":{"table":{"type":"string","kind":"table-name","description":"Table name to use in the SQL statement","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne"},"values":{"type":"lambda","description":"Column values to insert or update","required":true,"mode":"DynamicNamedValues","cardinality":"ExactlyOne","children":{"*":{"type":"object","kind":"sql-column-value,text,number,boolean,date,guid,content,value","description":"Column name and value","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore"}}},"where":{"type":"lambda","kind":"sql-predicate-root","description":"Optional boolean predicate tree","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","constraints":[{"description":"Where clause renders one top-level boolean group","values":["and","or"],"kind":"ExactlyOneOf"}],"children":{"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]},"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]},"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}}}}}}},"output":{"mode":"Both","description":"Resolves to the generated SQL string in value and the generated parameter nodes as children"}}},{"name":"sqlite.backup","description":"Creates a backup of the current SQLite connection","signature":{"input":{"kind":"file-path","description":"Target SQLite database filename under files/data/","required":true,"mode":"ValueOrExpression"},"scope":{"requires":"sqlite.connection","description":"Requires an open SQLite connection created by [sqlite.connect]"}}},{"name":"sqlite.connect","description":"Opens a SQLite connection","signature":{"input":{"kind":"database-name,connection-string","description":"Optional DATABASE_NAME or [CONNECTION_STRING|DATABASE_NAME] override","required":false,"mode":"ValueOrExpression"},"children":{"*":{"type":"lambda","description":"Executable child slot evaluated while the database connection is open","required":false,"mode":"ExecutableLambda","cardinality":"ZeroOrMore","role":"ExecutableBody","evaluation":"EvalSelf","projection":"Self"}},"scope":{"provides":"sqlite.connection","description":"Creates an open SQLite connection scope for sqlite.* slots"}}},{"name":"sqlite.connections.flush","description":"Flushes cached SQLite connections","signature":null},{"name":"sqlite.create","description":"Inserts rows through the current SQLite connection","signature":{"children":{"generate":{"type":"bool","description":"Whether to only generate SQL and parameter nodes instead of executing it","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false"},"return-id":{"type":"bool","description":"Whether to return the created row ID","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"true"},"table":{"type":"string","kind":"table-name","description":"Table name to use in the SQL statement","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne"},"values":{"type":"lambda","description":"Column values to insert or update","required":true,"mode":"DynamicNamedValues","cardinality":"ExactlyOne","children":{"*":{"type":"object","kind":"sql-column-value,text,number,boolean,date,guid,content,value","description":"Column name and value","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore"}}}},"scope":{"requires":"sqlite.connection","description":"Requires an open SQLite connection created by [sqlite.connect]"},"output":{"mode":"Value","description":"Resolves to the created row ID when [return-id] is true, otherwise null"}}},{"name":"sqlite.delete","description":"Deletes rows through the current SQLite connection; include a [where] child unless intentionally deleting every row in the table","signature":{"children":{"generate":{"type":"bool","description":"Whether to only generate SQL and parameter nodes instead of executing it","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false"},"table":{"type":"string","kind":"table-name","description":"Table name to use in the SQL statement","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne"},"where":{"type":"lambda","kind":"sql-predicate-root","description":"Required boolean predicate tree — destructive SQL must constrain affected rows","required":true,"mode":"StructuredArguments","cardinality":"ExactlyOne","constraints":[{"description":"Where clause renders one top-level boolean group","values":["and","or"],"kind":"ExactlyOneOf"}],"children":{"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]},"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]},"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}}}}}}},"scope":{"requires":"sqlite.connection","description":"Requires an open SQLite connection created by [sqlite.connect]"},"output":{"mode":"Value","kind":"integer,number","description":"Resolves to the number of rows affected"}}},{"name":"sqlite.execute","description":"Executes SQL on the current SQLite connection","signature":{"input":{"kind":"sql-execute","description":"SQL statement to execute","required":true,"mode":"ValueOrExpression"},"children":{"*":{"type":"object","kind":"sql-parameter-value,text,number,boolean,date,guid,content,value","description":"SQL parameter value; child name is used as the parameter name referenced by the SQL statement","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Arguments","projection":"Value"}},"scope":{"requires":"sqlite.connection","description":"Requires an open SQLite connection created by [sqlite.connect]"},"output":{"mode":"Value","kind":"integer,number","description":"Resolves to the number of rows affected by the SQL statement"}}},{"name":"sqlite.load-extension","description":"Loads a SQLite extension into the current connection from child-node arguments","signature":{"children":{"file":{"type":"string","kind":"sqlite-extension-file","description":"SQLite extension filename","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"},"proc":{"type":"string","kind":"sqlite-entry-point","description":"Optional extension entry point","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"append-platform":{"type":"bool","description":"Whether to append the current platform suffix","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"true","role":"Option","projection":"Value"}},"scope":{"requires":"sqlite.connection","description":"Requires an open SQLite connection created by [sqlite.connect]"}}},{"name":"sqlite.read","description":"Reads rows through the current SQLite connection","signature":{"children":{"generate":{"type":"bool","description":"Whether to only generate SQL and parameter nodes instead of executing it","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false"},"table":{"type":"string","kind":"table-name","description":"Table name to use in the SQL statement","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","children":{"as":{"type":"string","kind":"table-alias","description":"Optional table alias","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne"},"join":{"type":"string","kind":"table-name","description":"Joined table name","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","children":{"type":{"type":"string","kind":"join-type","description":"Join type: inner, left, right, or full","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"inner"},"as":{"type":"string","kind":"table-alias","description":"Optional joined table alias","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne"},"on":{"type":"lambda","kind":"sql-predicate-root","description":"Join predicate tree comparing columns (AND-only at the schema level; the SQL builder still accepts hand-written [or] for legacy code)","required":true,"mode":"StructuredArguments","cardinality":"ExactlyOne","children":{"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":true,"mode":"StructuredArguments","cardinality":"ExactlyOne","children":{"*":{"type":"object","kind":"sql-column-condition,sql-qualified-column,text,number,boolean,date,guid,content,value","description":"Join predicate: LHS is a column-with-operator suffix, RHS is the joined-side column reference (leaf-only — value-list children are a WHERE-clause feature, not meaningful in JOIN ON)","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne"},"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,sql-qualified-column,text,number,boolean,date,guid,content,value","description":"Join predicate: LHS is a column-with-operator suffix, RHS is the joined-side column reference (leaf-only — value-list children are a WHERE-clause feature, not meaningful in JOIN ON)","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne"}}}}}}},"join":{"type":"string","kind":"table-name","description":"Joined table name","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","children":{"type":{"type":"string","kind":"join-type","description":"Join type: inner, left, right, or full","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"inner"},"as":{"type":"string","kind":"table-alias","description":"Optional joined table alias","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne"},"on":{"type":"lambda","kind":"sql-predicate-root","description":"Join predicate tree comparing columns (AND-only at the schema level; the SQL builder still accepts hand-written [or] for legacy code)","required":true,"mode":"StructuredArguments","cardinality":"ExactlyOne","children":{"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":true,"mode":"StructuredArguments","cardinality":"ExactlyOne","children":{"*":{"type":"object","kind":"sql-column-condition,sql-qualified-column,text,number,boolean,date,guid,content,value","description":"Join predicate: LHS is a column-with-operator suffix, RHS is the joined-side column reference (leaf-only — value-list children are a WHERE-clause feature, not meaningful in JOIN ON)","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne"},"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,sql-qualified-column,text,number,boolean,date,guid,content,value","description":"Join predicate: LHS is a column-with-operator suffix, RHS is the joined-side column reference (leaf-only — value-list children are a WHERE-clause feature, not meaningful in JOIN ON)","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne"}}}}}}}}}}}}},"distinct":{"type":"bool","description":"Removes duplicate rows from the result set when true","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false"},"columns":{"type":"lambda","description":"Columns or aggregate expressions to select; omitted or empty means all columns","required":false,"mode":"DynamicNamedValues","cardinality":"ZeroOrOne","children":{"*":{"type":"string","kind":"column-name,aggregate-expression","description":"Column name or aggregate expression; optional [as] child declares an alias","required":false,"mode":"Value","cardinality":"OneOrMore","children":{"as":{"type":"string","kind":"column-alias","description":"Column alias","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne"}}}}},"where":{"type":"lambda","kind":"sql-predicate-root","description":"Optional boolean predicate tree","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","constraints":[{"description":"Where clause renders one top-level boolean group","values":["and","or"],"kind":"ExactlyOneOf"}],"children":{"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]},"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]},"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}}}}}},"group":{"type":"lambda","description":"Columns or aggregate expressions to group by","required":false,"mode":"DynamicNamedValues","cardinality":"ZeroOrOne","children":{"*":{"type":"string","kind":"column-name,aggregate-expression","description":"Column name or aggregate expression","required":false,"mode":"Value","cardinality":"ZeroOrMore"}}},"order":{"type":"string","kind":"column-name,aggregate-expression","description":"Column, comma-separated columns, or aggregate expression to order by","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","children":{"direction":{"type":"string","kind":"sort-direction","description":"Order direction for this specific order node","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"asc"}}},"limit":{"type":"long","description":"Maximum number of rows to return; omitted defaults to 25 and -1 suppresses the generated limit clause","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"25"},"offset":{"type":"long","description":"Number of rows to skip","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"0"}},"scope":{"requires":"sqlite.connection","description":"Requires an open SQLite connection created by [sqlite.connect]"},"output":{"mode":"Lambda","kind":"node-list","element-kind":"row-object,lambda-tree","description":"Returns one child node per row read from the current SQLite connection","children":[{"type":"lambda","kind":"row","description":"One row returned by the read; child nodes carry the selected column values, with each child's name being the column name or alias from the SELECT statement","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"StructuredObject","projection":"StructuredTree","children":{"*":{"type":"string","kind":"column-value","description":"Column value; child name is the column name (or alias) declared in the read","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}}]}}},{"name":"sqlite.scalar","description":"Executes SQL and returns a scalar value from the current SQLite connection","signature":{"input":{"kind":"sql-scalar","description":"SQL statement to execute","required":true,"mode":"ValueOrExpression"},"children":{"*":{"type":"object","kind":"sql-parameter-value,text,number,boolean,date,guid,content,value","description":"SQL parameter value; child name is used as the parameter name referenced by the SQL statement","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Arguments","projection":"Value"}},"scope":{"requires":"sqlite.connection","description":"Requires an open SQLite connection created by [sqlite.connect]"},"output":{"mode":"Value","description":"Resolves to the scalar result of the SQL statement"}}},{"name":"sqlite.select","description":"Executes a SELECT query on the current SQLite connection","signature":{"input":{"kind":"sql-select","description":"SQL query to execute","required":true,"mode":"ValueOrExpression"},"children":{"max":{"type":"long","description":"Maximum number of rows to return; omitted or -1 returns all rows","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"-1","role":"Option","projection":"Value"},"multiple-result-sets":{"type":"bool","description":"Whether multiple SELECT statements in the SQL input should be returned as separate child result containers","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false","role":"Option","projection":"Value"},"*":{"type":"object","kind":"sql-parameter-value,text,number,boolean,date,guid,content,value","description":"SQL parameter value; child name is used as the parameter name referenced by the SQL statement","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Arguments","projection":"Value"}},"scope":{"requires":"sqlite.connection","description":"Requires an open SQLite connection created by [sqlite.connect]"},"output":{"mode":"Lambda","kind":"node-list","element-kind":"row-object,lambda-tree","description":"Returns one child node per row returned by the SELECT query","children":[{"type":"lambda","kind":"row","description":"One row returned by the read; child nodes carry the selected column values, with each child's name being the column name or alias from the SELECT statement","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"StructuredObject","projection":"StructuredTree","children":{"*":{"type":"string","kind":"column-value","description":"Column value; child name is the column name (or alias) declared in the read","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"Option","projection":"Value"}}}]}}},{"name":"sqlite.transaction.commit","description":"Commits the current SQLite transaction","signature":{"scope":{"requires":"sqlite.transaction","description":"Requires an active SQLite transaction created by [sqlite.transaction.create]"}}},{"name":"sqlite.transaction.create","description":"Creates a SQLite transaction","signature":{"scope":{"provides":"sqlite.transaction","requires":"sqlite.connection","description":"Requires an open SQLite connection created by [sqlite.connect]"}}},{"name":"sqlite.transaction.rollback","description":"Rolls back the current SQLite transaction","signature":{"scope":{"requires":"sqlite.transaction","description":"Requires an active SQLite transaction created by [sqlite.transaction.create]"}}},{"name":"sqlite.update","description":"Updates rows through the current SQLite connection; use [where] to constrain affected rows","signature":{"children":{"generate":{"type":"bool","description":"Whether to only generate SQL and parameter nodes instead of executing it","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false"},"table":{"type":"string","kind":"table-name","description":"Table name to use in the SQL statement","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne"},"values":{"type":"lambda","description":"Column values to insert or update","required":true,"mode":"DynamicNamedValues","cardinality":"ExactlyOne","children":{"*":{"type":"object","kind":"sql-column-value,text,number,boolean,date,guid,content,value","description":"Column name and value","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore"}}},"where":{"type":"lambda","kind":"sql-predicate-root","description":"Required boolean predicate tree — destructive SQL must constrain affected rows","required":true,"mode":"StructuredArguments","cardinality":"ExactlyOne","constraints":[{"description":"Where clause renders one top-level boolean group","values":["and","or"],"kind":"ExactlyOneOf"}],"children":{"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]},"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]},"and":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean AND group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}},"or":{"type":"lambda","kind":"sql-predicate-group","description":"Boolean OR group","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrMore","children":{"*":{"type":"object","kind":"sql-column-condition,text,number,boolean,date,guid,content,value","description":"Column condition; suffix the name with .eq, .neq, .gt, .gte, .lt, .lte, .like, .ilike, or .in to select an operator","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","constraints":[{"description":"Value-list children apply only to the .in operator; other operators take a single-value RHS","values":["."],"kind":"Excludes"},{"description":"The .in operator is a valueless container; its admissible values live entirely in the `.:` child list","values":["input"],"kind":"Excludes"}],"children":[{"type":"object","kind":"text,number,boolean,date,guid,content,value","description":"Value item used by operators such as .in","required":false,"mode":"ValueOrExpression","cardinality":"TwoOrMore"}]}}}}}}}},"scope":{"requires":"sqlite.connection","description":"Requires an open SQLite connection created by [sqlite.connect]"},"output":{"mode":"Value","kind":"integer,number","description":"Resolves to the number of rows affected"}}},{"name":"strings.builder","description":"Creates a string builder scope for [strings.builder.append]","signature":{"children":{"*":{"type":"lambda","description":"Executable child slot evaluated while the StringBuilder is scoped; use [strings.builder.append] to append text","required":false,"mode":"ExecutableLambda","cardinality":"ZeroOrMore","role":"ExecutableBody","evaluation":"EvalSelf","projection":"Self"}},"scope":{"provides":"strings.builder","description":"Creates a string builder scope for [strings.builder.append]"},"output":{"mode":"Value","kind":"text","description":"Resolves to the text appended inside the builder scope"}}},{"name":"strings.builder.append","description":"Appends text to the current [strings.builder] scope","signature":{"input":{"kind":"text","description":"Text to append to the current [strings.builder] scope","required":true,"mode":"ValueOrExpression"},"scope":{"requires":"strings.builder","description":"Requires an active string builder scope created by [strings.builder]"}}},{"name":"strings.byte-count","description":"Returns the UTF-8 byte length of a string; useful for size checks where multi-byte characters matter","signature":{"input":{"kind":"text","description":"Text to measure","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Value","kind":"integer,number","description":"Resolves to the number of bytes in the string"}}},{"name":"strings.capitalize","description":"Returns the input with its first character upper-cased; remainder is left untouched","signature":{"input":{"kind":"text","description":"Text to capitalize","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Value","kind":"text","description":"Resolves to the capitalized string"}}},{"name":"strings.concat","description":"Concatenates strings","signature":{"input":{"kind":"string-list","description":"Expression yielding the text segments to concatenate when not supplied as child nodes","required":false,"mode":"Expression"},"children":[{"type":"string","kind":"text","description":"Text segment to concatenate","required":false,"mode":"ExecutableLambda","cardinality":"ZeroOrMore","role":"SourceExpression","evaluation":"EvalSelf","projection":"Value"}],"constraints":[{"description":"Provide either expression input or child text segments","values":["input","."],"kind":"ExactlyOneOf"}],"output":{"mode":"Value","kind":"text","description":"Resolves to the concatenated string"}}},{"name":"strings.contains","description":"Returns true if a string contains the specified text","signature":{"input":{"kind":"text","description":"Text to search","required":true,"mode":"ValueOrExpression"},"children":[{"type":"string","kind":"text","description":"String argument","required":true,"mode":"ExecutableLambda","cardinality":"ExactlyOne","role":"SourceExpression","evaluation":"EvalSelf","projection":"Value"}],"output":{"mode":"Value","kind":"boolean","description":"Returns true if the string contains the supplied text"}}},{"name":"strings.ends-with","description":"Returns true if a string ends with the specified text","signature":{"input":{"kind":"text","description":"Text to inspect","required":true,"mode":"ValueOrExpression"},"children":[{"type":"string","kind":"text","description":"String argument","required":true,"mode":"ExecutableLambda","cardinality":"ExactlyOne","role":"SourceExpression","evaluation":"EvalSelf","projection":"Value"}],"output":{"mode":"Value","kind":"boolean","description":"Returns true if the string ends with the supplied text"}}},{"name":"strings.html-decode","description":"HTML decodes the specified string","signature":{"input":{"kind":"html-encoded","description":"HTML encoded text to decode","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Value","kind":"html-unencoded,text","description":"Resolves to the decoded HTML markup"}}},{"name":"strings.html-encode","description":"HTML encodes the specified string","signature":{"input":{"kind":"html-unencoded,text","description":"Non-encoded HTML text to encode","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Value","kind":"html-encoded,text","description":"Resolves to the HTML-encoded string"}}},{"name":"strings.join","description":"Concatenates the values yielded by the expression, inserting the separator between adjacent items","signature":{"input":{"kind":"string-list","description":"Expression yielding the values to join","required":true,"mode":"Expression"},"children":[{"type":"string","kind":"string-separator","description":"Separator to place between joined values","required":false,"mode":"ExecutableLambda","cardinality":"ZeroOrOne","role":"SourceExpression","evaluation":"EvalSelf","projection":"Value"}],"output":{"mode":"Value","kind":"text","description":"Resolves to the joined string"}}},{"name":"strings.length","description":"Returns the length of a string","signature":{"input":{"kind":"text","description":"Text to measure","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Value","kind":"integer,number","description":"Resolves to the number of characters in the string"}}},{"name":"strings.matches","description":"Returns regular expression matches, bounded by the execution deadline when set","signature":{"input":{"kind":"text","description":"Text to match against the regular expression","required":true,"mode":"ValueOrExpression"},"children":[{"type":"string","kind":"regex-pattern","description":"Regular expression pattern to match against the source string","required":true,"mode":"ExecutableLambda","cardinality":"ExactlyOne","role":"SourceExpression","evaluation":"EvalSelf","projection":"Value"}],"output":{"mode":"Lambda","kind":"regex-match-list,string-list","element-kind":"regex-match,text","description":"Returns one child node per regular expression match"}}},{"name":"strings.mixin","description":"Applies string interpolation from child expressions","signature":{"input":{"kind":"mixin-template,text","description":"Template text to interpolate","required":true,"mode":"ValueOrExpression"},"children":{"strip":{"type":"bool","description":"Whether to strip embedded Hyperlambda instead of executing it","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"false","role":"Option","projection":"Value"},"*":{"type":"string","kind":"string-values","description":"Argument passed to embedded Hyperlambda snippets invoked from the template","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Arguments","projection":"ArgumentBag"}},"output":{"mode":"Value","kind":"text","description":"Resolves to the rendered string after applying codebehind and expressions"}}},{"name":"strings.regex-replace","description":"Replaces text using a regular expression, bounded by the execution deadline when set","signature":{"input":{"kind":"text","description":"Text to transform","required":true,"mode":"ValueOrExpression"},"children":[{"type":"string","kind":"regex-pattern","description":"Regular expression pattern to match","required":true,"mode":"ExecutableLambda","cardinality":"ExactlyOne","role":"SourceExpression","evaluation":"EvalSelf","projection":"Value"},{"type":"string","kind":"character-replacement","description":"Replacement text","required":true,"mode":"ExecutableLambda","cardinality":"ExactlyOne","role":"SourceExpression","evaluation":"EvalSelf","projection":"Value"}],"output":{"mode":"Value","kind":"text","description":"Resolves to the string after applying the regular-expression replacement"}}},{"name":"strings.replace","description":"Returns the text with every occurrence of [what] swapped for [with]; pass an empty [with] to strip matches","signature":{"input":{"kind":"text","description":"Text to transform","required":true,"mode":"ValueOrExpression"},"children":[{"type":"string","kind":"text","description":"Text or pattern to find","required":true,"mode":"ExecutableLambda","cardinality":"ExactlyOne","role":"SourceExpression","evaluation":"EvalSelf","projection":"Value"},{"type":"string","kind":"text","description":"Replacement text","required":false,"mode":"ExecutableLambda","cardinality":"ZeroOrOne","role":"SourceExpression","evaluation":"EvalSelf","projection":"Value"}],"output":{"mode":"Value","kind":"text","description":"Resolves to the string after replacing the specified substring"}}},{"name":"strings.replace-not-of","description":"Replaces characters not found in the supplied allow-list","signature":{"input":{"kind":"text","description":"Text to transform","required":true,"mode":"ValueOrExpression"},"children":[{"type":"string","kind":"character-set","description":"Allowed characters; any character not in this set is replaced","required":true,"mode":"ExecutableLambda","cardinality":"ExactlyOne","role":"SourceExpression","evaluation":"EvalSelf","projection":"Value"},{"type":"string","kind":"character-replacement","description":"Replacement text for non-matching characters","required":true,"mode":"ExecutableLambda","cardinality":"ExactlyOne","role":"SourceExpression","evaluation":"EvalSelf","projection":"Value"}],"output":{"mode":"Value","kind":"text","description":"Resolves to the string after replacing characters not found in the allowed set"}}},{"name":"strings.split","description":"Splits a string at every occurrence of the separator and returns each segment as an unnamed child node","signature":{"input":{"kind":"text","description":"Text to split","required":true,"mode":"ValueOrExpression"},"children":[{"type":"string","kind":"string-separator","description":"Separator to split on","required":true,"mode":"ExecutableLambda","cardinality":"ExactlyOne","role":"SourceExpression","evaluation":"EvalSelf","projection":"Value"}],"output":{"mode":"Lambda","kind":"string-list","element-kind":"text","description":"Returns one child node per split string item"}}},{"name":"strings.starts-with","description":"Returns true if a string starts with the specified text","signature":{"input":{"kind":"text","description":"Text to inspect","required":true,"mode":"ValueOrExpression"},"children":[{"type":"string","kind":"text","description":"String argument","required":true,"mode":"ExecutableLambda","cardinality":"ExactlyOne","role":"SourceExpression","evaluation":"EvalSelf","projection":"Value"}],"output":{"mode":"Value","kind":"boolean","description":"Returns true if the string starts with the supplied text"}}},{"name":"strings.substring","description":"Extracts a portion of a string starting at the given offset and optional length; out-of-range bounds throw","signature":{"input":{"kind":"text","description":"Text to transform","required":true,"mode":"ValueOrExpression"},"children":[{"type":"int","kind":"substring-arg","description":"Start index","required":true,"mode":"ExecutableLambda","cardinality":"ExactlyOne","role":"SourceExpression","evaluation":"EvalSelf","projection":"Value"},{"type":"int","kind":"substring-arg","description":"Optional length","required":false,"mode":"ExecutableLambda","cardinality":"ZeroOrOne","role":"SourceExpression","evaluation":"EvalSelf","projection":"Value"}],"output":{"mode":"Value","kind":"text","description":"Resolves to the extracted substring"}}},{"name":"strings.to-lower","description":"Transforms input text to lowercase","signature":{"input":{"kind":"text","description":"Text to transform","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Value","kind":"text","description":"Resolves to the lowercased string"}}},{"name":"strings.to-upper","description":"Transforms input text to uppercase","signature":{"input":{"kind":"text","description":"Text to transform","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Value","kind":"text","description":"Resolves to the uppercased string"}}},{"name":"strings.trim","description":"Trims characters from both ends of the specified string","signature":{"input":{"kind":"text","description":"Text to trim","required":true,"mode":"ValueOrExpression"},"children":[{"type":"string","kind":"trim-characters","description":"Optional characters to trim","required":false,"mode":"ExecutableLambda","cardinality":"ZeroOrOne","role":"SourceExpression","evaluation":"EvalSelf","projection":"Value"}],"output":{"mode":"Value","kind":"text","description":"Resolves to the trimmed string"}}},{"name":"strings.trim-end","description":"Trims characters from the end of the specified string","signature":{"input":{"kind":"text","description":"Text to trim","required":true,"mode":"ValueOrExpression"},"children":[{"type":"string","kind":"trim-characters","description":"Optional characters to trim","required":false,"mode":"ExecutableLambda","cardinality":"ZeroOrOne","role":"SourceExpression","evaluation":"EvalSelf","projection":"Value"}],"output":{"mode":"Value","kind":"text","description":"Resolves to the string with trailing characters removed"}}},{"name":"strings.trim-start","description":"Trims characters from the start of the specified string","signature":{"input":{"kind":"text","description":"Text to trim","required":true,"mode":"ValueOrExpression"},"children":[{"type":"string","kind":"trim-characters","description":"Optional characters to trim","required":false,"mode":"ExecutableLambda","cardinality":"ZeroOrOne","role":"SourceExpression","evaluation":"EvalSelf","projection":"Value"}],"output":{"mode":"Value","kind":"text","description":"Resolves to the string with leading characters removed"}}},{"name":"strings.url-decode","description":"URL decodes the specified string","signature":{"input":{"kind":"url-encoded","description":"Text to decode","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Value","kind":"url-component,text","description":"Resolves to the URL-decoded string"}}},{"name":"strings.url-encode","description":"URL encodes the specified string","signature":{"input":{"kind":"url-component,text","description":"Text to encode","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Value","kind":"url-encoded,text","description":"Resolves to the URL-encoded string"}}},{"name":"system.compile","description":"Compiles C# code from child nodes into an assembly","signature":{"children":{"code":{"type":"string","kind":"csharp-code","description":"C# source code to compile","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"},"assembly-name":{"type":"string","kind":"plugin-assembly-name","description":"Name of the generated assembly","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"},"references":{"type":"lambda","description":"Assembly references required by the compilation","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"StructuredObject","projection":"Children","children":[{"type":"string","kind":"assembly-reference","description":"Assembly reference","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","role":"Option","projection":"Value"}]}},"output":{"mode":"Value","kind":"plugin-assembly-bytes,binary-content","description":"Resolves to the compiled assembly bytes"}}},{"name":"system.debug","description":"Evaluates the child lambda while recording every slot invocation, returning the recording","signature":{"output":{"mode":"Lambda","kind":"recording,node-list","description":"Resolves to one node per executed slot, each with [slot], [path], [elapsed] and [lambda] being the entire lambda object after that slot was invoked"}}},{"name":"system.execute","description":"Spawns a shell process with the given command and arguments and returns its captured output","signature":{"input":{"kind":"terminal-command","description":"Command to execute","required":true,"mode":"ValueOrExpression"},"children":{"args":{"type":"string|lambda","kind":"terminal-arguments","description":"Process arguments as a shell-like string or child values","required":false,"mode":"StructuredArguments","cardinality":"ZeroOrOne","role":"Arguments","projection":"ArgumentBag","children":{"*":{"type":"string","kind":"terminal-argument","description":"Single process argument","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrMore","role":"Arguments","projection":"Value"}}},"working-directory":{"type":"string","kind":"folder-path","description":"Working directory for the process","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}},"output":{"mode":"Value","kind":"terminal-response,text","description":"Resolves to the standard output from the executed command"}}},{"name":"system.is-os","description":"Returns true if the current operating system matches the specified platform","signature":{"input":{"kind":"os-name","description":"Operating system platform name to compare against, typically WINDOWS, LINUX, OSX, or FREEBSD","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Value","kind":"boolean","description":"Returns true if the current operating system matches the supplied platform name"}}},{"name":"system.os","description":"Returns a description of the current operating system","signature":{"output":{"mode":"Value","kind":"current-os-name,text","description":"Resolves to the current operating system name"}}},{"name":"system.plugin.execute","description":"Loads, executes, and unloads a plugin in a single scope","signature":{"input":{"kind":"plugin-assembly,binary-content","description":"Plugin assembly filename or assembly bytes","required":true,"mode":"ValueOrExpression"},"children":{"*":{"type":"lambda","description":"Executable body evaluated while the plugin is loaded","required":false,"mode":"ExecutableLambda","cardinality":"ZeroOrMore","role":"ExecutableBody","evaluation":"EvalSelf","projection":"Self"}}}},{"name":"system.plugin.list","description":"Lists dynamically loaded plugins","signature":{"output":{"mode":"Lambda","kind":"plugin-assembly-list,string-list","element-kind":"plugin-assembly-name,text","description":"Returns one child node per dynamically loaded plugin name"}}},{"name":"system.plugin.load","description":"Loads a plugin assembly","signature":{"input":{"kind":"plugin-assembly,binary-content","description":"Plugin assembly filename or assembly bytes","required":true,"mode":"ValueOrExpression"}}},{"name":"system.plugin.unload","description":"Unloads a plugin assembly","signature":{"input":{"kind":"plugin-assembly-name","description":"Assembly name to unload","required":true,"mode":"ValueOrExpression"}}},{"name":"tasks.count","description":"Counts scheduled tasks","signature":{"input":{"kind":"task-id","description":"Optional filter for task IDs","required":false,"mode":"ValueOrExpression"},"output":{"mode":"Value","kind":"integer,number","description":"Resolves to the number of scheduled tasks matching the optional filter"}}},{"name":"tasks.create","description":"Saves a named task containing a Hyperlambda body that can later be scheduled or executed on demand","signature":{"input":{"kind":"task-id","description":"Task ID to create","required":true,"mode":"ValueOrExpression"},"children":{"description":{"type":"string","kind":"task-description","description":"Optional task description","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"due":{"type":"DateTime","kind":"date","description":"Optional one-time due date","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"repeats":{"type":"string","kind":"task-repeat-pattern","description":"Optional repeat pattern","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},".lambda":{"type":"lambda","description":"Task body serialized and executed later","required":true,"mode":"ExecutableLambda","cardinality":"ExactlyOne","role":"LambdaBlock","evaluation":"SerializeLambda","projection":"Children"}}}},{"name":"tasks.delete","description":"Removes a stored task by ID along with any of its scheduled future runs","signature":{"input":{"kind":"task-id","description":"Task ID to delete","required":true,"mode":"ValueOrExpression"}}},{"name":"tasks.execute","description":"Runs a stored task synchronously right now, ignoring its schedule; handy for ad-hoc invocations or testing","signature":{"input":{"kind":"task-id","description":"Task ID to execute","required":true,"mode":"ValueOrExpression"}}},{"name":"tasks.get","description":"Looks up a single stored task by ID and returns its body, description, and next due date","signature":{"input":{"kind":"task-id","description":"Task ID to retrieve","required":true,"mode":"ValueOrExpression"},"children":{"schedules":{"type":"bool","description":"Whether to include schedules for the task","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}},"output":{"mode":"Lambda","kind":"task,lambda-tree","description":"Resolves to the task fields as child nodes, optionally including a [schedules] node"}}},{"name":"tasks.list","description":"Returns all stored tasks; supports an optional ID filter and pagination via [limit] and [offset]","signature":{"input":{"kind":"task-id","description":"Optional filter for task IDs","required":false,"mode":"ValueOrExpression"},"children":{"offset":{"type":"long","description":"Number of tasks to skip","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"limit":{"type":"long","description":"Maximum number of tasks to return","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}},"output":{"mode":"Lambda","kind":"task-list,node-list","element-kind":"task,lambda-tree","description":"Returns one child node per task with its task metadata","children":[{"type":"lambda","kind":"task","description":"One task record returned by [tasks.list]","required":false,"mode":"Value","cardinality":"ZeroOrMore","role":"StructuredObject","projection":"StructuredTree","children":{"id":{"type":"string","kind":"task-id","description":"Task identifier","required":false,"mode":"Value","cardinality":"ExactlyOne","role":"Option","projection":"Value"},"created":{"type":"date","kind":"date","description":"Task creation timestamp","required":false,"mode":"Value","cardinality":"ExactlyOne","role":"Option","projection":"Value"},"description":{"type":"string","kind":"text","description":"Optional task description","required":false,"mode":"Value","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}}}]}}},{"name":"tasks.schedule","description":"Schedules a stored task for future execution; use [due] for a one-shot run or [repeats] for a recurring pattern","signature":{"input":{"kind":"task-id","description":"Task ID to schedule","required":false,"mode":"ValueOrExpression"},"children":{"due":{"type":"DateTime","kind":"date","description":"One-time due date","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"repeats":{"type":"string","kind":"task-repeat-pattern","description":"Repeat pattern","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}},"constraints":[{"description":"At least one schedule source must be supplied","values":["due","repeats"],"kind":"AtLeastOneOf"}],"output":{"mode":"Value","kind":"schedule-id,text","description":"Resolves to the created schedule ID"}}},{"name":"tasks.schedule.delete","description":"Cancels a previously-created schedule by ID, leaving the task itself intact","signature":{"input":{"kind":"schedule-id,integer,number","description":"Schedule ID to delete","required":true,"mode":"ValueOrExpression"}}},{"name":"tasks.update","description":"Overwrites a stored task's body or description without altering its existing schedules","signature":{"input":{"kind":"task-id","description":"Task ID to update","required":false,"mode":"ValueOrExpression"},"children":{"description":{"type":"string","kind":"task-description","description":"Optional task description","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"due":{"type":"DateTime","kind":"date","description":"Optional one-time due date","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"repeats":{"type":"string","kind":"task-repeat-pattern","description":"Optional repeat pattern","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},".lambda":{"type":"lambda","description":"Task body serialized and executed later","required":true,"mode":"ExecutableLambda","cardinality":"ExactlyOne","role":"LambdaBlock","evaluation":"SerializeLambda","projection":"Children"}}}},{"name":"time.format","description":"Formats a TimeSpan value","signature":{"input":{"kind":"timespan","description":"Time span to format","required":true,"mode":"ValueOrExpression"},"children":{"format":{"type":"string","kind":"date-format","description":"Format string","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"}},"output":{"mode":"Value","kind":"formatted-time,text","description":"Resolves to the formatted time string"}}},{"name":"time.total-milliseconds","description":"Returns the total milliseconds for a TimeSpan value","signature":{"input":{"kind":"timespan","description":"Time span to measure","required":true,"mode":"ValueOrExpression"},"output":{"mode":"Value","kind":"duration-ms,number","description":"Resolves to the total number of milliseconds in the supplied time span"}}},{"name":"timezone.init","description":null,"signature":null},{"name":"validators.date","description":"Validates that a date value or resolved expression result is within the allowed range, throwing if validation fails","signature":{"input":{"kind":"date","description":"Date value or expression selecting the node or nodes to validate","required":true,"mode":"ValueOrExpression"},"children":{"min":{"type":"date","kind":"validator-min-date","description":"Earliest accepted date","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"max":{"type":"date","kind":"validator-max-date","description":"Latest accepted date","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}}}},{"name":"validators.default","description":"Adds default child nodes to the nodes selected by the input expression","signature":{"input":{"kind":"lambda-object","description":"Expression selecting the node or nodes to apply defaults to","required":true,"mode":"Expression"},"children":{"*":{"type":"object","description":"Default child node cloned into each selected node when missing","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","role":"DynamicMap","projection":"StructuredTree"}}}},{"name":"validators.email","description":"Validates that a value or resolved expression result is an email address, throwing if validation fails","signature":{"input":{"kind":"email","description":"Email value or expression selecting the node or nodes to validate","required":true,"mode":"ValueOrExpression"}}},{"name":"validators.enum","description":"Validates that a value or resolved expression result is one of the allowed options, throwing if validation fails","signature":{"input":{"kind":"enum-value","description":"Value or expression selecting the node or nodes to validate","required":true,"mode":"ValueOrExpression"},"children":[{"type":"string","kind":"enum-value","description":"Accepted enum value","required":true,"mode":"ValueOrExpression","cardinality":"OneOrMore","role":"Option","projection":"Value"}]}},{"name":"validators.integer","description":"Validates that an integer value or resolved expression result is within the allowed range, throwing if validation fails","signature":{"input":{"kind":"integer,number","description":"Integer value or expression selecting the node or nodes to validate","required":true,"mode":"ValueOrExpression"},"children":{"min":{"type":"long","kind":"validator-min-integer","description":"Minimum accepted value","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"},"max":{"type":"long","kind":"validator-max-integer","description":"Maximum accepted value","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","role":"Option","projection":"Value"}}}},{"name":"validators.mandatory","description":"Validates that the input value or resolved expression result is present, throwing if validation fails","signature":{"input":{"kind":"validated-value","description":"Literal value or expression to validate as mandatory","required":true,"mode":"ValueOrExpression"}}},{"name":"validators.recaptcha","description":"Validates a reCAPTCHA response token, throwing if validation fails","signature":{"input":{"kind":"recaptcha-token","description":"reCAPTCHA response token to validate","required":true,"mode":"ValueOrExpression"},"children":{"site-key":{"type":"string","kind":"recaptcha-site-key","description":"reCAPTCHA site key","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"},"secret":{"type":"string","kind":"recaptcha-secret","description":"reCAPTCHA secret key","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"},"min":{"type":"decimal","description":"Minimum acceptable reCAPTCHA score","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"}}}},{"name":"validators.regex","description":"Validates that a value or resolved expression result matches a regular expression, bounded by the execution deadline when set, throwing if validation fails","signature":{"input":{"kind":"text","description":"Value or expression selecting the node or nodes to validate","required":true,"mode":"ValueOrExpression"},"children":{"regex":{"type":"string","kind":"regex","description":"Regular expression pattern the value must match","required":true,"mode":"ValueOrExpression","cardinality":"ExactlyOne","role":"Option","projection":"Value"}}}},{"name":"validators.string","description":"Validates that a string value or resolved expression result is within the allowed length range, throwing if validation fails","signature":{"input":{"kind":"text","description":"String value or expression selecting the node or nodes to validate","required":true,"mode":"ValueOrExpression"},"children":{"min":{"type":"int","kind":"validator-min-length","description":"Minimum accepted length","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"0","role":"Option","projection":"Value"},"max":{"type":"int","kind":"validator-max-length","description":"Maximum accepted length","required":false,"mode":"ValueOrExpression","cardinality":"ZeroOrOne","default":"int.MaxValue","role":"Option","projection":"Value"}}}},{"name":"validators.url","description":"Validates that a value or resolved expression result is a URL, throwing if validation fails","signature":{"input":{"kind":"url","description":"URL value or expression selecting the node or nodes to validate","required":true,"mode":"ValueOrExpression"}}}]
