@prismatic-io/lux 0.0.1 → 0.0.2-preview.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/lib/answerers/terminal/index.js +1 -1
- package/lib/answerers/terminal/index.js.map +1 -1
- package/lib/assertions/authoring.d.ts +14 -0
- package/lib/assertions/authoring.d.ts.map +1 -0
- package/lib/assertions/authoring.js +3 -0
- package/lib/assertions/authoring.js.map +1 -0
- package/lib/assertions/core/helpers.d.ts +2 -7
- package/lib/assertions/core/helpers.d.ts.map +1 -1
- package/lib/assertions/core/helpers.js +2 -6
- package/lib/assertions/core/helpers.js.map +1 -1
- package/lib/authoring.d.ts +1 -0
- package/lib/authoring.d.ts.map +1 -1
- package/lib/authoring.js +1 -0
- package/lib/authoring.js.map +1 -1
- package/lib/cli/program.d.ts.map +1 -1
- package/lib/cli/program.js +6 -2
- package/lib/cli/program.js.map +1 -1
- package/lib/cli/render/reporter.d.ts.map +1 -1
- package/lib/cli/render/reporter.js +16 -3
- package/lib/cli/render/reporter.js.map +1 -1
- package/lib/cli/run-options.d.ts +1 -0
- package/lib/cli/run-options.d.ts.map +1 -1
- package/lib/cli/run-options.js.map +1 -1
- package/lib/core/artifact-evidence.d.ts +8 -0
- package/lib/core/artifact-evidence.d.ts.map +1 -1
- package/lib/core/artifact-evidence.js +36 -4
- package/lib/core/artifact-evidence.js.map +1 -1
- package/lib/core/assertion.d.ts +19 -9
- package/lib/core/assertion.d.ts.map +1 -1
- package/lib/core/assertion.js +26 -0
- package/lib/core/assertion.js.map +1 -1
- package/lib/core/case-authoring-state.d.ts +12 -0
- package/lib/core/case-authoring-state.d.ts.map +1 -0
- package/lib/core/case-authoring-state.js +43 -0
- package/lib/core/case-authoring-state.js.map +1 -0
- package/lib/core/case.d.ts +29 -1
- package/lib/core/case.d.ts.map +1 -1
- package/lib/core/case.js +14 -6
- package/lib/core/case.js.map +1 -1
- package/lib/core/driver.d.ts +3 -0
- package/lib/core/driver.d.ts.map +1 -1
- package/lib/core/driver.js.map +1 -1
- package/lib/core/events.d.ts +2 -0
- package/lib/core/events.d.ts.map +1 -1
- package/lib/core/events.js +1 -0
- package/lib/core/events.js.map +1 -1
- package/lib/core/lifecycle-fixtures.d.ts +3 -1
- package/lib/core/lifecycle-fixtures.d.ts.map +1 -1
- package/lib/core/lifecycle-fixtures.js +4 -2
- package/lib/core/lifecycle-fixtures.js.map +1 -1
- package/lib/core/lifecycle-hooks.d.ts +9 -0
- package/lib/core/lifecycle-hooks.d.ts.map +1 -1
- package/lib/core/lifecycle-hooks.js +8 -2
- package/lib/core/lifecycle-hooks.js.map +1 -1
- package/lib/core/run.d.ts +1 -0
- package/lib/core/run.d.ts.map +1 -1
- package/lib/core/wire.d.ts +1 -0
- package/lib/core/wire.d.ts.map +1 -1
- package/lib/core/wire.js +5 -1
- package/lib/core/wire.js.map +1 -1
- package/lib/drivers/subprocess/index.d.ts.map +1 -1
- package/lib/drivers/subprocess/index.js +6 -0
- package/lib/drivers/subprocess/index.js.map +1 -1
- package/lib/index.d.ts +4 -4
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +4 -4
- package/lib/index.js.map +1 -1
- package/lib/orchestrator/annotation-store.d.ts.map +1 -1
- package/lib/orchestrator/annotation-store.js +6 -2
- package/lib/orchestrator/annotation-store.js.map +1 -1
- package/lib/orchestrator/case-extensions.d.ts +6 -0
- package/lib/orchestrator/case-extensions.d.ts.map +1 -0
- package/lib/orchestrator/case-extensions.js +28 -0
- package/lib/orchestrator/case-extensions.js.map +1 -0
- package/lib/orchestrator/config.d.ts.map +1 -1
- package/lib/orchestrator/config.js +0 -2
- package/lib/orchestrator/config.js.map +1 -1
- package/lib/orchestrator/doctor.d.ts.map +1 -1
- package/lib/orchestrator/doctor.js +5 -3
- package/lib/orchestrator/doctor.js.map +1 -1
- package/lib/orchestrator/grader-experiment.d.ts +12 -0
- package/lib/orchestrator/grader-experiment.d.ts.map +1 -1
- package/lib/orchestrator/grading.d.ts +2 -1
- package/lib/orchestrator/grading.d.ts.map +1 -1
- package/lib/orchestrator/grading.js +16 -4
- package/lib/orchestrator/grading.js.map +1 -1
- package/lib/orchestrator/loader.d.ts.map +1 -1
- package/lib/orchestrator/loader.js +2 -0
- package/lib/orchestrator/loader.js.map +1 -1
- package/lib/orchestrator/orchestrator.d.ts +3 -0
- package/lib/orchestrator/orchestrator.d.ts.map +1 -1
- package/lib/orchestrator/orchestrator.js +42 -14
- package/lib/orchestrator/orchestrator.js.map +1 -1
- package/lib/orchestrator/owned-lock.d.ts.map +1 -1
- package/lib/orchestrator/owned-lock.js +52 -38
- package/lib/orchestrator/owned-lock.js.map +1 -1
- package/lib/orchestrator/regrade.d.ts +6 -0
- package/lib/orchestrator/regrade.d.ts.map +1 -1
- package/lib/orchestrator/regrade.js +8 -4
- package/lib/orchestrator/regrade.js.map +1 -1
- package/lib/orchestrator/run-execution.d.ts +2 -1
- package/lib/orchestrator/run-execution.d.ts.map +1 -1
- package/lib/orchestrator/run-execution.js +3 -2
- package/lib/orchestrator/run-execution.js.map +1 -1
- package/package.json +1 -2
- package/skills/lux/SKILL.md +7 -3
- package/skills/lux/references/cli.md +25 -2
- package/skills/lux/references/eval-authoring.md +156 -4
- package/skills/lux-answerer/SKILL.md +1 -1
- package/src/answerers/terminal/index.ts +1 -1
- package/src/assertions/authoring.ts +79 -0
- package/src/assertions/core/helpers.ts +3 -6
- package/src/authoring.ts +1 -0
- package/src/cli/program.ts +9 -2
- package/src/cli/render/reporter.ts +18 -3
- package/src/cli/run-options.ts +1 -0
- package/src/core/artifact-evidence.ts +47 -4
- package/src/core/assertion.ts +41 -22
- package/src/core/case-authoring-state.ts +65 -0
- package/src/core/case.ts +57 -6
- package/src/core/driver.ts +3 -0
- package/src/core/events.ts +1 -0
- package/src/core/lifecycle-fixtures.ts +7 -2
- package/src/core/lifecycle-hooks.ts +16 -2
- package/src/core/wire.ts +5 -1
- package/src/drivers/subprocess/index.ts +6 -0
- package/src/index.ts +10 -6
- package/src/orchestrator/annotation-store.ts +5 -1
- package/src/orchestrator/case-extensions.ts +44 -0
- package/src/orchestrator/config.ts +0 -2
- package/src/orchestrator/doctor.ts +5 -3
- package/src/orchestrator/grading.ts +21 -2
- package/src/orchestrator/loader.ts +2 -0
- package/src/orchestrator/orchestrator.ts +86 -40
- package/src/orchestrator/owned-lock.ts +54 -34
- package/src/orchestrator/regrade.ts +8 -7
- package/src/orchestrator/run-execution.ts +5 -1
- package/lib/answerers/scripted/index.d.ts +0 -8
- package/lib/answerers/scripted/index.d.ts.map +0 -1
- package/lib/answerers/scripted/index.js +0 -163
- package/lib/answerers/scripted/index.js.map +0 -1
- package/src/answerers/scripted/index.ts +0 -186
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-options.d.ts","sourceRoot":"","sources":["../../src/cli/run-options.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,GAAG;IACvB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,WAAW,UAAW,MAAM,YAAY,MAAM,EAAE,KAAG,MAAM,EAMnE,CAAC;AAEJ,eAAO,MAAM,aAAa,UAAW,MAAM,YAAY,MAAM,EAAE,KAAG,MAAM,EAA0B,CAAC;AAEnG,eAAO,MAAM,wBAAwB,UAC5B,MAAM,KACZ,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAa9C,CAAC;AAEF,eAAO,MAAM,gBAAgB,UAAW,MAAM,KAAG,MAOhD,CAAC;AAEF,eAAO,MAAM,iBAAiB,UAAW,MAAM,KAAG,MAMjD,CAAC;AAEF,eAAO,MAAM,kBAAkB,YACpB,IAAI,CAAC,UAAU,EAAE,aAAa,GAAG,aAAa,GAAG,gBAAgB,CAAC,cAC/D,MAAM,KACjB;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAYtC,CAAC;AAEF,eAAO,MAAM,uBAAuB,YAAa,UAAU,KAAG,MAAM,GAAG,SAItE,CAAC"}
|
|
1
|
+
{"version":3,"file":"run-options.d.ts","sourceRoot":"","sources":["../../src/cli/run-options.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,GAAG;IACvB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,WAAW,UAAW,MAAM,YAAY,MAAM,EAAE,KAAG,MAAM,EAMnE,CAAC;AAEJ,eAAO,MAAM,aAAa,UAAW,MAAM,YAAY,MAAM,EAAE,KAAG,MAAM,EAA0B,CAAC;AAEnG,eAAO,MAAM,wBAAwB,UAC5B,MAAM,KACZ,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAa9C,CAAC;AAEF,eAAO,MAAM,gBAAgB,UAAW,MAAM,KAAG,MAOhD,CAAC;AAEF,eAAO,MAAM,iBAAiB,UAAW,MAAM,KAAG,MAMjD,CAAC;AAEF,eAAO,MAAM,kBAAkB,YACpB,IAAI,CAAC,UAAU,EAAE,aAAa,GAAG,aAAa,GAAG,gBAAgB,CAAC,cAC/D,MAAM,KACjB;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAYtC,CAAC;AAEF,eAAO,MAAM,uBAAuB,YAAa,UAAU,KAAG,MAAM,GAAG,SAItE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-options.js","sourceRoot":"","sources":["../../src/cli/run-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"run-options.js","sourceRoot":"","sources":["../../src/cli/run-options.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import type { Stats } from "node:fs";
|
|
2
2
|
import type { Artifact } from "./driver.js";
|
|
3
3
|
import type { Run } from "./run.js";
|
|
4
|
+
export type RunArtifactIssueReason = "absent" | "unreadable";
|
|
4
5
|
export type RunArtifactInspection = {
|
|
5
6
|
target: string;
|
|
6
7
|
root: string;
|
|
7
8
|
artifact?: Artifact;
|
|
8
9
|
stats?: Stats;
|
|
9
10
|
issue?: string;
|
|
11
|
+
reason?: RunArtifactIssueReason;
|
|
10
12
|
};
|
|
11
13
|
type RunArtifactEvidence = {
|
|
12
14
|
runDir: Run["runDir"];
|
|
@@ -46,5 +48,11 @@ export declare const readRunArtifactBytes: (run: RunArtifactEvidence, authoredPa
|
|
|
46
48
|
* safe to consume.
|
|
47
49
|
*/
|
|
48
50
|
export declare const readRunArtifactText: (run: RunArtifactEvidence, authoredPath: string, options?: ReadRunArtifactTextOptions) => Promise<string>;
|
|
51
|
+
/**
|
|
52
|
+
* Read optional artifact evidence. Returns null when the artifact was never
|
|
53
|
+
* captured, and still throws when one exists but is unsafe to consume, so a
|
|
54
|
+
* traversal or symlink violation is never mistaken for missing evidence.
|
|
55
|
+
*/
|
|
56
|
+
export declare const readRunArtifactTextIfPresent: (run: RunArtifactEvidence, authoredPath: string, options?: ReadRunArtifactTextOptions) => Promise<string | null>;
|
|
49
57
|
export {};
|
|
50
58
|
//# sourceMappingURL=artifact-evidence.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifact-evidence.d.ts","sourceRoot":"","sources":["../../src/core/artifact-evidence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGrC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAKpC,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"artifact-evidence.d.ts","sourceRoot":"","sources":["../../src/core/artifact-evidence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGrC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAKpC,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAAG,YAAY,CAAC;AAE7D,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,sBAAsB,CAAC;CACjC,CAAC;AAEF,KAAK,mBAAmB,GAAG;IACzB,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IACtB,SAAS,EAAE,SAAS,QAAQ,EAAE,CAAC;CAChC,CAAC;AAEF,KAAK,wBAAwB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAIF,4EAA4E;AAC5E,eAAO,MAAM,uBAAuB,QAC7B,mBAAmB,YACd,wBAAwB,KACjC,IAEF,CAAC;AAEF,4EAA4E;AAC5E,eAAO,MAAM,8BAA8B,QAAS,mBAAmB,KAAG,OACrC,CAAC;AAoBtC;;;GAGG;AACH,eAAO,MAAM,gBAAgB,QAAS,mBAAmB,KAAG,MAK3D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,QACxB,mBAAmB,gBACV,MAAM,KACnB,OAAO,CAAC,qBAAqB,CA8F/B,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,sBAAsB,WACzB,MAAM,YACJ,KAAK,YACL,MAAM,SACT,MAAM,KACZ,OAAO,CAAC,MAAM,CAgDhB,CAAC;AAEF,eAAO,MAAM,oBAAoB,QAC1B,mBAAmB,gBACV,MAAM,YACX,0BAA0B,KAClC,OAAO,CAAC,MAAM,CAUhB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,QACzB,mBAAmB,gBACV,MAAM,YACX,0BAA0B,KAClC,OAAO,CAAC,MAAM,CAEhB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,QAClC,mBAAmB,gBACV,MAAM,YACX,0BAA0B,KAClC,OAAO,CAAC,MAAM,GAAG,IAAI,CAavB,CAAC"}
|
|
@@ -41,6 +41,7 @@ export const inspectRunArtifact = async (run, authoredPath) => {
|
|
|
41
41
|
target: authoredPath,
|
|
42
42
|
root: runArtifactsRoot(run),
|
|
43
43
|
issue: `${authoredPath} contains a null byte`,
|
|
44
|
+
reason: "unreadable",
|
|
44
45
|
};
|
|
45
46
|
}
|
|
46
47
|
const matching = run.artifacts.filter((candidate) => candidate.path === authoredPath);
|
|
@@ -50,6 +51,7 @@ export const inspectRunArtifact = async (run, authoredPath) => {
|
|
|
50
51
|
target: resolve(root, authoredPath),
|
|
51
52
|
root,
|
|
52
53
|
issue: `${authoredPath} was not captured in the frozen artifact index`,
|
|
54
|
+
reason: "absent",
|
|
53
55
|
};
|
|
54
56
|
}
|
|
55
57
|
if (matching.some((candidate) => candidate.root !== undefined && !isAbsolute(candidate.root))) {
|
|
@@ -57,6 +59,7 @@ export const inspectRunArtifact = async (run, authoredPath) => {
|
|
|
57
59
|
target: authoredPath,
|
|
58
60
|
root: defaultArtifactsRoot(run),
|
|
59
61
|
issue: `${authoredPath} declares a non-absolute artifact root`,
|
|
62
|
+
reason: "unreadable",
|
|
60
63
|
};
|
|
61
64
|
}
|
|
62
65
|
const artifact = matching[0];
|
|
@@ -67,6 +70,7 @@ export const inspectRunArtifact = async (run, authoredPath) => {
|
|
|
67
70
|
target: authoredPath,
|
|
68
71
|
root: defaultArtifactsRoot(run),
|
|
69
72
|
issue: `${authoredPath} is ambiguous across multiple artifact roots`,
|
|
73
|
+
reason: "unreadable",
|
|
70
74
|
};
|
|
71
75
|
}
|
|
72
76
|
// A non-default root is trusted only for an exact artifact-index entry.
|
|
@@ -75,7 +79,12 @@ export const inspectRunArtifact = async (run, authoredPath) => {
|
|
|
75
79
|
const root = matchingRoots[0] ?? defaultArtifactsRoot(run);
|
|
76
80
|
const target = resolve(root, authoredPath);
|
|
77
81
|
if (pathEscapesRoot(root, target)) {
|
|
78
|
-
return {
|
|
82
|
+
return {
|
|
83
|
+
target,
|
|
84
|
+
root,
|
|
85
|
+
issue: `${authoredPath} escapes the captured artifact root`,
|
|
86
|
+
reason: "unreadable",
|
|
87
|
+
};
|
|
79
88
|
}
|
|
80
89
|
const path = relative(root, target);
|
|
81
90
|
const components = [
|
|
@@ -93,7 +102,13 @@ export const inspectRunArtifact = async (run, authoredPath) => {
|
|
|
93
102
|
catch (error) {
|
|
94
103
|
const code = error.code;
|
|
95
104
|
if (code === "ENOENT" || code === "ENOTDIR") {
|
|
96
|
-
return {
|
|
105
|
+
return {
|
|
106
|
+
target,
|
|
107
|
+
root,
|
|
108
|
+
...identified,
|
|
109
|
+
issue: `${authoredPath} not found`,
|
|
110
|
+
reason: "absent",
|
|
111
|
+
};
|
|
97
112
|
}
|
|
98
113
|
throw error;
|
|
99
114
|
}
|
|
@@ -103,16 +118,17 @@ export const inspectRunArtifact = async (run, authoredPath) => {
|
|
|
103
118
|
root,
|
|
104
119
|
...identified,
|
|
105
120
|
issue: `${authoredPath} resolves through a symlink`,
|
|
121
|
+
reason: "unreadable",
|
|
106
122
|
};
|
|
107
123
|
}
|
|
108
124
|
if (index < components.length - 1 && !stats.isDirectory()) {
|
|
109
|
-
return { target, root, ...identified, issue: `${authoredPath} not found
|
|
125
|
+
return { target, root, ...identified, issue: `${authoredPath} not found`, reason: "absent" };
|
|
110
126
|
}
|
|
111
127
|
if (index === components.length - 1) {
|
|
112
128
|
return { target, root, ...identified, stats };
|
|
113
129
|
}
|
|
114
130
|
}
|
|
115
|
-
return { target, root, ...identified, issue: `${authoredPath} not found
|
|
131
|
+
return { target, root, ...identified, issue: `${authoredPath} not found`, reason: "absent" };
|
|
116
132
|
};
|
|
117
133
|
export const readInspectedFileBytes = async (target, expected, maxBytes, label) => {
|
|
118
134
|
if (!Number.isSafeInteger(maxBytes) || maxBytes < 0 || maxBytes > MAX_ARTIFACT_READ_BYTES) {
|
|
@@ -182,4 +198,20 @@ export const readRunArtifactBytes = async (run, authoredPath, options = {}) => {
|
|
|
182
198
|
export const readRunArtifactText = async (run, authoredPath, options = {}) => {
|
|
183
199
|
return (await readRunArtifactBytes(run, authoredPath, options)).toString("utf8");
|
|
184
200
|
};
|
|
201
|
+
/**
|
|
202
|
+
* Read optional artifact evidence. Returns null when the artifact was never
|
|
203
|
+
* captured, and still throws when one exists but is unsafe to consume, so a
|
|
204
|
+
* traversal or symlink violation is never mistaken for missing evidence.
|
|
205
|
+
*/
|
|
206
|
+
export const readRunArtifactTextIfPresent = async (run, authoredPath, options = {}) => {
|
|
207
|
+
const inspected = await inspectRunArtifact(run, authoredPath);
|
|
208
|
+
if (inspected.reason === "absent")
|
|
209
|
+
return null;
|
|
210
|
+
if (!inspected.stats?.isFile()) {
|
|
211
|
+
throw new Error(inspected.issue ??
|
|
212
|
+
(inspected.stats ? `${authoredPath} is not a file` : `${authoredPath} not found`));
|
|
213
|
+
}
|
|
214
|
+
const maxBytes = options.maxBytes ?? DEFAULT_ARTIFACT_READ_BYTES;
|
|
215
|
+
return (await readInspectedFileBytes(inspected.target, inspected.stats, maxBytes, authoredPath)).toString("utf8");
|
|
216
|
+
};
|
|
185
217
|
//# sourceMappingURL=artifact-evidence.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifact-evidence.js","sourceRoot":"","sources":["../../src/core/artifact-evidence.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAIrE,MAAM,2BAA2B,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AACpD,MAAM,uBAAuB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"artifact-evidence.js","sourceRoot":"","sources":["../../src/core/artifact-evidence.ts"],"names":[],"mappings":"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"}
|
package/lib/core/assertion.d.ts
CHANGED
|
@@ -38,19 +38,16 @@ export interface AssertionImpl<C extends Assertion = Assertion> {
|
|
|
38
38
|
* `AssertionImpl`, plugins must describe their case configuration so Lux can
|
|
39
39
|
* reject invalid plans before starting a subject run.
|
|
40
40
|
*/
|
|
41
|
-
export type AssertionPlugin<C extends Assertion = Assertion> = AssertionImpl<C> & {
|
|
41
|
+
export type AssertionPlugin<C extends Assertion = Assertion, Input extends Assertion = C> = AssertionImpl<C> & {
|
|
42
42
|
configSchema: z.ZodObject & z.ZodType<C>;
|
|
43
|
+
/** Type-only input accepted while authoring before schema defaults apply. */
|
|
44
|
+
readonly __input?: Input;
|
|
43
45
|
/** Author-maintained identity for evaluator/schema behavior. */
|
|
44
46
|
pluginVersion: string;
|
|
45
47
|
};
|
|
46
48
|
type SchemaAssertion<S extends z.ZodObject> = z.output<S> extends Assertion ? z.output<S> : never;
|
|
47
|
-
type
|
|
48
|
-
type
|
|
49
|
-
type LiteralAssertionType<S extends z.ZodObject> = SchemaAssertion<S> extends {
|
|
50
|
-
type: infer OutputType;
|
|
51
|
-
} ? z.input<S> extends {
|
|
52
|
-
type: infer InputType;
|
|
53
|
-
} ? SingleStringLiteral<OutputType> extends infer Literal extends string ? [InputType, Literal] extends [Literal, InputType] ? Literal : never : never : never : never;
|
|
49
|
+
type SchemaAssertionInput<S extends z.ZodObject> = z.input<S> extends Assertion ? z.input<S> : never;
|
|
50
|
+
type LiteralAssertionType<S extends z.ZodObject> = S["shape"]["type"] extends z.ZodLiteral<infer Literal extends string> ? Literal : never;
|
|
54
51
|
export type AssertionPluginDefinition<S extends z.ZodObject> = {
|
|
55
52
|
type: LiteralAssertionType<S>;
|
|
56
53
|
configSchema: S;
|
|
@@ -67,7 +64,14 @@ export declare const assertionPluginIssue: (definition: {
|
|
|
67
64
|
* Define a schema-validated assertion plugin while inferring the config passed
|
|
68
65
|
* to `evaluate` from the schema.
|
|
69
66
|
*/
|
|
70
|
-
export declare const
|
|
67
|
+
export declare const baseAssertionFields: {
|
|
68
|
+
readonly id: z.ZodOptional<z.ZodString>;
|
|
69
|
+
readonly weight: z.ZodOptional<z.ZodNumber>;
|
|
70
|
+
readonly threshold: z.ZodOptional<z.ZodNumber>;
|
|
71
|
+
readonly name: z.ZodOptional<z.ZodString>;
|
|
72
|
+
};
|
|
73
|
+
export declare const defineAssertion: <S extends z.ZodObject>(definition: AssertionPluginDefinition<S>) => AssertionPlugin<SchemaAssertion<S>, SchemaAssertionInput<S>>;
|
|
74
|
+
export declare const defineAssertionRegistry: <const Plugins extends readonly AssertionPlugin[]>(...plugins: Plugins) => Plugins;
|
|
71
75
|
export declare const GradingAssertionEntrySchema: z.ZodObject<{
|
|
72
76
|
id: z.ZodExactOptional<z.ZodString>;
|
|
73
77
|
type: z.ZodString;
|
|
@@ -111,6 +115,12 @@ export declare const GradingReportSchema: z.ZodObject<{
|
|
|
111
115
|
cacheCreation: z.ZodNumber;
|
|
112
116
|
}, z.core.$strip>>;
|
|
113
117
|
}, z.core.$strip>>;
|
|
118
|
+
skippedAssertions: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
119
|
+
id: z.ZodString;
|
|
120
|
+
type: z.ZodString;
|
|
121
|
+
name: z.ZodString;
|
|
122
|
+
reason: z.ZodLiteral<"judge-disabled">;
|
|
123
|
+
}, z.core.$strip>>>;
|
|
114
124
|
incomplete: z.ZodExactOptional<z.ZodObject<{
|
|
115
125
|
exitReason: z.ZodEnum<{
|
|
116
126
|
error: "error";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assertion.d.ts","sourceRoot":"","sources":["../../src/core/assertion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAGpC,eAAO,MAAM,qBAAqB;;;;;;;;;;;;iBAShC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,MAAM,MAAM,eAAe,GAAG;IAC5B;;;;OAIG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;;OAGG;IACH,uBAAuB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5D,CAAC;AAGF,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IAC5D,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IAChB,YAAY,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CAChF;AAED;;;;GAIG;AACH,MAAM,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"assertion.d.ts","sourceRoot":"","sources":["../../src/core/assertion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAGpC,eAAO,MAAM,qBAAqB;;;;;;;;;;;;iBAShC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,MAAM,MAAM,eAAe,GAAG;IAC5B;;;;OAIG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;;OAGG;IACH,uBAAuB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5D,CAAC;AAGF,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IAC5D,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IAChB,YAAY,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CAChF;AAED;;;;GAIG;AACH,MAAM,MAAM,eAAe,CACzB,CAAC,SAAS,SAAS,GAAG,SAAS,EAC/B,KAAK,SAAS,SAAS,GAAG,CAAC,IACzB,aAAa,CAAC,CAAC,CAAC,GAAG;IACrB,YAAY,EAAE,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACzC,6EAA6E;IAC7E,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC;IACzB,gEAAgE;IAChE,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,KAAK,eAAe,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AAClG,KAAK,oBAAoB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,IAC7C,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AAEpD,KAAK,oBAAoB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,IAC7C,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,MAAM,OAAO,SAAS,MAAM,CAAC,GAAG,OAAO,GAAG,KAAK,CAAC;AAE1F,MAAM,MAAM,yBAAyB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,IAAI;IAC7D,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC;IAC9B,YAAY,EAAE,CAAC,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CACjG,CAAC;AAEF,eAAO,MAAM,oBAAoB,eAAgB;IAC/C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,KAAG,MAAM,GAAG,SAsBZ,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB;aAC9B,EAAE;aACF,MAAM;aACN,SAAS;aACT,IAAI;CACI,CAAC;AAEX,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,CAAC,CAAC,SAAS,cACvC,yBAAyB,CAAC,CAAC,CAAC,KACvC,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAI7D,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,KAAK,CAAC,OAAO,SAAS,SAAS,eAAe,EAAE,cAC1E,OAAO,KAClB,OAWF,CAAC;AAEF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;iBAetC,CAAC;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAShF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAgB9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
|
package/lib/core/assertion.js
CHANGED
|
@@ -36,12 +36,31 @@ export const assertionPluginIssue = (definition) => {
|
|
|
36
36
|
* Define a schema-validated assertion plugin while inferring the config passed
|
|
37
37
|
* to `evaluate` from the schema.
|
|
38
38
|
*/
|
|
39
|
+
export const baseAssertionFields = {
|
|
40
|
+
id: z.string().min(1).optional(),
|
|
41
|
+
weight: z.number().positive().optional(),
|
|
42
|
+
threshold: z.number().min(0).max(1).optional(),
|
|
43
|
+
name: z.string().optional(),
|
|
44
|
+
};
|
|
39
45
|
export const defineAssertion = (definition) => {
|
|
40
46
|
const issue = assertionPluginIssue(definition);
|
|
41
47
|
if (issue)
|
|
42
48
|
throw new TypeError(issue);
|
|
43
49
|
return definition;
|
|
44
50
|
};
|
|
51
|
+
export const defineAssertionRegistry = (...plugins) => {
|
|
52
|
+
const types = new Set();
|
|
53
|
+
for (const plugin of plugins) {
|
|
54
|
+
const issue = assertionPluginIssue(plugin);
|
|
55
|
+
if (issue)
|
|
56
|
+
throw new TypeError(issue);
|
|
57
|
+
if (types.has(plugin.type)) {
|
|
58
|
+
throw new TypeError(`assertion registry has duplicate type '${plugin.type}'`);
|
|
59
|
+
}
|
|
60
|
+
types.add(plugin.type);
|
|
61
|
+
}
|
|
62
|
+
return plugins;
|
|
63
|
+
};
|
|
45
64
|
export const GradingAssertionEntrySchema = z.object({
|
|
46
65
|
/** Stable author-supplied id, or a deterministic positional fallback. */
|
|
47
66
|
id: z.exactOptional(z.string()),
|
|
@@ -58,11 +77,18 @@ export const GradingAssertionEntrySchema = z.object({
|
|
|
58
77
|
errorMessage: z.exactOptional(z.string()),
|
|
59
78
|
usage: z.exactOptional(TokenUsageSchema),
|
|
60
79
|
});
|
|
80
|
+
const SkippedGradingAssertionSchema = z.object({
|
|
81
|
+
id: z.string(),
|
|
82
|
+
type: z.string(),
|
|
83
|
+
name: z.string(),
|
|
84
|
+
reason: z.literal("judge-disabled"),
|
|
85
|
+
});
|
|
61
86
|
export const GradingReportSchema = z.object({
|
|
62
87
|
schemaVersion: z.literal(1),
|
|
63
88
|
casePassed: z.boolean().nullable(),
|
|
64
89
|
caseScore: z.number().nullable(),
|
|
65
90
|
assertions: z.array(GradingAssertionEntrySchema),
|
|
91
|
+
skippedAssertions: z.array(SkippedGradingAssertionSchema).optional(),
|
|
66
92
|
/**
|
|
67
93
|
* Present when the subject run or grading did not complete. Assertions may
|
|
68
94
|
* still contain partial diagnostics, but the report is not a clean verdict.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assertion.js","sourceRoot":"","sources":["../../src/core/assertion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;IACnB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,OAAO,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACpC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC9B,+DAA+D;IAC/D,YAAY,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACzC,gFAAgF;IAChF,KAAK,EAAE,CAAC,CAAC,aAAa,CAAC,gBAAgB,CAAC;CACzC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"assertion.js","sourceRoot":"","sources":["../../src/core/assertion.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { AssertionPlugin } from "./assertion.js";
|
|
2
|
+
import type { EvalCase } from "./case.js";
|
|
3
|
+
import type { LifecycleHooksPlugin } from "./lifecycle-hooks.js";
|
|
4
|
+
export type EvalCaseExtensions = {
|
|
5
|
+
assertions: readonly AssertionPlugin[];
|
|
6
|
+
fixtures: readonly LifecycleHooksPlugin[];
|
|
7
|
+
};
|
|
8
|
+
export declare const collectEvalCaseExtensions: (input: EvalCase, assertions?: readonly AssertionPlugin[], fixtures?: readonly LifecycleHooksPlugin[]) => EvalCaseExtensions;
|
|
9
|
+
export declare const setEvalCaseExtensions: (evalCase: EvalCase, extensions: EvalCaseExtensions) => void;
|
|
10
|
+
export declare const evalCaseExtensions: (evalCase: EvalCase) => EvalCaseExtensions;
|
|
11
|
+
export declare const transferEvalCaseExtensions: (source: EvalCase, target: EvalCase) => void;
|
|
12
|
+
//# sourceMappingURL=case-authoring-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"case-authoring-state.d.ts","sourceRoot":"","sources":["../../src/core/case-authoring-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,EAAE,SAAS,eAAe,EAAE,CAAC;IACvC,QAAQ,EAAE,SAAS,oBAAoB,EAAE,CAAC;CAC3C,CAAC;AAyBF,eAAO,MAAM,yBAAyB,UAC7B,QAAQ,eACH,SAAS,eAAe,EAAE,aAC5B,SAAS,oBAAoB,EAAE,KACxC,kBAcF,CAAC;AAEF,eAAO,MAAM,qBAAqB,aAAc,QAAQ,cAAc,kBAAkB,KAAG,IAI1F,CAAC;AAEF,eAAO,MAAM,kBAAkB,aAAc,QAAQ,KAAG,kBACU,CAAC;AAEnE,eAAO,MAAM,0BAA0B,WAAY,QAAQ,UAAU,QAAQ,KAAG,IAG/E,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
const CASE_EXTENSIONS_KEY = Symbol.for("@prismatic-io/lux/eval-case-extensions");
|
|
2
|
+
const extensionState = globalThis;
|
|
3
|
+
const sharedCaseExtensions = extensionState[CASE_EXTENSIONS_KEY];
|
|
4
|
+
// A project-local package and the CLI can load separate Lux module instances.
|
|
5
|
+
const caseExtensions = sharedCaseExtensions instanceof WeakMap
|
|
6
|
+
? sharedCaseExtensions
|
|
7
|
+
: new WeakMap();
|
|
8
|
+
extensionState[CASE_EXTENSIONS_KEY] = caseExtensions;
|
|
9
|
+
const uniqueBy = (values, keyOf, kind) => {
|
|
10
|
+
const unique = new Map();
|
|
11
|
+
for (const value of values) {
|
|
12
|
+
const key = keyOf(value);
|
|
13
|
+
const existing = unique.get(key);
|
|
14
|
+
if (existing && existing !== value) {
|
|
15
|
+
throw new TypeError(`case has conflicting ${kind} definitions for '${key}'`);
|
|
16
|
+
}
|
|
17
|
+
unique.set(key, value);
|
|
18
|
+
}
|
|
19
|
+
return [...unique.values()];
|
|
20
|
+
};
|
|
21
|
+
export const collectEvalCaseExtensions = (input, assertions = [], fixtures = []) => {
|
|
22
|
+
const availableAssertions = uniqueBy(assertions, (plugin) => plugin.type, "assertion");
|
|
23
|
+
const byType = new Map(availableAssertions.map((plugin) => [plugin.type, plugin]));
|
|
24
|
+
return {
|
|
25
|
+
assertions: uniqueBy((input.assertions ?? []).flatMap((assertion) => {
|
|
26
|
+
const plugin = byType.get(assertion.type);
|
|
27
|
+
return plugin ? [plugin] : [];
|
|
28
|
+
}), (plugin) => plugin.type, "assertion"),
|
|
29
|
+
fixtures: uniqueBy(fixtures, (fixture) => fixture.name, "fixture"),
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
export const setEvalCaseExtensions = (evalCase, extensions) => {
|
|
33
|
+
if (extensions.assertions.length > 0 || extensions.fixtures.length > 0) {
|
|
34
|
+
caseExtensions.set(evalCase, extensions);
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
export const evalCaseExtensions = (evalCase) => caseExtensions.get(evalCase) ?? { assertions: [], fixtures: [] };
|
|
38
|
+
export const transferEvalCaseExtensions = (source, target) => {
|
|
39
|
+
const extensions = caseExtensions.get(source);
|
|
40
|
+
if (extensions)
|
|
41
|
+
caseExtensions.set(target, extensions);
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=case-authoring-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"case-authoring-state.js","sourceRoot":"","sources":["../../src/core/case-authoring-state.ts"],"names":[],"mappings":"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"}
|
package/lib/core/case.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
import type { AssertionPlugin } from "./assertion.js";
|
|
3
|
+
import type { LifecycleHooksPlugin } from "./lifecycle-hooks.js";
|
|
2
4
|
export declare const FixturesRefSchema: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
3
5
|
kind: z.ZodLiteral<"dir">;
|
|
4
6
|
path: z.ZodString;
|
|
@@ -48,7 +50,32 @@ export declare const EvalCaseSchema: z.ZodObject<{
|
|
|
48
50
|
meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
49
51
|
}, z.core.$strict>;
|
|
50
52
|
export type EvalCase = z.infer<typeof EvalCaseSchema>;
|
|
51
|
-
|
|
53
|
+
type AssertionPlanFields = Pick<Assertion, "id" | "name" | "threshold" | "weight">;
|
|
54
|
+
type AssertionInputOf<Plugin> = Plugin extends AssertionPlugin<Assertion, infer Input> ? Input & AssertionPlanFields : never;
|
|
55
|
+
export type EvalCaseInput<AllowedAssertion extends Assertion = Assertion> = Omit<EvalCase, "assertions"> & {
|
|
56
|
+
assertions?: AllowedAssertion[];
|
|
57
|
+
};
|
|
58
|
+
export type EvalCaseAuthoringOptions<Plugins extends readonly AssertionPlugin[] = readonly AssertionPlugin[]> = {
|
|
59
|
+
assertions?: Plugins;
|
|
60
|
+
fixtures?: readonly LifecycleHooksPlugin[];
|
|
61
|
+
};
|
|
62
|
+
export type EvalCaseDefinition<AllowedAssertion extends Assertion = Assertion> = {
|
|
63
|
+
(input: EvalCaseInput<AllowedAssertion>): EvalCase;
|
|
64
|
+
/**
|
|
65
|
+
* Create a case definition with selectively activated lifecycle fixtures.
|
|
66
|
+
* Further calls to `extend` append fixtures in setup order.
|
|
67
|
+
*/
|
|
68
|
+
extend<const Plugins extends readonly AssertionPlugin[] = readonly []>(options: EvalCaseAuthoringOptions<Plugins>): EvalCaseDefinition<AllowedAssertion | AssertionInputOf<Plugins[number]>>;
|
|
69
|
+
};
|
|
70
|
+
export declare const createEvalCaseDefinition: <AllowedAssertion extends Assertion = Assertion>(inheritedAssertions?: readonly AssertionPlugin[], inheritedFixtures?: readonly LifecycleHooksPlugin[]) => EvalCaseDefinition<AllowedAssertion>;
|
|
71
|
+
export declare const defineEvalCase: EvalCaseDefinition<{
|
|
72
|
+
[x: string]: unknown;
|
|
73
|
+
id?: string | undefined;
|
|
74
|
+
type: string;
|
|
75
|
+
name?: string | undefined;
|
|
76
|
+
weight?: number | undefined;
|
|
77
|
+
threshold?: number | undefined;
|
|
78
|
+
}>;
|
|
52
79
|
export declare const PersistedCaseSchema: z.ZodObject<{
|
|
53
80
|
id: z.ZodOptional<z.ZodOptional<z.ZodString>>;
|
|
54
81
|
prompt: z.ZodOptional<z.ZodString>;
|
|
@@ -76,4 +103,5 @@ export declare const PersistedCaseSchema: z.ZodObject<{
|
|
|
76
103
|
}, z.core.$loose>]>>;
|
|
77
104
|
}, z.core.$loose>;
|
|
78
105
|
export type PersistedCase = z.infer<typeof PersistedCaseSchema>;
|
|
106
|
+
export {};
|
|
79
107
|
//# sourceMappingURL=case.d.ts.map
|
package/lib/core/case.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"case.d.ts","sourceRoot":"","sources":["../../src/core/case.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"case.d.ts","sourceRoot":"","sources":["../../src/core/case.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAGjE,eAAO,MAAM,iBAAiB;;;oBAG5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAO5D,eAAO,MAAM,eAAe;;;oBAG1B,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,eAAO,MAAM,iBAAiB;;;oBAG5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,eAAe;;;;;;iBASlB,CAAC;AACX,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAaxD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;kBAiBvB,CAAC;AACL,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEtD,KAAK,mBAAmB,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC,CAAC;AACnF,KAAK,gBAAgB,CAAC,MAAM,IAC1B,MAAM,SAAS,eAAe,CAAC,SAAS,EAAE,MAAM,KAAK,CAAC,GAAG,KAAK,GAAG,mBAAmB,GAAG,KAAK,CAAC;AAE/F,MAAM,MAAM,aAAa,CAAC,gBAAgB,SAAS,SAAS,GAAG,SAAS,IAAI,IAAI,CAC9E,QAAQ,EACR,YAAY,CACb,GAAG;IACF,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,wBAAwB,CAClC,OAAO,SAAS,SAAS,eAAe,EAAE,GAAG,SAAS,eAAe,EAAE,IACrE;IACF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,kBAAkB,CAAC,gBAAgB,SAAS,SAAS,GAAG,SAAS,IAAI;IAC/E,CAAC,KAAK,EAAE,aAAa,CAAC,gBAAgB,CAAC,GAAG,QAAQ,CAAC;IACnD;;;OAGG;IACH,MAAM,CAAC,KAAK,CAAC,OAAO,SAAS,SAAS,eAAe,EAAE,GAAG,SAAS,EAAE,EACnE,OAAO,EAAE,wBAAwB,CAAC,OAAO,CAAC,GACzC,kBAAkB,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;CAC7E,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,gBAAgB,SAAS,SAAS,GAAG,SAAS,wBAChE,SAAS,eAAe,EAAE,sBAC5B,SAAS,oBAAoB,EAAE,KACjD,kBAAkB,CAAC,gBAAgB,CAoBrC,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;;EAA6B,CAAC;AAmBzD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;iBAOtB,CAAC;AACX,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
|
package/lib/core/case.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
import { collectEvalCaseExtensions, setEvalCaseExtensions } from "./case-authoring-state.js";
|
|
2
3
|
import { formatZodIssues } from "./zod.js";
|
|
3
4
|
export const FixturesRefSchema = z.union([
|
|
4
5
|
z.string(),
|
|
@@ -56,13 +57,20 @@ export const EvalCaseSchema = EvalCaseObjectSchema
|
|
|
56
57
|
seen.add(assertion.id);
|
|
57
58
|
}
|
|
58
59
|
});
|
|
59
|
-
export const
|
|
60
|
-
const
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
60
|
+
export const createEvalCaseDefinition = (inheritedAssertions = [], inheritedFixtures = []) => {
|
|
61
|
+
const define = ((input) => {
|
|
62
|
+
const parsed = EvalCaseSchema.safeParse(input);
|
|
63
|
+
if (!parsed.success) {
|
|
64
|
+
throw new Error(`Invalid eval case: ${formatZodIssues(parsed.error)}`);
|
|
65
|
+
}
|
|
66
|
+
const extensions = collectEvalCaseExtensions(parsed.data, inheritedAssertions, inheritedFixtures);
|
|
67
|
+
setEvalCaseExtensions(parsed.data, extensions);
|
|
68
|
+
return parsed.data;
|
|
69
|
+
});
|
|
70
|
+
define.extend = (({ assertions = [], fixtures = [] }) => createEvalCaseDefinition([...inheritedAssertions, ...assertions], [...inheritedFixtures, ...fixtures]));
|
|
71
|
+
return define;
|
|
65
72
|
};
|
|
73
|
+
export const defineEvalCase = createEvalCaseDefinition();
|
|
66
74
|
const PersistedFixturesRefSchema = z.union([
|
|
67
75
|
z.string(),
|
|
68
76
|
z.looseObject({ kind: z.literal("dir"), path: z.string() }),
|
package/lib/core/case.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"case.js","sourceRoot":"","sources":["../../src/core/case.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"case.js","sourceRoot":"","sources":["../../src/core/case.ts"],"names":[],"mappings":"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"}
|
package/lib/core/driver.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import type { EventHandler } from "./emitter.js";
|
|
3
3
|
import type { Answer, Done, ErrorEvent, Interrupt, Progress, ReadyState } from "./events.js";
|
|
4
|
+
import type { FixtureValueBinding } from "./lifecycle-hooks.js";
|
|
4
5
|
export declare const ArtifactSchema: z.ZodObject<{
|
|
5
6
|
path: z.ZodString;
|
|
6
7
|
root: z.ZodExactOptional<z.ZodString>;
|
|
@@ -19,6 +20,8 @@ export type StartContext = {
|
|
|
19
20
|
caseId?: string;
|
|
20
21
|
prompt: string;
|
|
21
22
|
fixtures?: ResolvedFixtures | undefined;
|
|
23
|
+
/** Authored fixture values selected for this case. */
|
|
24
|
+
fixtureValues?: readonly FixtureValueBinding[] | undefined;
|
|
22
25
|
/** Root containing persisted runs. Drivers may use it as an isolation boundary. */
|
|
23
26
|
runsRoot?: string | undefined;
|
|
24
27
|
runDir: string;
|
package/lib/core/driver.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../src/core/driver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../src/core/driver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC7F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEhE,eAAO,MAAM,cAAc;;;;;;iBAWzB,CAAC;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEtD,eAAO,MAAM,sBAAsB;;;iBAGjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAGtE,MAAM,MAAM,YAAY,GAAG;IACzB,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACxC,sDAAsD;IACtD,aAAa,CAAC,EAAE,SAAS,mBAAmB,EAAE,GAAG,SAAS,CAAC;IAC3D,mFAAmF;IACnF,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,UAAU,CAAC;CACnB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC9C,EAAE,CAAC,CAAC,SAAS,MAAM,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAC7F,GAAG,CAAC,CAAC,SAAS,MAAM,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAC9F,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC;;;;OAIG;IACH,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B;;;OAGG;IACH,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC/B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,MAAM,MAAM,YAAY,CAAC,GAAG,GAAG,OAAO,IAAI;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC;IAC5B,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CAC7D,CAAC"}
|
package/lib/core/driver.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.js","sourceRoot":"","sources":["../../src/core/driver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"driver.js","sourceRoot":"","sources":["../../src/core/driver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB;;;;OAIG;IACH,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACjC,WAAW,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACxC,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACjC,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;CACzD,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;CACzD,CAAC,CAAC"}
|
package/lib/core/events.d.ts
CHANGED
|
@@ -96,6 +96,7 @@ export declare const ErrorEventSchema: z.ZodObject<{
|
|
|
96
96
|
"max-interactions": "max-interactions";
|
|
97
97
|
}>;
|
|
98
98
|
reason: z.ZodString;
|
|
99
|
+
summary: z.ZodOptional<z.ZodUnknown>;
|
|
99
100
|
}, z.core.$strip>;
|
|
100
101
|
export type ErrorEvent = z.infer<typeof ErrorEventSchema>;
|
|
101
102
|
export declare const LifecycleStageSchema: z.ZodEnum<{
|
|
@@ -181,6 +182,7 @@ export declare const RunEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
181
182
|
"max-interactions": "max-interactions";
|
|
182
183
|
}>;
|
|
183
184
|
reason: z.ZodString;
|
|
185
|
+
summary: z.ZodOptional<z.ZodUnknown>;
|
|
184
186
|
ts: z.ZodNumber;
|
|
185
187
|
type: z.ZodLiteral<"error">;
|
|
186
188
|
}, z.core.$strip>, z.ZodObject<{
|
package/lib/core/events.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/core/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,mBAAmB;;;;EAAuC,CAAC;AACxE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,kBAAkB;;;;;iBAK7B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;iBAKjC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;iBAKhC,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;2BAI1B,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,eAAO,MAAM,eAAe;;;;iBAI1B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;iBAK9B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;iBAI7B,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;;;2BAIvB,CAAC;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAElD,eAAO,MAAM,cAAc;;;;;iBAKzB,CAAC;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEtD,eAAO,MAAM,UAAU;;;iBAQrB,CAAC;AACH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAE9C,eAAO,MAAM,sBAAsB;;;;EAAwD,CAAC;AAC5F,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,gBAAgB
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/core/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,mBAAmB;;;;EAAuC,CAAC;AACxE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,kBAAkB;;;;;iBAK7B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;iBAKjC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;iBAKhC,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;2BAI1B,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,eAAO,MAAM,eAAe;;;;iBAI1B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;iBAK9B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;iBAI7B,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;;;2BAIvB,CAAC;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAElD,eAAO,MAAM,cAAc;;;;;iBAKzB,CAAC;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEtD,eAAO,MAAM,UAAU;;;iBAQrB,CAAC;AACH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAE9C,eAAO,MAAM,sBAAsB;;;;EAAwD,CAAC;AAC5F,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,gBAAgB;;;;;;;;iBAI3B,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,eAAO,MAAM,oBAAoB;;;;;;;;;;EAU/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,gBAAgB;;;;;iBAK3B,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAiB1D,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAUzB,CAAC;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC"}
|
package/lib/core/events.js
CHANGED
|
@@ -63,6 +63,7 @@ export const ErrorEventReasonSchema = z.enum(["error", "idle-timeout", "max-inte
|
|
|
63
63
|
export const ErrorEventSchema = z.object({
|
|
64
64
|
exitReason: ErrorEventReasonSchema,
|
|
65
65
|
reason: z.string(),
|
|
66
|
+
summary: z.unknown().optional(),
|
|
66
67
|
});
|
|
67
68
|
export const LifecycleStageSchema = z.enum([
|
|
68
69
|
"load",
|