veryfront 0.1.960 → 0.1.961

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  export default {
2
2
  "name": "veryfront",
3
- "version": "0.1.960",
3
+ "version": "0.1.961",
4
4
  "license": "Apache-2.0",
5
5
  "nodeModulesDir": "auto",
6
6
  "minimumDependencyAge": {
@@ -1 +1 @@
1
- {"version":3,"file":"browser-encoder.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/ag-ui/browser-encoder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,8CAA8C;AAC9C,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhF,mEAAmE;AACnE,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;CACzD;AAED,uCAAuC;AACvC,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAClC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,QAAQ,EAAE,8BAA8B,CAAC;CAC1C;AAED,+CAA+C;AAC/C,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,8CAA8C;AAC9C,wBAAgB,6BAA6B,IAAI,uBAAuB,CAcvE;AAsPD,yDAAyD;AACzD,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,8BAA8B,GACvC,aAAa,GAAG,IAAI,CAgFtB;AAoID,wDAAwD;AACxD,wBAAgB,wCAAwC,CACtD,KAAK,EAAE,uBAAuB,EAC9B,KAAK,EAAE,sBAAsB,GAC5B,uBAAuB,EAAE,CA+N3B;AAED,4CAA4C;AAC5C,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,uBAAuB,EAC9B,QAAQ,EAAE,aAAa,GAAG,IAAI,GAC7B,uBAAuB,EAAE,CA8B3B"}
1
+ {"version":3,"file":"browser-encoder.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/ag-ui/browser-encoder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,8CAA8C;AAC9C,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhF,mEAAmE;AACnE,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;CACzD;AAED,uCAAuC;AACvC,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAClC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,QAAQ,EAAE,8BAA8B,CAAC;CAC1C;AAED,+CAA+C;AAC/C,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,8CAA8C;AAC9C,wBAAgB,6BAA6B,IAAI,uBAAuB,CAcvE;AAsPD,yDAAyD;AACzD,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,8BAA8B,GACvC,aAAa,GAAG,IAAI,CAmGtB;AAoID,wDAAwD;AACxD,wBAAgB,wCAAwC,CACtD,KAAK,EAAE,uBAAuB,EAC9B,KAAK,EAAE,sBAAsB,GAC5B,uBAAuB,EAAE,CA+N3B;AAED,4CAA4C;AAC5C,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,uBAAuB,EAC9B,QAAQ,EAAE,aAAa,GAAG,IAAI,GAC7B,uBAAuB,EAAE,CA8B3B"}
@@ -280,6 +280,25 @@ export function buildAgUiBrowserFinalizeResponse(metadata) {
280
280
  ...(typeof metadata.reasoningTokens === "number"
281
281
  ? { reasoningTokens: metadata.reasoningTokens }
282
282
  : {}),
283
+ ...(typeof metadata.billableInputTokens === "number"
284
+ ? { billableInputTokens: metadata.billableInputTokens }
285
+ : {}),
286
+ ...(typeof metadata.billableOutputTokens === "number"
287
+ ? { billableOutputTokens: metadata.billableOutputTokens }
288
+ : {}),
289
+ ...(typeof metadata.costUsd === "number" ? { costUsd: metadata.costUsd } : {}),
290
+ ...(typeof metadata.providerCostUsd === "number"
291
+ ? { providerCostUsd: metadata.providerCostUsd }
292
+ : {}),
293
+ ...(typeof metadata.veryfrontChargeUsd === "number"
294
+ ? { veryfrontChargeUsd: metadata.veryfrontChargeUsd }
295
+ : {}),
296
+ ...(typeof metadata.veryfrontBilledUsd === "number"
297
+ ? { veryfrontBilledUsd: metadata.veryfrontBilledUsd }
298
+ : {}),
299
+ ...(typeof metadata.costCredits === "number" ? { costCredits: metadata.costCredits } : {}),
300
+ ...(metadata.costSource ? { costSource: metadata.costSource } : {}),
301
+ ...(metadata.usageCaptureStatus ? { usageCaptureStatus: metadata.usageCaptureStatus } : {}),
283
302
  }
284
303
  : undefined;
285
304
  if (!usage && Object.keys(responseMetadata).length === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"model-comparison.d.ts","sourceRoot":"","sources":["../../../src/src/eval/model-comparison.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAGV,mBAAmB,EAEnB,0BAA0B,EAE1B,UAAU,EACX,MAAM,YAAY,CAAC;AAggBpB,oFAAoF;AACpF,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,UAAU,EAAE,EACrB,OAAO,EAAE,0BAA0B,GAClC,mBAAmB,CAqBrB;AAsBD,gFAAgF;AAChF,wBAAgB,iCAAiC,CAAC,UAAU,EAAE,mBAAmB,GAAG,MAAM,CA0DzF"}
1
+ {"version":3,"file":"model-comparison.d.ts","sourceRoot":"","sources":["../../../src/src/eval/model-comparison.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAGV,mBAAmB,EAEnB,0BAA0B,EAE1B,UAAU,EACX,MAAM,YAAY,CAAC;AAwiBpB,oFAAoF;AACpF,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,UAAU,EAAE,EACrB,OAAO,EAAE,0BAA0B,GAClC,mBAAmB,CAqBrB;AAsBD,gFAAgF;AAChF,wBAAgB,iCAAiC,CAAC,UAAU,EAAE,mBAAmB,GAAG,MAAM,CA0DzF"}
@@ -56,13 +56,49 @@ function comparisonCost(summary) {
56
56
  return summary.veryfrontBilledUsd ?? summary.veryfrontChargeUsd ?? summary.costUsd ??
57
57
  summary.providerCostUsd;
58
58
  }
59
- function hasGatewayBilledCost(baselineSummary, candidateSummary) {
60
- return baselineSummary.veryfrontBilledUsd !== undefined &&
61
- candidateSummary.veryfrontBilledUsd !== undefined;
62
- }
63
- function hasGatewayMeteredCost(baselineSummary, candidateSummary) {
64
- return baselineSummary.veryfrontChargeUsd !== undefined &&
65
- candidateSummary.veryfrontChargeUsd !== undefined;
59
+ function defaultCostComparison(baselineSummary, candidateSummary) {
60
+ if (baselineSummary.veryfrontBilledUsd !== undefined &&
61
+ candidateSummary.veryfrontBilledUsd !== undefined) {
62
+ return {
63
+ baseline: baselineSummary.veryfrontBilledUsd,
64
+ candidate: candidateSummary.veryfrontBilledUsd,
65
+ label: "Veryfront billed cost",
66
+ };
67
+ }
68
+ if (baselineSummary.costSource === "gateway" &&
69
+ candidateSummary.costSource === "gateway" &&
70
+ baselineSummary.costCredits !== undefined &&
71
+ candidateSummary.costCredits !== undefined) {
72
+ return {
73
+ baseline: baselineSummary.costCredits,
74
+ candidate: candidateSummary.costCredits,
75
+ label: "Veryfront credits",
76
+ };
77
+ }
78
+ if (baselineSummary.veryfrontChargeUsd !== undefined &&
79
+ candidateSummary.veryfrontChargeUsd !== undefined) {
80
+ return {
81
+ baseline: baselineSummary.veryfrontChargeUsd,
82
+ candidate: candidateSummary.veryfrontChargeUsd,
83
+ label: "Veryfront metered cost",
84
+ };
85
+ }
86
+ if (baselineSummary.costUsd !== undefined && candidateSummary.costUsd !== undefined) {
87
+ return {
88
+ baseline: baselineSummary.costUsd,
89
+ candidate: candidateSummary.costUsd,
90
+ label: "cost",
91
+ };
92
+ }
93
+ if (baselineSummary.providerCostUsd !== undefined &&
94
+ candidateSummary.providerCostUsd !== undefined) {
95
+ return {
96
+ baseline: baselineSummary.providerCostUsd,
97
+ candidate: candidateSummary.providerCostUsd,
98
+ label: "provider cost",
99
+ };
100
+ }
101
+ return undefined;
66
102
  }
67
103
  function metricValue(summary, metric) {
68
104
  switch (metric) {
@@ -295,16 +331,16 @@ function createCandidateDecision(input) {
295
331
  }
296
332
  return { decision: "needs-review", objectiveScore: objective.score, reasons };
297
333
  }
298
- const costImprovement = improvementPct(comparisonCost(baselineSummary), comparisonCost(candidateSummary));
334
+ const costComparison = defaultCostComparison(baselineSummary, candidateSummary);
335
+ const costImprovement = improvementPct(costComparison?.baseline, costComparison?.candidate);
299
336
  const tokenImprovement = improvementPct(baselineSummary.totalTokens, candidateSummary.totalTokens);
300
337
  const latencyImprovement = improvementPct(baselineSummary.p95Ms, candidateSummary.p95Ms);
338
+ if (costComparison !== undefined && costImprovement !== undefined && costImprovement < 0) {
339
+ reasons.push(`${costComparison.label} regressed by ${formatPct(Math.abs(costImprovement))}`);
340
+ return { decision: "needs-review", reasons };
341
+ }
301
342
  if (meetsImprovement(costImprovement, input.options.minCostImprovementPct)) {
302
- const costLabel = hasGatewayBilledCost(baselineSummary, candidateSummary)
303
- ? "Veryfront billed cost"
304
- : hasGatewayMeteredCost(baselineSummary, candidateSummary)
305
- ? "Veryfront metered cost"
306
- : "cost";
307
- reasons.push(`${costLabel} improved by ${formatPct(costImprovement)}`);
343
+ reasons.push(`${costComparison.label} improved by ${formatPct(costImprovement)}`);
308
344
  return { decision: "promote-candidate", reasons };
309
345
  }
310
346
  if (meetsImprovement(tokenImprovement, input.options.minTokenImprovementPct)) {
@@ -323,7 +359,8 @@ function compareCandidate(candidate, baseline, options) {
323
359
  const candidateSummary = modelSummary(candidate, options.baselineModel);
324
360
  const baselineSummary = modelSummary(baseline, options.baselineModel);
325
361
  const decision = createCandidateDecision({ candidate, baseline, options });
326
- const costImprovement = improvementPct(comparisonCost(baselineSummary), comparisonCost(candidateSummary));
362
+ const costComparison = defaultCostComparison(baselineSummary, candidateSummary);
363
+ const costImprovement = improvementPct(costComparison?.baseline, costComparison?.candidate);
327
364
  const tokenImprovement = improvementPct(baselineSummary.totalTokens, candidateSummary.totalTokens);
328
365
  const latencyImprovement = improvementPct(baselineSummary.p95Ms, candidateSummary.p95Ms);
329
366
  return {
@@ -1,3 +1,3 @@
1
1
  /** Shared version value. */
2
- export declare const VERSION = "0.1.960";
2
+ export declare const VERSION = "0.1.961";
3
3
  //# sourceMappingURL=version-constant.d.ts.map
@@ -1,4 +1,4 @@
1
1
  // Keep in sync with deno.json version.
2
2
  // scripts/release.ts updates this constant during releases.
3
3
  /** Shared version value. */
4
- export const VERSION = "0.1.960";
4
+ export const VERSION = "0.1.961";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "veryfront",
3
- "version": "0.1.960",
3
+ "version": "0.1.961",
4
4
  "description": "The simplest way to build AI-powered apps",
5
5
  "keywords": [
6
6
  "react",