@framers/agentos 0.1.105 → 0.1.107
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/AgentOS.d.ts +80 -0
- package/dist/api/AgentOS.d.ts.map +1 -1
- package/dist/api/AgentOS.js +128 -9
- package/dist/api/AgentOS.js.map +1 -1
- package/dist/api/AgentOSOrchestrator.d.ts.map +1 -1
- package/dist/api/AgentOSOrchestrator.js +32 -4
- package/dist/api/AgentOSOrchestrator.js.map +1 -1
- package/dist/api/agent.js +1 -1
- package/dist/api/agent.js.map +1 -1
- package/dist/api/streamText.d.ts.map +1 -1
- package/dist/api/streamText.js +5 -1
- package/dist/api/streamText.js.map +1 -1
- package/dist/memory/AgentMemory.d.ts +62 -16
- package/dist/memory/AgentMemory.d.ts.map +1 -1
- package/dist/memory/AgentMemory.js +236 -28
- package/dist/memory/AgentMemory.js.map +1 -1
- package/dist/memory/consolidation/ConsolidationLoop.d.ts.map +1 -1
- package/dist/memory/consolidation/ConsolidationLoop.js +32 -9
- package/dist/memory/consolidation/ConsolidationLoop.js.map +1 -1
- package/dist/memory/extension/MemoryToolsExtension.d.ts +53 -0
- package/dist/memory/extension/MemoryToolsExtension.d.ts.map +1 -0
- package/dist/memory/extension/MemoryToolsExtension.js +54 -0
- package/dist/memory/extension/MemoryToolsExtension.js.map +1 -0
- package/dist/memory/extension/StandaloneMemoryExtension.d.ts +27 -0
- package/dist/memory/extension/StandaloneMemoryExtension.d.ts.map +1 -0
- package/dist/memory/extension/StandaloneMemoryExtension.js +122 -0
- package/dist/memory/extension/StandaloneMemoryExtension.js.map +1 -0
- package/dist/memory/facade/Memory.d.ts +45 -0
- package/dist/memory/facade/Memory.d.ts.map +1 -1
- package/dist/memory/facade/Memory.js +296 -137
- package/dist/memory/facade/Memory.js.map +1 -1
- package/dist/memory/facade/types.d.ts +12 -8
- package/dist/memory/facade/types.d.ts.map +1 -1
- package/dist/memory/feedback/RetrievalFeedbackSignal.d.ts +14 -5
- package/dist/memory/feedback/RetrievalFeedbackSignal.d.ts.map +1 -1
- package/dist/memory/feedback/RetrievalFeedbackSignal.js +131 -20
- package/dist/memory/feedback/RetrievalFeedbackSignal.js.map +1 -1
- package/dist/memory/index.d.ts +7 -1
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +5 -1
- package/dist/memory/index.js.map +1 -1
- package/dist/memory/integration/StandaloneMemoryBridge.d.ts +55 -0
- package/dist/memory/integration/StandaloneMemoryBridge.d.ts.map +1 -0
- package/dist/memory/integration/StandaloneMemoryBridge.js +398 -0
- package/dist/memory/integration/StandaloneMemoryBridge.js.map +1 -0
- package/dist/memory/io/CsvImporter.d.ts +51 -0
- package/dist/memory/io/CsvImporter.d.ts.map +1 -0
- package/dist/memory/io/CsvImporter.js +229 -0
- package/dist/memory/io/CsvImporter.js.map +1 -0
- package/dist/memory/io/index.d.ts +2 -0
- package/dist/memory/io/index.d.ts.map +1 -1
- package/dist/memory/io/index.js +2 -0
- package/dist/memory/io/index.js.map +1 -1
- package/dist/memory/store/tracePersistence.d.ts +68 -0
- package/dist/memory/store/tracePersistence.d.ts.map +1 -0
- package/dist/memory/store/tracePersistence.js +159 -0
- package/dist/memory/store/tracePersistence.js.map +1 -0
- package/dist/memory/tools/MemoryAddTool.d.ts.map +1 -1
- package/dist/memory/tools/MemoryAddTool.js +18 -6
- package/dist/memory/tools/MemoryAddTool.js.map +1 -1
- package/dist/memory/tools/MemoryMergeTool.d.ts.map +1 -1
- package/dist/memory/tools/MemoryMergeTool.js +41 -13
- package/dist/memory/tools/MemoryMergeTool.js.map +1 -1
- package/dist/memory/tools/MemorySearchTool.d.ts.map +1 -1
- package/dist/memory/tools/MemorySearchTool.js +24 -4
- package/dist/memory/tools/MemorySearchTool.js.map +1 -1
- package/dist/memory/tools/MemoryUpdateTool.d.ts.map +1 -1
- package/dist/memory/tools/MemoryUpdateTool.js +38 -16
- package/dist/memory/tools/MemoryUpdateTool.js.map +1 -1
- package/dist/orchestration/builders/nodes.d.ts +6 -0
- package/dist/orchestration/builders/nodes.d.ts.map +1 -1
- package/dist/orchestration/builders/nodes.js +13 -2
- package/dist/orchestration/builders/nodes.js.map +1 -1
- package/dist/orchestration/runtime/GraphRuntime.d.ts.map +1 -1
- package/dist/orchestration/runtime/GraphRuntime.js +15 -34
- package/dist/orchestration/runtime/GraphRuntime.js.map +1 -1
- package/dist/orchestration/runtime/NodeExecutor.d.ts.map +1 -1
- package/dist/orchestration/runtime/NodeExecutor.js +2 -16
- package/dist/orchestration/runtime/NodeExecutor.js.map +1 -1
- package/dist/orchestration/runtime/StateManager.d.ts.map +1 -1
- package/dist/orchestration/runtime/StateManager.js +15 -3
- package/dist/orchestration/runtime/StateManager.js.map +1 -1
- package/dist/orchestration/runtime/safeExpressionEvaluator.d.ts +38 -0
- package/dist/orchestration/runtime/safeExpressionEvaluator.d.ts.map +1 -0
- package/dist/orchestration/runtime/safeExpressionEvaluator.js +184 -0
- package/dist/orchestration/runtime/safeExpressionEvaluator.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeExecutor.js","sourceRoot":"","sources":["../../../src/orchestration/runtime/NodeExecutor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;
|
|
1
|
+
{"version":3,"file":"NodeExecutor.js","sourceRoot":"","sources":["../../../src/orchestration/runtime/NodeExecutor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StateManager.d.ts","sourceRoot":"","sources":["../../../src/orchestration/runtime/StateManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EACV,aAAa,EAGb,UAAU,EAGX,MAAM,gBAAgB,CAAC;AAMxB;;;;;;;;;;;;;;GAcG;AACH,qBAAa,YAAY;IAMX,OAAO,CAAC,QAAQ,CAAC,QAAQ;IALrC;;;;OAIG;gBAC0B,QAAQ,EAAE,aAAa;IAMpD;;;;;;;;OAQG;IACH,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU;IAatC;;;;;;;;;;;;OAYG;IACH,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU;IAmB5E;;;;;;;;;;OAUG;IACH,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU;IAO9E;;;;;;;;OAQG;IACH,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU;IAS9D;;;;;;;;;;;;;;;OAeG;IACH,qBAAqB,CAAC,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,UAAU;IAyBpF;;;;;;;OAOG;IACH,OAAO,CAAC,YAAY;
|
|
1
|
+
{"version":3,"file":"StateManager.d.ts","sourceRoot":"","sources":["../../../src/orchestration/runtime/StateManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EACV,aAAa,EAGb,UAAU,EAGX,MAAM,gBAAgB,CAAC;AAMxB;;;;;;;;;;;;;;GAcG;AACH,qBAAa,YAAY;IAMX,OAAO,CAAC,QAAQ,CAAC,QAAQ;IALrC;;;;OAIG;gBAC0B,QAAQ,EAAE,aAAa;IAMpD;;;;;;;;OAQG;IACH,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU;IAatC;;;;;;;;;;;;OAYG;IACH,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU;IAmB5E;;;;;;;;;;OAUG;IACH,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU;IAO9E;;;;;;;;OAQG;IACH,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU;IAS9D;;;;;;;;;;;;;;;OAeG;IACH,qBAAqB,CAAC,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,UAAU;IAyBpF;;;;;;;OAOG;IACH,OAAO,CAAC,YAAY;IAiEpB;;OAEG;IACH,OAAO,CAAC,eAAe;IASvB;;OAEG;IACH,OAAO,CAAC,gBAAgB;CAYzB"}
|
|
@@ -203,9 +203,21 @@ export class StateManager {
|
|
|
203
203
|
case 'first':
|
|
204
204
|
// Preserve the first value ever written; ignore subsequent writes.
|
|
205
205
|
return existing;
|
|
206
|
-
case 'longest':
|
|
207
|
-
// Keep whichever operand has the greater
|
|
208
|
-
|
|
206
|
+
case 'longest': {
|
|
207
|
+
// Keep whichever operand has the greater length.
|
|
208
|
+
// Arrays use .length, strings use .length, objects use Object.keys().length,
|
|
209
|
+
// and primitives fall back to String(val).length.
|
|
210
|
+
const lengthOf = (val) => {
|
|
211
|
+
if (Array.isArray(val))
|
|
212
|
+
return val.length;
|
|
213
|
+
if (typeof val === 'string')
|
|
214
|
+
return val.length;
|
|
215
|
+
if (typeof val === 'object' && val !== null)
|
|
216
|
+
return Object.keys(val).length;
|
|
217
|
+
return String(val).length;
|
|
218
|
+
};
|
|
219
|
+
return lengthOf(existing) >= lengthOf(incoming) ? existing : incoming;
|
|
220
|
+
}
|
|
209
221
|
default: {
|
|
210
222
|
// Exhaustiveness guard — should be unreachable at runtime if types are respected.
|
|
211
223
|
const _exhaustive = reducer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StateManager.js","sourceRoot":"","sources":["../../../src/orchestration/runtime/StateManager.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"StateManager.js","sourceRoot":"","sources":["../../../src/orchestration/runtime/StateManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Safe expression evaluator for graph routing conditions.
|
|
3
|
+
* @module orchestration/runtime/safeExpressionEvaluator
|
|
4
|
+
*
|
|
5
|
+
* Replaces the previous `new Function()` approach that was vulnerable to
|
|
6
|
+
* arbitrary code injection. This evaluator resolves partition dot-path
|
|
7
|
+
* references against graph state and supports only simple comparisons
|
|
8
|
+
* (`===`, `!==`, `==`, `!=`, `>`, `<`, `>=`, `<=`) and boolean connectives
|
|
9
|
+
* (`&&`, `||`). No arbitrary JS execution is possible.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* const state = { scratch: { decision: 'yes' }, input: { count: 5 } };
|
|
14
|
+
* safeEvaluateExpression('scratch.decision', state); // → 'yes'
|
|
15
|
+
* safeEvaluateExpression('scratch.decision === "yes"', state); // → 'true'
|
|
16
|
+
* safeEvaluateExpression('input.count > 3', state); // → 'true'
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
import type { GraphState } from '../ir/types.js';
|
|
20
|
+
/**
|
|
21
|
+
* Safely evaluate a graph routing expression against state.
|
|
22
|
+
*
|
|
23
|
+
* Supports:
|
|
24
|
+
* - Partition references: `scratch.foo.bar`, `input.x`, `artifacts.result`
|
|
25
|
+
* - Comparisons: `===`, `!==`, `==`, `!=`, `>`, `<`, `>=`, `<=`
|
|
26
|
+
* - Boolean connectives: `&&`, `||`
|
|
27
|
+
* - String/number/boolean/null literals
|
|
28
|
+
*
|
|
29
|
+
* Does NOT support:
|
|
30
|
+
* - Function calls, property access on resolved values, `new`, `delete`, etc.
|
|
31
|
+
* - Nested parentheses (evaluated left-to-right with `||` then `&&` precedence)
|
|
32
|
+
*
|
|
33
|
+
* @param expr - The DSL expression string from a graph condition.
|
|
34
|
+
* @param state - Current graph state whose partitions are accessible.
|
|
35
|
+
* @returns The resolved value as a string. Returns `'false'` on any error.
|
|
36
|
+
*/
|
|
37
|
+
export declare function safeEvaluateExpression(expr: string, state: Partial<GraphState>): string;
|
|
38
|
+
//# sourceMappingURL=safeExpressionEvaluator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safeExpressionEvaluator.d.ts","sourceRoot":"","sources":["../../../src/orchestration/runtime/safeExpressionEvaluator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AA2IjD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,MAAM,CAyBvF"}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Safe expression evaluator for graph routing conditions.
|
|
3
|
+
* @module orchestration/runtime/safeExpressionEvaluator
|
|
4
|
+
*
|
|
5
|
+
* Replaces the previous `new Function()` approach that was vulnerable to
|
|
6
|
+
* arbitrary code injection. This evaluator resolves partition dot-path
|
|
7
|
+
* references against graph state and supports only simple comparisons
|
|
8
|
+
* (`===`, `!==`, `==`, `!=`, `>`, `<`, `>=`, `<=`) and boolean connectives
|
|
9
|
+
* (`&&`, `||`). No arbitrary JS execution is possible.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* const state = { scratch: { decision: 'yes' }, input: { count: 5 } };
|
|
14
|
+
* safeEvaluateExpression('scratch.decision', state); // → 'yes'
|
|
15
|
+
* safeEvaluateExpression('scratch.decision === "yes"', state); // → 'true'
|
|
16
|
+
* safeEvaluateExpression('input.count > 3', state); // → 'true'
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
/** Allowed partitions that can be referenced in expressions. */
|
|
20
|
+
const ALLOWED_PARTITIONS = new Set(['scratch', 'input', 'artifacts', 'memory', 'diagnostics']);
|
|
21
|
+
/** Pattern matching `partition.path.to.value` references. */
|
|
22
|
+
const PARTITION_REF_PATTERN = /\b(scratch|input|artifacts|memory|diagnostics)(?:\.(\w+(?:\.\w+)*))?/g;
|
|
23
|
+
/**
|
|
24
|
+
* Resolve a dot-separated path against a nested object.
|
|
25
|
+
*
|
|
26
|
+
* @param root - The root object to traverse.
|
|
27
|
+
* @param path - Dot-separated field path (e.g. `'foo.bar.baz'`).
|
|
28
|
+
* @returns The resolved value, or `undefined` if any segment is missing.
|
|
29
|
+
*/
|
|
30
|
+
function resolvePath(root, path) {
|
|
31
|
+
let current = root;
|
|
32
|
+
for (const key of path.split('.')) {
|
|
33
|
+
if (current == null || typeof current !== 'object')
|
|
34
|
+
return undefined;
|
|
35
|
+
current = current[key];
|
|
36
|
+
}
|
|
37
|
+
return current;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Resolve all partition references in an expression to their actual values.
|
|
41
|
+
*
|
|
42
|
+
* @param expr - The expression string with partition references.
|
|
43
|
+
* @param state - Current graph state.
|
|
44
|
+
* @returns A map of original references to their resolved values.
|
|
45
|
+
*/
|
|
46
|
+
function resolveAllRefs(expr, state) {
|
|
47
|
+
const refs = new Map();
|
|
48
|
+
let match;
|
|
49
|
+
const pattern = new RegExp(PARTITION_REF_PATTERN.source, 'g');
|
|
50
|
+
while ((match = pattern.exec(expr)) !== null) {
|
|
51
|
+
const [fullMatch, partition, path] = match;
|
|
52
|
+
if (!ALLOWED_PARTITIONS.has(partition))
|
|
53
|
+
continue;
|
|
54
|
+
const partitionObj = state[partition];
|
|
55
|
+
const value = path ? resolvePath(partitionObj, path) : partitionObj;
|
|
56
|
+
refs.set(fullMatch, value);
|
|
57
|
+
}
|
|
58
|
+
return refs;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Parse a quoted string literal from an expression fragment.
|
|
62
|
+
* Supports both single and double quotes.
|
|
63
|
+
*
|
|
64
|
+
* @param s - The string fragment to parse.
|
|
65
|
+
* @returns The unquoted string value, or null if not a string literal.
|
|
66
|
+
*/
|
|
67
|
+
function parseStringLiteral(s) {
|
|
68
|
+
const trimmed = s.trim();
|
|
69
|
+
if ((trimmed.startsWith('"') && trimmed.endsWith('"')) ||
|
|
70
|
+
(trimmed.startsWith("'") && trimmed.endsWith("'"))) {
|
|
71
|
+
return trimmed.slice(1, -1);
|
|
72
|
+
}
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Parse a value token from an expression (after partition references are resolved).
|
|
77
|
+
*
|
|
78
|
+
* @param token - The token string.
|
|
79
|
+
* @param refs - Resolved partition references.
|
|
80
|
+
* @returns The parsed value.
|
|
81
|
+
*/
|
|
82
|
+
function parseToken(token, refs) {
|
|
83
|
+
const trimmed = token.trim();
|
|
84
|
+
// Check if this token is a resolved partition reference
|
|
85
|
+
if (refs.has(trimmed))
|
|
86
|
+
return refs.get(trimmed);
|
|
87
|
+
// String literal
|
|
88
|
+
const str = parseStringLiteral(trimmed);
|
|
89
|
+
if (str !== null)
|
|
90
|
+
return str;
|
|
91
|
+
// Boolean literals
|
|
92
|
+
if (trimmed === 'true')
|
|
93
|
+
return true;
|
|
94
|
+
if (trimmed === 'false')
|
|
95
|
+
return false;
|
|
96
|
+
if (trimmed === 'null')
|
|
97
|
+
return null;
|
|
98
|
+
if (trimmed === 'undefined')
|
|
99
|
+
return undefined;
|
|
100
|
+
// Number literal
|
|
101
|
+
const num = Number(trimmed);
|
|
102
|
+
if (!isNaN(num) && trimmed !== '')
|
|
103
|
+
return num;
|
|
104
|
+
// Fallback: return as string (e.g. route names)
|
|
105
|
+
return trimmed;
|
|
106
|
+
}
|
|
107
|
+
const COMPARISON_OPS = ['===', '!==', '==', '!=', '>=', '<=', '>', '<'];
|
|
108
|
+
/**
|
|
109
|
+
* Evaluate a single comparison expression (no boolean connectives).
|
|
110
|
+
*
|
|
111
|
+
* @param expr - Expression like `'scratch.x === "yes"'` or just `'scratch.x'`.
|
|
112
|
+
* @param refs - Resolved partition references.
|
|
113
|
+
* @returns The result as a primitive value.
|
|
114
|
+
*/
|
|
115
|
+
function evaluateSingleComparison(expr, refs) {
|
|
116
|
+
const trimmed = expr.trim();
|
|
117
|
+
// Try each comparison operator (longest first to avoid partial matches)
|
|
118
|
+
for (const op of COMPARISON_OPS) {
|
|
119
|
+
const idx = trimmed.indexOf(op);
|
|
120
|
+
if (idx === -1)
|
|
121
|
+
continue;
|
|
122
|
+
// Make sure it's not a substring of a longer operator
|
|
123
|
+
const before = trimmed.slice(0, idx);
|
|
124
|
+
const after = trimmed.slice(idx + op.length);
|
|
125
|
+
const left = parseToken(before, refs);
|
|
126
|
+
const right = parseToken(after, refs);
|
|
127
|
+
switch (op) {
|
|
128
|
+
case '===': return left === right;
|
|
129
|
+
case '!==': return left !== right;
|
|
130
|
+
case '==': return left == right; // eslint-disable-line eqeqeq
|
|
131
|
+
case '!=': return left != right; // eslint-disable-line eqeqeq
|
|
132
|
+
case '>=': return Number(left) >= Number(right);
|
|
133
|
+
case '<=': return Number(left) <= Number(right);
|
|
134
|
+
case '>': return Number(left) > Number(right);
|
|
135
|
+
case '<': return Number(left) < Number(right);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
// No comparison operator found — just resolve the value
|
|
139
|
+
return parseToken(trimmed, refs);
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Safely evaluate a graph routing expression against state.
|
|
143
|
+
*
|
|
144
|
+
* Supports:
|
|
145
|
+
* - Partition references: `scratch.foo.bar`, `input.x`, `artifacts.result`
|
|
146
|
+
* - Comparisons: `===`, `!==`, `==`, `!=`, `>`, `<`, `>=`, `<=`
|
|
147
|
+
* - Boolean connectives: `&&`, `||`
|
|
148
|
+
* - String/number/boolean/null literals
|
|
149
|
+
*
|
|
150
|
+
* Does NOT support:
|
|
151
|
+
* - Function calls, property access on resolved values, `new`, `delete`, etc.
|
|
152
|
+
* - Nested parentheses (evaluated left-to-right with `||` then `&&` precedence)
|
|
153
|
+
*
|
|
154
|
+
* @param expr - The DSL expression string from a graph condition.
|
|
155
|
+
* @param state - Current graph state whose partitions are accessible.
|
|
156
|
+
* @returns The resolved value as a string. Returns `'false'` on any error.
|
|
157
|
+
*/
|
|
158
|
+
export function safeEvaluateExpression(expr, state) {
|
|
159
|
+
try {
|
|
160
|
+
const refs = resolveAllRefs(expr, state);
|
|
161
|
+
// Split on `||` first (lower precedence), then `&&` (higher precedence)
|
|
162
|
+
const orParts = expr.split('||').map(s => s.trim());
|
|
163
|
+
for (const orPart of orParts) {
|
|
164
|
+
const andParts = orPart.split('&&').map(s => s.trim());
|
|
165
|
+
const allTrue = andParts.every(part => {
|
|
166
|
+
const result = evaluateSingleComparison(part, refs);
|
|
167
|
+
return Boolean(result);
|
|
168
|
+
});
|
|
169
|
+
if (allTrue) {
|
|
170
|
+
// If the expression was a simple value (no operators), return the resolved value
|
|
171
|
+
if (orParts.length === 1 && andParts.length === 1) {
|
|
172
|
+
const result = evaluateSingleComparison(expr, refs);
|
|
173
|
+
return String(result ?? 'false');
|
|
174
|
+
}
|
|
175
|
+
return 'true';
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
return 'false';
|
|
179
|
+
}
|
|
180
|
+
catch {
|
|
181
|
+
return 'false';
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
//# sourceMappingURL=safeExpressionEvaluator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safeExpressionEvaluator.js","sourceRoot":"","sources":["../../../src/orchestration/runtime/safeExpressionEvaluator.ts"],"names":[],"mappings":"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"}
|