@acpus/runtime 0.6.3 → 0.6.4
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/evaluator.d.ts +1 -2
- package/dist/evaluator.d.ts.map +1 -1
- package/dist/evaluator.js +3 -60
- package/dist/evaluator.js.map +1 -1
- package/package.json +2 -2
package/dist/evaluator.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import type { ExpressionContext } from "./types.js";
|
|
2
2
|
/**
|
|
3
3
|
* Wraps @marcbachmann/cel-js to evaluate ${{ expr }} templates and raw CEL
|
|
4
|
-
* expressions
|
|
5
|
-
* coalesce) via Environment.registerFunction().
|
|
4
|
+
* expressions with the same Acpus CEL environment used by compiler lint.
|
|
6
5
|
*/
|
|
7
6
|
export declare class ExpressionEvaluator {
|
|
8
7
|
private readonly env;
|
package/dist/evaluator.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluator.d.ts","sourceRoot":"","sources":["../src/evaluator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"evaluator.d.ts","sourceRoot":"","sources":["../src/evaluator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AA6BpD;;;GAGG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAc;IAClC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IAEtC,YAAY,OAAO,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,EAG9C;IAED;;;OAGG;IACH,MAAM,IAAI,MAAM,CAEf;IAED;;;OAGG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,GAAG,MAAM,CAKjE;IAED;;OAEG;IACH,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAIhE;IAED;;OAEG;IACH,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,GAAG,OAAO,EAAE,CAMtE;IAED;;;OAGG;IACH,OAAO,CAAC,aAAa;CA2BtB"}
|
package/dist/evaluator.js
CHANGED
|
@@ -1,31 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { EXPRESSION_PATTERN, toCelParseSource } from "@acpus/core";
|
|
3
|
-
/**
|
|
4
|
-
* Deterministically serialize a value to JSON for the `json()` expression
|
|
5
|
-
* function. Object keys are sorted so the result is stable regardless of
|
|
6
|
-
* insertion order, and BigInt (CEL integers) is rendered as a JSON number so
|
|
7
|
-
* structured step outputs round-trip cleanly into prompts and program inputs.
|
|
8
|
-
*/
|
|
9
|
-
function stableJsonStringify(value) {
|
|
10
|
-
return JSON.stringify(normalizeForJson(value));
|
|
11
|
-
}
|
|
12
|
-
function normalizeForJson(value) {
|
|
13
|
-
if (typeof value === "bigint")
|
|
14
|
-
return Number(value);
|
|
15
|
-
if (Array.isArray(value))
|
|
16
|
-
return value.map(normalizeForJson);
|
|
17
|
-
if (value instanceof Map) {
|
|
18
|
-
return normalizeForJson(Object.fromEntries(value));
|
|
19
|
-
}
|
|
20
|
-
if (value !== null && typeof value === "object") {
|
|
21
|
-
const out = {};
|
|
22
|
-
for (const key of Object.keys(value).sort()) {
|
|
23
|
-
out[key] = normalizeForJson(value[key]);
|
|
24
|
-
}
|
|
25
|
-
return out;
|
|
26
|
-
}
|
|
27
|
-
return value;
|
|
28
|
-
}
|
|
1
|
+
import { createAcpusCelEnvironment, EXPRESSION_PATTERN, toCelParseSource } from "@acpus/core";
|
|
29
2
|
function celInt(value) {
|
|
30
3
|
return Number.isSafeInteger(value) ? BigInt(value) : value;
|
|
31
4
|
}
|
|
@@ -54,44 +27,14 @@ function bindStepValue(value) {
|
|
|
54
27
|
}
|
|
55
28
|
/**
|
|
56
29
|
* Wraps @marcbachmann/cel-js to evaluate ${{ expr }} templates and raw CEL
|
|
57
|
-
* expressions
|
|
58
|
-
* coalesce) via Environment.registerFunction().
|
|
30
|
+
* expressions with the same Acpus CEL environment used by compiler lint.
|
|
59
31
|
*/
|
|
60
32
|
export class ExpressionEvaluator {
|
|
61
33
|
env;
|
|
62
34
|
nowTimestamp;
|
|
63
35
|
constructor(options) {
|
|
64
36
|
this.nowTimestamp = options?.nowTimestamp ?? new Date().toISOString();
|
|
65
|
-
this.env =
|
|
66
|
-
// Register custom functions with type signatures
|
|
67
|
-
this.env.registerFunction("now(): string", () => this.nowTimestamp);
|
|
68
|
-
// len() overloads — string and list
|
|
69
|
-
this.env.registerFunction("len(string): int", (str) => BigInt(str.length));
|
|
70
|
-
this.env.registerFunction("len(list): int", (arr) => BigInt(arr.length));
|
|
71
|
-
// startsWith
|
|
72
|
-
this.env.registerFunction("startsWith(string, string): bool", (str, prefix) => str.startsWith(prefix));
|
|
73
|
-
// matches
|
|
74
|
-
this.env.registerFunction("matches(string, string): bool", (str, pattern) => {
|
|
75
|
-
try {
|
|
76
|
-
return new RegExp(pattern).test(str);
|
|
77
|
-
}
|
|
78
|
-
catch {
|
|
79
|
-
return false;
|
|
80
|
-
}
|
|
81
|
-
});
|
|
82
|
-
// coalesce overloads — 2 and 3 args
|
|
83
|
-
this.env.registerFunction("coalesce(dyn, dyn): dyn", (a, b) => (a !== null && a !== undefined) ? a : b);
|
|
84
|
-
this.env.registerFunction("coalesce(dyn, dyn, dyn): dyn", (a, b, c) => {
|
|
85
|
-
if (a !== null && a !== undefined)
|
|
86
|
-
return a;
|
|
87
|
-
if (b !== null && b !== undefined)
|
|
88
|
-
return b;
|
|
89
|
-
return c;
|
|
90
|
-
});
|
|
91
|
-
// json() — serialize any value to a JSON string. Required for embedding
|
|
92
|
-
// structured step outputs (objects/arrays) into template strings; without
|
|
93
|
-
// it `${{ steps.x.output }}` stringifies an object to "[object Object]".
|
|
94
|
-
this.env.registerFunction("json(dyn): string", (value) => stableJsonStringify(value));
|
|
37
|
+
this.env = createAcpusCelEnvironment({ unlistedVariablesAreDyn: true, nowTimestamp: this.nowTimestamp });
|
|
95
38
|
}
|
|
96
39
|
/**
|
|
97
40
|
* The deterministic timestamp bound to now(). Exposed so callers can stamp
|
package/dist/evaluator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../src/evaluator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../src/evaluator.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@acpus/runtime",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.4",
|
|
4
4
|
"description": "Local durable runtime and Run Supervisor for Acpus workflows",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"acp",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"p-limit": "^6.2.0",
|
|
53
53
|
"proper-lockfile": "^4.1.2",
|
|
54
54
|
"yaml": "^2.9.0",
|
|
55
|
-
"@acpus/core": "0.5.
|
|
55
|
+
"@acpus/core": "0.5.4"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
58
|
"@types/node": "^22.15.30",
|