veryfront 0.1.913 → 0.1.915
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/metrics/index.d.ts.map +1 -1
- package/esm/src/metrics/index.js +19 -5
- package/esm/src/server/handlers/request/project-run-execute.handler.d.ts +9 -0
- 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 +43 -2
- 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":"index.d.ts","sourceRoot":"","sources":["../../../src/src/metrics/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,yBAAyB,CAAC;AAcjC,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AAChF,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;AAEpE,MAAM,WAAW,uBAAuB;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/metrics/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,yBAAyB,CAAC;AAcjC,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AAChF,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;AAEpE,MAAM,WAAW,uBAAuB;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AA6XD,wBAAgB,OAAO,CACrB,IAAI,EAAE,MAAM,EACZ,KAAK,SAAI,EACT,UAAU,CAAC,EAAE,gBAAgB,EAC7B,OAAO,CAAC,EAAE,uBAAuB,GAChC,IAAI,CAON;AAED,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,gBAAgB,EAC7B,OAAO,CAAC,EAAE,uBAAuB,GAChC,IAAI,CAON;AAED,wBAAgB,KAAK,CACnB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,gBAAgB,EAC7B,OAAO,CAAC,EAAE,uBAAuB,GAChC,IAAI,CAaN;AAED,eAAO,MAAM,OAAO;;;;uBAIO,OAAO,CAAC,IAAI,CAAC;uBAGnB,IAAI;CAYxB,CAAC"}
|
package/esm/src/metrics/index.js
CHANGED
|
@@ -21,6 +21,7 @@ const histograms = new Map();
|
|
|
21
21
|
const gauges = new Map();
|
|
22
22
|
const directQueue = [];
|
|
23
23
|
const directCounterTotals = new Map();
|
|
24
|
+
const directHistogramTotals = new Map();
|
|
24
25
|
let directFlushTimer = null;
|
|
25
26
|
const DIRECT_FLUSH_DELAY_MS = 1_000;
|
|
26
27
|
const DIRECT_MAX_BATCH_SIZE = 100;
|
|
@@ -209,19 +210,31 @@ function buildDirectMetric(sample) {
|
|
|
209
210
|
};
|
|
210
211
|
}
|
|
211
212
|
if (sample.kind === "histogram") {
|
|
213
|
+
const key = `${sample.name}:${attributesKey(sample.attributes)}`;
|
|
214
|
+
const total = directHistogramTotals.get(key) ?? {
|
|
215
|
+
count: 0,
|
|
216
|
+
sum: 0,
|
|
217
|
+
bucketCounts: new Array(HISTOGRAM_BOUNDS.length + 1).fill(0),
|
|
218
|
+
startTimeUnixNano: sample.timestampUnixNano,
|
|
219
|
+
};
|
|
220
|
+
const sampleBuckets = buildHistogramBuckets(sample.value);
|
|
221
|
+
total.count += 1;
|
|
222
|
+
total.sum += sample.value;
|
|
223
|
+
total.bucketCounts = total.bucketCounts.map((count, index) => count + sampleBuckets[index]);
|
|
224
|
+
directHistogramTotals.set(key, total);
|
|
212
225
|
return {
|
|
213
226
|
name: sample.name,
|
|
214
227
|
histogram: {
|
|
215
228
|
dataPoints: [{
|
|
216
229
|
attributes,
|
|
217
|
-
startTimeUnixNano:
|
|
230
|
+
startTimeUnixNano: total.startTimeUnixNano,
|
|
218
231
|
timeUnixNano: sample.timestampUnixNano,
|
|
219
|
-
count:
|
|
220
|
-
sum:
|
|
232
|
+
count: total.count,
|
|
233
|
+
sum: total.sum,
|
|
221
234
|
explicitBounds: HISTOGRAM_BOUNDS,
|
|
222
|
-
bucketCounts:
|
|
235
|
+
bucketCounts: total.bucketCounts,
|
|
223
236
|
}],
|
|
224
|
-
aggregationTemporality:
|
|
237
|
+
aggregationTemporality: 2,
|
|
225
238
|
},
|
|
226
239
|
};
|
|
227
240
|
}
|
|
@@ -369,6 +382,7 @@ export const metrics = {
|
|
|
369
382
|
gauges.clear();
|
|
370
383
|
directQueue.length = 0;
|
|
371
384
|
directCounterTotals.clear();
|
|
385
|
+
directHistogramTotals.clear();
|
|
372
386
|
if (directFlushTimer) {
|
|
373
387
|
clearTimeout(directFlushTimer);
|
|
374
388
|
directFlushTimer = null;
|
|
@@ -26,6 +26,14 @@ export interface ProjectRunExecuteResponse {
|
|
|
26
26
|
duration_ms?: number;
|
|
27
27
|
artifacts?: unknown[];
|
|
28
28
|
}
|
|
29
|
+
interface EvalReportUploadInput {
|
|
30
|
+
request: ProjectRunExecuteRequest;
|
|
31
|
+
ctx: HandlerContext;
|
|
32
|
+
req: Request;
|
|
33
|
+
report: EvalReport;
|
|
34
|
+
projectReference: string;
|
|
35
|
+
reportPath: string;
|
|
36
|
+
}
|
|
29
37
|
interface WorkflowRunView {
|
|
30
38
|
status: string;
|
|
31
39
|
output?: unknown;
|
|
@@ -69,6 +77,7 @@ export interface ProjectRunExecuteHandlerDeps {
|
|
|
69
77
|
createWorkflowClient(config?: WorkflowClientConfig): WorkflowClientView | Promise<WorkflowClientView>;
|
|
70
78
|
runEval(definition: EvalDefinition, options: RunEvalOptions): Promise<EvalReport>;
|
|
71
79
|
createEvalAgentAdapter(config: AgentServiceEvalAdapterConfig): EvalAgentAdapter;
|
|
80
|
+
uploadEvalReport(input: EvalReportUploadInput): Promise<string | null>;
|
|
72
81
|
ensureProjectDiscovery(ctx: HandlerContext): Promise<void>;
|
|
73
82
|
executeKnowledgeIngest(input: {
|
|
74
83
|
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;AAC3F,OAAO,EAAE,KAAK,cAAc,EAAgB,MAAM,4BAA4B,CAAC;AAE/E,OAAO,EACL,KAAK,6BAA6B,EAEnC,MAAM,gCAAgC,CAAC;AAExC,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EAGd,UAAU,EACV,cAAc,EACf,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,KAAK,kBAAkB,EAAoB,MAAM,sCAAsC,CAAC;AAEjG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAGvE,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAmB,aAAa,EAAE,MAAM,aAAa,CAAC;AACnG,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAWlD,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;CACvB;AAED,UAAU,eAAe;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CACrC;AAED,UAAU,mBAAmB;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC;IACpD,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IAClC,KAAK,CACH,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3B,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAChC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;IACvD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,4BAA4B;IAC3C,YAAY,CACV,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;QACP,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,cAAc,CAAC;QACxB,MAAM,CAAC,EAAE,eAAe,CAAC;QACzB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,GACA,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAClC,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACzD,gBAAgB,CACd,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE;QACP,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,cAAc,CAAC;QACxB,MAAM,CAAC,EAAE,eAAe,CAAC;QACzB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,GACA,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;IACtC,YAAY,CACV,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;QACP,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,cAAc,CAAC;QACxB,MAAM,CAAC,EAAE,eAAe,CAAC;QACzB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,GACA,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAClC,oBAAoB,CAClB,MAAM,CAAC,EAAE,oBAAoB,GAC5B,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACpD,OAAO,CAAC,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAClF,sBAAsB,CAAC,MAAM,EAAE,6BAA6B,GAAG,gBAAgB,CAAC;IAChF,sBAAsB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,sBAAsB,CAAC,KAAK,EAAE;QAC5B,OAAO,EAAE,wBAAwB,CAAC;QAClC,GAAG,EAAE,cAAc,CAAC;QACpB,GAAG,EAAE,OAAO,CAAC;KACd,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACvC,wBAAwB,CAAC,KAAK,EAAE;QAC9B,OAAO,EAAE,wBAAwB,CAAC;QAClC,GAAG,EAAE,cAAc,CAAC;QACpB,GAAG,EAAE,OAAO,CAAC;KACd,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACvC,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,GAAG,IAAI,MAAM,CAAC;CACf;
|
|
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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"}
|
|
@@ -84,6 +84,22 @@ function parseExecuteRequest(value, pathRunId) {
|
|
|
84
84
|
input: parseRecord(value.input),
|
|
85
85
|
};
|
|
86
86
|
}
|
|
87
|
+
function sanitizePathSegment(value, fallback) {
|
|
88
|
+
const normalized = value
|
|
89
|
+
.replace(/^eval:/, "")
|
|
90
|
+
.replace(/[^A-Za-z0-9._-]+/g, "-")
|
|
91
|
+
.replace(/^-+|-+$/g, "")
|
|
92
|
+
.slice(0, 120);
|
|
93
|
+
return normalized || fallback;
|
|
94
|
+
}
|
|
95
|
+
function buildEvalReportPath(report, request) {
|
|
96
|
+
const evalId = sanitizePathSegment(report.definitionId || request.target, "eval");
|
|
97
|
+
const runId = sanitizePathSegment(request.runId, "run");
|
|
98
|
+
return `evals/reports/${evalId}/${runId}.json`;
|
|
99
|
+
}
|
|
100
|
+
function createEvalReportArtifact(path) {
|
|
101
|
+
return { kind: "eval-report", path, contentType: "application/json" };
|
|
102
|
+
}
|
|
87
103
|
function getRunId(pathname) {
|
|
88
104
|
return EXECUTE_PATH_REGEX.exec(pathname)?.[1] ?? null;
|
|
89
105
|
}
|
|
@@ -421,6 +437,14 @@ function createRuntimeApiClient(req, ctx) {
|
|
|
421
437
|
},
|
|
422
438
|
};
|
|
423
439
|
}
|
|
440
|
+
async function uploadEvalReportToProjectFiles(input) {
|
|
441
|
+
const client = createRuntimeApiClient(input.req, input.ctx);
|
|
442
|
+
const encodedProject = encodeURIComponent(input.projectReference);
|
|
443
|
+
const encodedPath = encodeURIComponent(input.reportPath);
|
|
444
|
+
const reportWithPath = { ...input.report, reportPath: input.reportPath };
|
|
445
|
+
const response = await client.put(`/projects/${encodedProject}/files/${encodedPath}`, { content: `${JSON.stringify(reportWithPath, null, 2)}\n` });
|
|
446
|
+
return response.path ?? input.reportPath;
|
|
447
|
+
}
|
|
424
448
|
function getStringArrayConfig(config, keys) {
|
|
425
449
|
for (const key of keys) {
|
|
426
450
|
const value = config[key];
|
|
@@ -677,11 +701,27 @@ async function executeEvalRun(request, ctx, req, deps) {
|
|
|
677
701
|
runId: request.runId,
|
|
678
702
|
});
|
|
679
703
|
const failed = Math.max(report.summary.failed, countFailedEvalRecords(report));
|
|
704
|
+
const projectReference = ctx.projectSlug ?? request.projectId;
|
|
705
|
+
const requestedReportPath = buildEvalReportPath(report, request);
|
|
706
|
+
let uploadError = null;
|
|
707
|
+
const reportPath = await deps.uploadEvalReport({
|
|
708
|
+
request,
|
|
709
|
+
ctx,
|
|
710
|
+
req,
|
|
711
|
+
report,
|
|
712
|
+
projectReference,
|
|
713
|
+
reportPath: requestedReportPath,
|
|
714
|
+
}).catch((error) => {
|
|
715
|
+
uploadError = `Eval report upload failed: ${errorMessage(error)}`;
|
|
716
|
+
return null;
|
|
717
|
+
});
|
|
718
|
+
const result = reportPath ? { ...report, reportPath } : report;
|
|
680
719
|
return {
|
|
681
720
|
success: failed === 0,
|
|
682
|
-
result
|
|
721
|
+
result,
|
|
722
|
+
...(reportPath ? { artifacts: [createEvalReportArtifact(reportPath)] } : {}),
|
|
683
723
|
...(failed > 0 ? { error: `${failed} eval record${failed === 1 ? "" : "s"} failed` } : {}),
|
|
684
|
-
logs:
|
|
724
|
+
logs: uploadError,
|
|
685
725
|
duration_ms: Math.max(0, deps.now() - startedAt),
|
|
686
726
|
};
|
|
687
727
|
}
|
|
@@ -771,6 +811,7 @@ const defaultDeps = {
|
|
|
771
811
|
createWorkflowClient: createRuntimeWorkflowClient,
|
|
772
812
|
runEval,
|
|
773
813
|
createEvalAgentAdapter: createAgentServiceEvalAdapter,
|
|
814
|
+
uploadEvalReport: uploadEvalReportToProjectFiles,
|
|
774
815
|
ensureProjectDiscovery,
|
|
775
816
|
executeKnowledgeIngest: executeKnowledgeIngestRun,
|
|
776
817
|
executeReleaseAssetBuild: executeReleaseAssetBuildRun,
|