veryfront 0.1.879 → 0.1.881
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/esm/deno.js +1 -1
- package/esm/src/eval/report.d.ts.map +1 -1
- package/esm/src/eval/report.js +2 -0
- package/esm/src/eval/studio.d.ts +3 -3
- package/esm/src/eval/studio.d.ts.map +1 -1
- package/esm/src/eval/studio.js +2 -1
- package/esm/src/runs/index.d.ts +1 -1
- package/esm/src/runs/index.d.ts.map +1 -1
- package/esm/src/runs/runs-client.d.ts +9 -1
- package/esm/src/runs/runs-client.d.ts.map +1 -1
- package/esm/src/runs/runs-client.js +19 -0
- package/esm/src/server/handlers/request/project-run-execute.handler.d.ts +12 -1
- package/esm/src/server/handlers/request/project-run-execute.handler.d.ts.map +1 -1
- package/esm/src/server/handlers/request/project-run-execute.handler.js +105 -3
- package/esm/src/utils/version-constant.d.ts +1 -1
- package/esm/src/utils/version-constant.js +1 -1
- package/package.json +1 -1
package/esm/deno.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../../src/src/eval/report.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EAGd,UAAU,EACV,UAAU,EACV,iBAAiB,EAClB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../../src/src/eval/report.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EAGd,UAAU,EACV,UAAU,EACV,iBAAiB,EAClB,MAAM,YAAY,CAAC;AA8CpB,mEAAmE;AACnE,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,iBAAiB,CAU7E;AAED,oEAAoE;AACpE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IACtC,UAAU,EAAE,cAAc,CAAC;IAC3B,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,IAAI,CAAC;CACf,GAAG,UAAU,CAYb"}
|
package/esm/src/eval/report.js
CHANGED
|
@@ -3,6 +3,8 @@ function isBlockingFailure(result) {
|
|
|
3
3
|
(result.severity === "gate" || result.severity === "budget");
|
|
4
4
|
}
|
|
5
5
|
function recordPassed(record) {
|
|
6
|
+
if (!record.completed || record.error)
|
|
7
|
+
return false;
|
|
6
8
|
const results = [...(record.metrics ?? []), ...(record.checks ?? [])];
|
|
7
9
|
return results.every((result) => !isBlockingFailure(result));
|
|
8
10
|
}
|
package/esm/src/eval/studio.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { InferSchema } from "../extensions/schema/index.js";
|
|
2
2
|
import type { DiscoveredEval } from "./discovery.js";
|
|
3
3
|
/** Schema for Eval Studio capabilities. */
|
|
4
|
-
export declare const getEvalStudioCapabilitySchema: () => import("../internal-agents/schema.js").Schema<"project.evals.read" | "project.evals.write">;
|
|
4
|
+
export declare const getEvalStudioCapabilitySchema: () => import("../internal-agents/schema.js").Schema<"project.evals.read" | "project.evals.write" | "project.evals.run">;
|
|
5
5
|
/** Schema for an editable Eval source field name. */
|
|
6
6
|
export declare const getEvalEditableFieldSchema: () => import("../internal-agents/schema.js").Schema<"target" | "description" | "metrics" | "name" | "metadata" | "tags" | "check" | "dataset" | "repetitions">;
|
|
7
7
|
/** Schema for an Eval source reference. */
|
|
@@ -85,7 +85,7 @@ export declare const getEvalSourceDocumentSchema: () => import("../internal-agen
|
|
|
85
85
|
metadata: import("../internal-agents/schema.js").Schema<Record<string, unknown>>;
|
|
86
86
|
editableFields: import("../internal-agents/schema.js").Schema<("target" | "description" | "metrics" | "name" | "metadata" | "tags" | "check" | "dataset" | "repetitions")[]>;
|
|
87
87
|
dynamicFields: import("../internal-agents/schema.js").Schema<("target" | "description" | "metrics" | "name" | "metadata" | "tags" | "check" | "dataset" | "repetitions")[]>;
|
|
88
|
-
capabilities: import("../internal-agents/schema.js").Schema<("project.evals.read" | "project.evals.write")[]>;
|
|
88
|
+
capabilities: import("../internal-agents/schema.js").Schema<("project.evals.read" | "project.evals.write" | "project.evals.run")[]>;
|
|
89
89
|
}>>;
|
|
90
90
|
/** Schema for a source patch submitted from an Eval editor. */
|
|
91
91
|
export declare const getEvalSourcePatchSchema: () => import("../internal-agents/schema.js").Schema<import("../extensions/schema/schema-validator.js").InferShape<{
|
|
@@ -155,7 +155,7 @@ export declare const getEvalRunSchema: () => import("../internal-agents/schema.j
|
|
|
155
155
|
startedAt: import("../internal-agents/schema.js").Schema<string | null>;
|
|
156
156
|
completedAt: import("../internal-agents/schema.js").Schema<string | null>;
|
|
157
157
|
}>>;
|
|
158
|
-
/** Capability string Studio uses for Eval
|
|
158
|
+
/** Capability string Studio uses for Eval source and run actions. */
|
|
159
159
|
export type EvalStudioCapability = InferSchema<ReturnType<typeof getEvalStudioCapabilitySchema>>;
|
|
160
160
|
/** Form-editable Eval source field name. */
|
|
161
161
|
export type EvalEditableField = InferSchema<ReturnType<typeof getEvalEditableFieldSchema>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"studio.d.ts","sourceRoot":"","sources":["../../../src/src/eval/studio.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrD,2CAA2C;AAC3C,eAAO,MAAM,6BAA6B,
|
|
1
|
+
{"version":3,"file":"studio.d.ts","sourceRoot":"","sources":["../../../src/src/eval/studio.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrD,2CAA2C;AAC3C,eAAO,MAAM,6BAA6B,yHAEzC,CAAC;AAEF,qDAAqD;AACrD,eAAO,MAAM,0BAA0B,gKActC,CAAC;AAEF,2CAA2C;AAC3C,eAAO,MAAM,4BAA4B;;;;GAMxC,CAAC;AAEF,6DAA6D;AAC7D,eAAO,MAAM,0BAA0B;;;;;GAOtC,CAAC;AAEF,6DAA6D;AAC7D,eAAO,MAAM,0BAA0B;;;;;;;;;;;GAQtC,CAAC;AAEF,4DAA4D;AAC5D,eAAO,MAAM,yBAAyB;;;;;;;;;;;GAarC,CAAC;AAEF,yDAAyD;AACzD,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkBvC,CAAC;AAEF,+DAA+D;AAC/D,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgBpC,CAAC;AAEF,gDAAgD;AAChD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;GAsB5B,CAAC;AAEF,qEAAqE;AACrE,MAAM,MAAM,oBAAoB,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,6BAA6B,CAAC,CAAC,CAAC;AACjG,4CAA4C;AAC5C,MAAM,MAAM,iBAAiB,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,0BAA0B,CAAC,CAAC,CAAC;AAC3F,8CAA8C;AAC9C,MAAM,MAAM,mBAAmB,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,4BAA4B,CAAC,CAAC,CAAC;AAC/F,4CAA4C;AAC5C,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,2BAA2B,CAAC,CAAC,CAAC;AAC7F,mDAAmD;AACnD,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAC,CAAC;AACvF,oCAAoC;AACpC,MAAM,MAAM,OAAO,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC;AAEvE,4EAA4E;AAC5E,MAAM,WAAW,+BAA+B;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,oBAAoB,EAAE,CAAC;CACvC;AAuDD,8EAA8E;AAC9E,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,cAAc,EAC1B,OAAO,GAAE,+BAAoC,GAC5C,kBAAkB,CAyBpB"}
|
package/esm/src/eval/studio.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { defineSchema } from "../schemas/index.js";
|
|
2
2
|
/** Schema for Eval Studio capabilities. */
|
|
3
|
-
export const getEvalStudioCapabilitySchema = defineSchema((v) => v.enum(["project.evals.read", "project.evals.write"]));
|
|
3
|
+
export const getEvalStudioCapabilitySchema = defineSchema((v) => v.enum(["project.evals.read", "project.evals.write", "project.evals.run"]));
|
|
4
4
|
/** Schema for an editable Eval source field name. */
|
|
5
5
|
export const getEvalEditableFieldSchema = defineSchema((v) => v.enum([
|
|
6
6
|
"name",
|
|
@@ -106,6 +106,7 @@ export const getEvalRunSchema = defineSchema((v) => v.object({
|
|
|
106
106
|
const DEFAULT_EVAL_STUDIO_CAPABILITIES = [
|
|
107
107
|
"project.evals.read",
|
|
108
108
|
"project.evals.write",
|
|
109
|
+
"project.evals.run",
|
|
109
110
|
];
|
|
110
111
|
const BASE_EDITABLE_FIELDS = [
|
|
111
112
|
"name",
|
package/esm/src/runs/index.d.ts
CHANGED
|
@@ -22,6 +22,6 @@
|
|
|
22
22
|
* ```
|
|
23
23
|
*/
|
|
24
24
|
import "../../_dnt.polyfills.js";
|
|
25
|
-
export { createRunsClient, type CreateTaskRunInput, type CreateWorkflowRunInput, type KnowledgeIngestByUploadIdsInput, type KnowledgeIngestByUploadPathsInput, type KnowledgeIngestByUploadPrefixInput, type ListRunEventsOptions, type ListRunsOptions, type ProjectScopedOptions, type RunRuntimeTargetKind, type RunRuntimeTargetOptions, VeryfrontRunsClient, type VeryfrontRunsClientConfig, } from "./runs-client.js";
|
|
25
|
+
export { type CreateEvalRunInput, createRunsClient, type CreateTaskRunInput, type CreateWorkflowRunInput, type KnowledgeIngestByUploadIdsInput, type KnowledgeIngestByUploadPathsInput, type KnowledgeIngestByUploadPrefixInput, type ListRunEventsOptions, type ListRunsOptions, type ProjectScopedOptions, type RunRuntimeTargetKind, type RunRuntimeTargetOptions, VeryfrontRunsClient, type VeryfrontRunsClientConfig, } from "./runs-client.js";
|
|
26
26
|
export { type CancelRunResponse, CancelRunResponseSchema, type CreateRunResponse, CreateRunResponseSchema, type Run, type RunEvent, RunEventListSchema, RunEventSchema, type RunExecutionError, type RunKind, type RunList, RunListSchema, type RunOwner, RunSchema, type RunStatus, type RunTriggerKind, } from "./schemas.js";
|
|
27
27
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/runs/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,yBAAyB,CAAC;AAGjC,OAAO,EACL,gBAAgB,EAChB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,+BAA+B,EACpC,KAAK,iCAAiC,EACtC,KAAK,kCAAkC,EACvC,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC5B,mBAAmB,EACnB,KAAK,yBAAyB,GAC/B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,KAAK,iBAAiB,EACtB,uBAAuB,EACvB,KAAK,iBAAiB,EACtB,uBAAuB,EACvB,KAAK,GAAG,EACR,KAAK,QAAQ,EACb,kBAAkB,EAClB,cAAc,EACd,KAAK,iBAAiB,EACtB,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,aAAa,EACb,KAAK,QAAQ,EACb,SAAS,EACT,KAAK,SAAS,EACd,KAAK,cAAc,GACpB,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/runs/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,yBAAyB,CAAC;AAGjC,OAAO,EACL,KAAK,kBAAkB,EACvB,gBAAgB,EAChB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,+BAA+B,EACpC,KAAK,iCAAiC,EACtC,KAAK,kCAAkC,EACvC,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC5B,mBAAmB,EACnB,KAAK,yBAAyB,GAC/B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,KAAK,iBAAiB,EACtB,uBAAuB,EACvB,KAAK,iBAAiB,EACtB,uBAAuB,EACvB,KAAK,GAAG,EACR,KAAK,QAAQ,EACb,kBAAkB,EAClB,cAAc,EACd,KAAK,iBAAiB,EACtB,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,aAAa,EACb,KAAK,QAAQ,EACb,SAAS,EACT,KAAK,SAAS,EACd,KAAK,cAAc,GACpB,MAAM,cAAc,CAAC"}
|
|
@@ -11,7 +11,7 @@ export interface VeryfrontRunsClientConfig {
|
|
|
11
11
|
export interface ProjectScopedOptions {
|
|
12
12
|
projectReference?: string;
|
|
13
13
|
}
|
|
14
|
-
/** Runtime target for a task or
|
|
14
|
+
/** Runtime target for a task, workflow, or eval run. */
|
|
15
15
|
export type RunRuntimeTargetKind = "main_branch" | "environment" | "preview_branch";
|
|
16
16
|
/** Runtime target fields accepted by run creation APIs. */
|
|
17
17
|
export interface RunRuntimeTargetOptions {
|
|
@@ -38,6 +38,13 @@ export interface CreateWorkflowRunInput extends RunCreateBaseInput, RunRuntimeTa
|
|
|
38
38
|
input?: Record<string, unknown>;
|
|
39
39
|
startMode?: string;
|
|
40
40
|
}
|
|
41
|
+
/** Input payload for creating an eval run. */
|
|
42
|
+
export interface CreateEvalRunInput extends RunCreateBaseInput, RunRuntimeTargetOptions {
|
|
43
|
+
target: `eval:${string}`;
|
|
44
|
+
input?: Record<string, unknown>;
|
|
45
|
+
config?: Record<string, unknown>;
|
|
46
|
+
startMode?: string;
|
|
47
|
+
}
|
|
41
48
|
/** Input payload for knowledge ingest by upload IDs. */
|
|
42
49
|
export interface KnowledgeIngestByUploadIdsInput extends Omit<CreateTaskRunInput, "target" | "config"> {
|
|
43
50
|
uploadIds: string[];
|
|
@@ -77,6 +84,7 @@ export declare class VeryfrontRunsClient {
|
|
|
77
84
|
clearProjectReference(): void;
|
|
78
85
|
createTaskRun(input: CreateTaskRunInput): Promise<CreateRunResponse>;
|
|
79
86
|
createWorkflowRun(input: CreateWorkflowRunInput): Promise<CreateRunResponse>;
|
|
87
|
+
createEvalRun(input: CreateEvalRunInput): Promise<CreateRunResponse>;
|
|
80
88
|
list(options?: ListRunsOptions): Promise<RunList>;
|
|
81
89
|
get(runId: string): Promise<Run>;
|
|
82
90
|
events(runId: string, options?: ListRunEventsOptions): Promise<RunEventList>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runs-client.d.ts","sourceRoot":"","sources":["../../../src/src/runs/runs-client.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,WAAW,EACjB,MAAM,4DAA4D,CAAC;AAGpE,OAAO,EACL,KAAK,iBAAiB,EAEtB,KAAK,iBAAiB,EAEtB,KAAK,GAAG,EACR,KAAK,YAAY,EAEjB,KAAK,OAAO,EAGb,MAAM,cAAc,CAAC;AAOtB,uDAAuD;AACvD,MAAM,WAAW,yBAAyB;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;CAC9B;AAED,uDAAuD;AACvD,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,
|
|
1
|
+
{"version":3,"file":"runs-client.d.ts","sourceRoot":"","sources":["../../../src/src/runs/runs-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -98,6 +98,25 @@ export class VeryfrontRunsClient {
|
|
|
98
98
|
},
|
|
99
99
|
});
|
|
100
100
|
}
|
|
101
|
+
createEvalRun(input) {
|
|
102
|
+
const { projectId, publicId, parentRunId, target, input: evalInput, config, startMode, ...runtimeTarget } = input;
|
|
103
|
+
return this.requestJson("/runs", CreateRunResponseSchema, {
|
|
104
|
+
method: "POST",
|
|
105
|
+
body: {
|
|
106
|
+
kind: "eval",
|
|
107
|
+
owner: { kind: "project", id: projectId },
|
|
108
|
+
public_id: publicId,
|
|
109
|
+
parent_run_id: parentRunId,
|
|
110
|
+
request: {
|
|
111
|
+
target,
|
|
112
|
+
...runtimeTargetBody(runtimeTarget),
|
|
113
|
+
input: evalInput,
|
|
114
|
+
config,
|
|
115
|
+
start_mode: startMode,
|
|
116
|
+
},
|
|
117
|
+
},
|
|
118
|
+
});
|
|
119
|
+
}
|
|
101
120
|
async list(options = {}) {
|
|
102
121
|
const { projectReference, cursor, limit } = options;
|
|
103
122
|
return await this.requestJson(withQuery(`/projects/${encodeURIComponent(this.resolveProjectReference(projectReference))}/runs`, toQueryParams({ cursor, limit })), RunListSchema);
|
|
@@ -2,13 +2,16 @@ import type { RuntimeAdapter } from "../../../platform/index.js";
|
|
|
2
2
|
import type { VeryfrontConfig } from "../../../config/index.js";
|
|
3
3
|
import { type DiscoveredTask } from "../../../task/discovery.js";
|
|
4
4
|
import { type RunTaskOptions, type TaskRunResult } from "../../../task/runner.js";
|
|
5
|
+
import { type DiscoveredEval } from "../../../eval/discovery.js";
|
|
6
|
+
import { type AgentServiceEvalAdapterConfig } from "../../../eval/agent-service.js";
|
|
7
|
+
import type { EvalAgentAdapter, EvalDefinition, EvalReport, RunEvalOptions } from "../../../eval/types.js";
|
|
5
8
|
import { type DiscoveredWorkflow } from "../../../workflow/discovery/index.js";
|
|
6
9
|
import type { WorkflowClientConfig } from "../../../workflow/index.js";
|
|
7
10
|
import type { HandlerContext, HandlerMetadata, HandlerResult } from "../types.js";
|
|
8
11
|
import { BaseHandler } from "../response/base.js";
|
|
9
12
|
export interface ProjectRunExecuteRequest {
|
|
10
13
|
runId: string;
|
|
11
|
-
kind: "task" | "workflow";
|
|
14
|
+
kind: "task" | "workflow" | "eval";
|
|
12
15
|
target: string;
|
|
13
16
|
projectId: string;
|
|
14
17
|
config?: Record<string, unknown>;
|
|
@@ -56,7 +59,15 @@ export interface ProjectRunExecuteHandlerDeps {
|
|
|
56
59
|
config?: VeryfrontConfig;
|
|
57
60
|
debug?: boolean;
|
|
58
61
|
}): Promise<DiscoveredWorkflow | null>;
|
|
62
|
+
findEvalById(evalId: string, options: {
|
|
63
|
+
projectDir: string;
|
|
64
|
+
adapter: RuntimeAdapter;
|
|
65
|
+
config?: VeryfrontConfig;
|
|
66
|
+
debug?: boolean;
|
|
67
|
+
}): Promise<DiscoveredEval | null>;
|
|
59
68
|
createWorkflowClient(config?: WorkflowClientConfig): WorkflowClientView | Promise<WorkflowClientView>;
|
|
69
|
+
runEval(definition: EvalDefinition, options: RunEvalOptions): Promise<EvalReport>;
|
|
70
|
+
createEvalAgentAdapter(config: AgentServiceEvalAdapterConfig): EvalAgentAdapter;
|
|
60
71
|
ensureProjectDiscovery(ctx: HandlerContext): Promise<void>;
|
|
61
72
|
executeKnowledgeIngest(input: {
|
|
62
73
|
request: ProjectRunExecuteRequest;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-run-execute.handler.d.ts","sourceRoot":"","sources":["../../../../../src/src/server/handlers/request/project-run-execute.handler.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,KAAK,cAAc,EAAgB,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAW,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"project-run-execute.handler.d.ts","sourceRoot":"","sources":["../../../../../src/src/server/handlers/request/project-run-execute.handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,9 @@ import { INTERNAL_AGENT_CONTROL_PLANE_MAX_BODY_BYTES, InternalAgentRequestBodyTo
|
|
|
6
6
|
import { getHostEnv } from "../../../platform/compat/process.js";
|
|
7
7
|
import { findTaskById } from "../../../task/discovery.js";
|
|
8
8
|
import { runTask } from "../../../task/runner.js";
|
|
9
|
+
import { findEvalById } from "../../../eval/discovery.js";
|
|
10
|
+
import { runEval } from "../../../eval/runner.js";
|
|
11
|
+
import { createAgentServiceEvalAdapter, } from "../../../eval/agent-service.js";
|
|
9
12
|
import { agentRegistry } from "../../../agent/composition/index.js";
|
|
10
13
|
import { findWorkflowById } from "../../../workflow/discovery/index.js";
|
|
11
14
|
import { createWorkflowClient, RedisBackend } from "../../../workflow/index.js";
|
|
@@ -38,8 +41,9 @@ function parseExecuteRequest(value, pathRunId) {
|
|
|
38
41
|
throw new Error("Invalid runId");
|
|
39
42
|
if (runId !== pathRunId)
|
|
40
43
|
throw new Error("Run id does not match request path");
|
|
41
|
-
if (kind !== "task" && kind !== "workflow")
|
|
44
|
+
if (kind !== "task" && kind !== "workflow" && kind !== "eval") {
|
|
42
45
|
throw new Error("Invalid run kind");
|
|
46
|
+
}
|
|
43
47
|
if (typeof target !== "string" || !target)
|
|
44
48
|
throw new Error("Invalid target");
|
|
45
49
|
if (typeof projectId !== "string" || !projectId)
|
|
@@ -49,6 +53,8 @@ function parseExecuteRequest(value, pathRunId) {
|
|
|
49
53
|
if (kind === "workflow" && !target.startsWith("workflow:")) {
|
|
50
54
|
throw new Error("Invalid workflow target");
|
|
51
55
|
}
|
|
56
|
+
if (kind === "eval" && !target.startsWith("eval:"))
|
|
57
|
+
throw new Error("Invalid eval target");
|
|
52
58
|
return {
|
|
53
59
|
runId,
|
|
54
60
|
kind,
|
|
@@ -216,9 +222,19 @@ async function executeWorkflowRun(request, ctx, deps) {
|
|
|
216
222
|
await client.destroy();
|
|
217
223
|
}
|
|
218
224
|
}
|
|
225
|
+
function getRuntimeApiToken(req, ctx) {
|
|
226
|
+
return req.headers.get("x-token") ?? ctx.proxyToken ?? ctx.requestContext?.token ?? "";
|
|
227
|
+
}
|
|
228
|
+
function getSameOriginAgUiEndpoint(req) {
|
|
229
|
+
const url = new URL(req.url);
|
|
230
|
+
url.pathname = "/api/ag-ui";
|
|
231
|
+
url.search = "";
|
|
232
|
+
url.hash = "";
|
|
233
|
+
return url.toString();
|
|
234
|
+
}
|
|
219
235
|
function createRuntimeApiClient(req, ctx) {
|
|
220
236
|
const apiUrl = getEnvironmentConfig().apiBaseUrl;
|
|
221
|
-
const token = req
|
|
237
|
+
const token = getRuntimeApiToken(req, ctx);
|
|
222
238
|
if (!token) {
|
|
223
239
|
throw new Error("Missing project runtime API token");
|
|
224
240
|
}
|
|
@@ -417,6 +433,87 @@ function getNumberConfig(config, keys) {
|
|
|
417
433
|
}
|
|
418
434
|
return undefined;
|
|
419
435
|
}
|
|
436
|
+
function getPositiveIntConfig(config, keys) {
|
|
437
|
+
const value = getNumberConfig(config, keys);
|
|
438
|
+
if (value === undefined)
|
|
439
|
+
return undefined;
|
|
440
|
+
const normalized = Math.trunc(value);
|
|
441
|
+
return normalized > 0 ? normalized : undefined;
|
|
442
|
+
}
|
|
443
|
+
function isBlockingEvalResult(result) {
|
|
444
|
+
return !result.skipped && result.pass === false &&
|
|
445
|
+
(result.severity === "gate" || result.severity === "budget");
|
|
446
|
+
}
|
|
447
|
+
function evalRecordFailed(record) {
|
|
448
|
+
if (!record.completed || record.error)
|
|
449
|
+
return true;
|
|
450
|
+
return [...(record.metrics ?? []), ...(record.checks ?? [])].some(isBlockingEvalResult);
|
|
451
|
+
}
|
|
452
|
+
function countFailedEvalRecords(report) {
|
|
453
|
+
return report.records.filter(evalRecordFailed).length;
|
|
454
|
+
}
|
|
455
|
+
function withEvalRunConfig(definition, config) {
|
|
456
|
+
const repetitions = getPositiveIntConfig(config, ["repetitions", "repeat", "repetitionCount"]);
|
|
457
|
+
if (repetitions === undefined || repetitions === definition.repetitions) {
|
|
458
|
+
return definition;
|
|
459
|
+
}
|
|
460
|
+
return {
|
|
461
|
+
...definition,
|
|
462
|
+
repetitions,
|
|
463
|
+
};
|
|
464
|
+
}
|
|
465
|
+
function createEvalAdapterConfig(input) {
|
|
466
|
+
const config = input.request.config ?? {};
|
|
467
|
+
const runInput = input.request.input ?? {};
|
|
468
|
+
const authToken = getRuntimeApiToken(input.req, input.ctx);
|
|
469
|
+
if (!authToken) {
|
|
470
|
+
throw new Error("Missing project runtime API token");
|
|
471
|
+
}
|
|
472
|
+
return {
|
|
473
|
+
endpoint: getSameOriginAgUiEndpoint(input.req),
|
|
474
|
+
authToken,
|
|
475
|
+
projectId: input.request.projectId,
|
|
476
|
+
branchId: getStringConfig(config, ["branch_id", "branchId"]) ??
|
|
477
|
+
getStringConfig(runInput, ["branch_id", "branchId"]),
|
|
478
|
+
model: getStringConfig(config, ["model"]),
|
|
479
|
+
allowedTools: getStringArrayConfig(config, ["allowed_tools", "allowedTools"]),
|
|
480
|
+
maxSteps: getPositiveIntConfig(config, ["max_steps", "maxSteps"]),
|
|
481
|
+
};
|
|
482
|
+
}
|
|
483
|
+
async function executeEvalRun(request, ctx, req, deps) {
|
|
484
|
+
const startedAt = deps.now();
|
|
485
|
+
await deps.ensureProjectDiscovery(ctx);
|
|
486
|
+
const evalItem = await deps.findEvalById(request.target, {
|
|
487
|
+
projectDir: ctx.projectDir,
|
|
488
|
+
adapter: ctx.adapter,
|
|
489
|
+
config: ctx.config,
|
|
490
|
+
debug: ctx.debug,
|
|
491
|
+
});
|
|
492
|
+
if (!evalItem) {
|
|
493
|
+
return {
|
|
494
|
+
success: false,
|
|
495
|
+
error: `Eval not found: ${request.target}`,
|
|
496
|
+
logs: null,
|
|
497
|
+
duration_ms: 0,
|
|
498
|
+
};
|
|
499
|
+
}
|
|
500
|
+
const config = request.config ?? {};
|
|
501
|
+
const report = await deps.runEval(withEvalRunConfig(evalItem.definition, config), {
|
|
502
|
+
adapters: {
|
|
503
|
+
agent: deps.createEvalAgentAdapter(createEvalAdapterConfig({ request, req, ctx })),
|
|
504
|
+
},
|
|
505
|
+
baseDir: ctx.projectDir,
|
|
506
|
+
runId: request.runId,
|
|
507
|
+
});
|
|
508
|
+
const failed = Math.max(report.summary.failed, countFailedEvalRecords(report));
|
|
509
|
+
return {
|
|
510
|
+
success: failed === 0,
|
|
511
|
+
result: report,
|
|
512
|
+
...(failed > 0 ? { error: `${failed} eval record${failed === 1 ? "" : "s"} failed` } : {}),
|
|
513
|
+
logs: null,
|
|
514
|
+
duration_ms: Math.max(0, deps.now() - startedAt),
|
|
515
|
+
};
|
|
516
|
+
}
|
|
420
517
|
async function executeReleaseAssetBuildRun(input) {
|
|
421
518
|
const startedAt = Date.now();
|
|
422
519
|
const config = input.request.config ?? {};
|
|
@@ -499,7 +596,10 @@ const defaultDeps = {
|
|
|
499
596
|
findTaskById,
|
|
500
597
|
runTask,
|
|
501
598
|
findWorkflowById,
|
|
599
|
+
findEvalById,
|
|
502
600
|
createWorkflowClient: createRuntimeWorkflowClient,
|
|
601
|
+
runEval,
|
|
602
|
+
createEvalAgentAdapter: createAgentServiceEvalAdapter,
|
|
503
603
|
ensureProjectDiscovery,
|
|
504
604
|
executeKnowledgeIngest: executeKnowledgeIngestRun,
|
|
505
605
|
executeReleaseAssetBuild: executeReleaseAssetBuildRun,
|
|
@@ -550,7 +650,9 @@ export class ProjectRunExecuteHandler extends BaseHandler {
|
|
|
550
650
|
? await this.deps.executeReleaseAssetBuild({ request, ctx, req })
|
|
551
651
|
: request.kind === "task"
|
|
552
652
|
? await executeTaskRun(request, ctx, this.deps)
|
|
553
|
-
:
|
|
653
|
+
: request.kind === "eval"
|
|
654
|
+
? await executeEvalRun(request, ctx, req, this.deps)
|
|
655
|
+
: await executeWorkflowRun(request, ctx, this.deps);
|
|
554
656
|
return this.respond(builder.json(response, 200));
|
|
555
657
|
}
|
|
556
658
|
catch (error) {
|