Category: Math & Compare
Evaluates a safe mathematical/logical expression.
| ID | Label | Type | Unwired default |
|---|---|---|---|
x |
X | number | 1 |
y |
Y | number | 1 |
enabled |
Enabled | boolean | true |
| ID | Label | Type | Default |
|---|---|---|---|
out |
Result | any | undefined |
{
"expression": "x * 2 + y"
}This calls the production passive computation with the declared input/config defaults. Cached state, trigger execution and project wiring are separate.
{
"kind": "passive-default-probe",
"outputs": {
"out": 3
}
}Offline production passive computation with the same declared defaults; no device or model service is invoked.
{
"kind": "passive-default-probe",
"outputs": {
"out": 3
}
}Extracted production branches; helper calls and project execution context are defined in the referenced modules.
src/lib/execution-helpers.ts:165
case "expressionNode": {
const expr = config.expression ?? "x * 2 + y";
// Ports display as X/Y on the node but are named x/y — accept either case.
const exprCtx: Record<string, any> = {};
for (const key of Object.keys(inputs)) {
exprCtx[key] = inputs[key];
exprCtx[key.toUpperCase()] = inputs[key];
}
outputs.out = safeEvaluate(expr, exprCtx);
break;
}- Default passive probe is an observation, not proof of all configurations, trigger behavior, or correctness. See ../NODE_RUNTIME_AUDIT.md and ../AUDIT_VALIDATION.md for test evidence.
- Enabled=false uses the runtime bypass mapping; bypass output can differ from the normal declared output type.
Source fingerprint: 7e9d192bd3a559a7c50253919867601ef02c311d61e859f7afb4cadcfa508430. Rebuild with npm run docs:index.