@newrelic/preflight 1.48.2 → 1.48.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/metrics/efficiency-score.d.ts +13 -0
- package/dist/metrics/efficiency-score.d.ts.map +1 -1
- package/dist/metrics/efficiency-score.js +35 -14
- package/dist/metrics/efficiency-score.js.map +1 -1
- package/dist/metrics/tool-selection-scorer.d.ts.map +1 -1
- package/dist/metrics/tool-selection-scorer.js +21 -1
- package/dist/metrics/tool-selection-scorer.js.map +1 -1
- package/package.json +1 -1
|
@@ -7,6 +7,12 @@
|
|
|
7
7
|
* 3. Autonomy: 1 - (userQuestions / toolCalls)
|
|
8
8
|
* 4. First-attempt quality: 1 - (thrashIterations / 3), floored at 0
|
|
9
9
|
*
|
|
10
|
+
* Speed carries a deliberately small default weight (0.10 vs. 0.30 for the
|
|
11
|
+
* other three) — a raw lines/duration ratio rewards bulk regeneration as much
|
|
12
|
+
* as a careful fix, and zero-linesChanged tasks (investigation, review,
|
|
13
|
+
* delegated work) exclude speed from the composite entirely rather than
|
|
14
|
+
* scoring 0 on it, renormalizing across the remaining components instead.
|
|
15
|
+
*
|
|
10
16
|
* Final score = weighted average, clamped to [0, 1].
|
|
11
17
|
*/
|
|
12
18
|
import type { MetricAggregator } from '../shared/index.js';
|
|
@@ -97,6 +103,13 @@ export declare class EfficiencyScorer implements Resettable {
|
|
|
97
103
|
emitMetrics(aggregator: MetricAggregator): void;
|
|
98
104
|
reset(_sessionId: string): void;
|
|
99
105
|
private computeComponents;
|
|
106
|
+
/**
|
|
107
|
+
* Weighted average of the four components, clamped to [0, 1]. When zero
|
|
108
|
+
* lines changed, speed is excluded entirely rather than scored as 0 —
|
|
109
|
+
* investigation/review/delegated tasks make no edits by design, so the
|
|
110
|
+
* remaining weights are renormalized to sum to 1 on their own.
|
|
111
|
+
*/
|
|
112
|
+
private computeWeightedScore;
|
|
100
113
|
/**
|
|
101
114
|
* Speed: linesChanged / durationSeconds, normalized to baseline.
|
|
102
115
|
* 0 lines → 0 speed. 0 duration → clamp to 1.0.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"efficiency-score.d.ts","sourceRoot":"","sources":["../../src/metrics/efficiency-score.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"efficiency-score.d.ts","sourceRoot":"","sources":["../../src/metrics/efficiency-score.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,15 +7,21 @@
|
|
|
7
7
|
* 3. Autonomy: 1 - (userQuestions / toolCalls)
|
|
8
8
|
* 4. First-attempt quality: 1 - (thrashIterations / 3), floored at 0
|
|
9
9
|
*
|
|
10
|
+
* Speed carries a deliberately small default weight (0.10 vs. 0.30 for the
|
|
11
|
+
* other three) — a raw lines/duration ratio rewards bulk regeneration as much
|
|
12
|
+
* as a careful fix, and zero-linesChanged tasks (investigation, review,
|
|
13
|
+
* delegated work) exclude speed from the composite entirely rather than
|
|
14
|
+
* scoring 0 on it, renormalizing across the remaining components instead.
|
|
15
|
+
*
|
|
10
16
|
* Final score = weighted average, clamped to [0, 1].
|
|
11
17
|
*/
|
|
12
18
|
// ---------------------------------------------------------------------------
|
|
13
19
|
// Defaults
|
|
14
20
|
// ---------------------------------------------------------------------------
|
|
15
|
-
const DEFAULT_SPEED_WEIGHT = 0.
|
|
16
|
-
const DEFAULT_CORRECTNESS_WEIGHT = 0.
|
|
17
|
-
const DEFAULT_AUTONOMY_WEIGHT = 0.
|
|
18
|
-
const DEFAULT_FIRST_ATTEMPT_QUALITY_WEIGHT = 0.
|
|
21
|
+
const DEFAULT_SPEED_WEIGHT = 0.1;
|
|
22
|
+
const DEFAULT_CORRECTNESS_WEIGHT = 0.3;
|
|
23
|
+
const DEFAULT_AUTONOMY_WEIGHT = 0.3;
|
|
24
|
+
const DEFAULT_FIRST_ATTEMPT_QUALITY_WEIGHT = 0.3;
|
|
19
25
|
const DEFAULT_SPEED_BASELINE_LPS = 1; // 1 line per second = perfect speed
|
|
20
26
|
const MAX_SCORES = 1_000;
|
|
21
27
|
// ---------------------------------------------------------------------------
|
|
@@ -54,11 +60,7 @@ export class EfficiencyScorer {
|
|
|
54
60
|
*/
|
|
55
61
|
computeScore(task, antiPatterns) {
|
|
56
62
|
const components = this.computeComponents(task, antiPatterns);
|
|
57
|
-
const
|
|
58
|
-
components.correctness * this.correctnessWeight +
|
|
59
|
-
components.autonomy * this.autonomyWeight +
|
|
60
|
-
components.firstAttemptQuality * this.firstAttemptQualityWeight;
|
|
61
|
-
const score = clamp(Math.round(raw * 1000) / 1000, 0, 1);
|
|
63
|
+
const score = this.computeWeightedScore(components, task);
|
|
62
64
|
const result = {
|
|
63
65
|
score,
|
|
64
66
|
components,
|
|
@@ -143,11 +145,7 @@ export class EfficiencyScorer {
|
|
|
143
145
|
updateScore(task, antiPatterns) {
|
|
144
146
|
const idx = this.scores.findIndex((s) => s.taskId === task.taskId);
|
|
145
147
|
const components = this.computeComponents(task, antiPatterns);
|
|
146
|
-
const
|
|
147
|
-
components.correctness * this.correctnessWeight +
|
|
148
|
-
components.autonomy * this.autonomyWeight +
|
|
149
|
-
components.firstAttemptQuality * this.firstAttemptQualityWeight;
|
|
150
|
-
const score = clamp(Math.round(raw * 1000) / 1000, 0, 1);
|
|
148
|
+
const score = this.computeWeightedScore(components, task);
|
|
151
149
|
const result = {
|
|
152
150
|
score,
|
|
153
151
|
components,
|
|
@@ -202,6 +200,29 @@ export class EfficiencyScorer {
|
|
|
202
200
|
firstAttemptQuality: this.computeFirstAttemptQuality(antiPatterns),
|
|
203
201
|
};
|
|
204
202
|
}
|
|
203
|
+
/**
|
|
204
|
+
* Weighted average of the four components, clamped to [0, 1]. When zero
|
|
205
|
+
* lines changed, speed is excluded entirely rather than scored as 0 —
|
|
206
|
+
* investigation/review/delegated tasks make no edits by design, so the
|
|
207
|
+
* remaining weights are renormalized to sum to 1 on their own.
|
|
208
|
+
*/
|
|
209
|
+
computeWeightedScore(components, task) {
|
|
210
|
+
if (task.linesChanged === 0) {
|
|
211
|
+
const remainingWeight = this.correctnessWeight + this.autonomyWeight + this.firstAttemptQualityWeight;
|
|
212
|
+
if (remainingWeight <= 0)
|
|
213
|
+
return 0;
|
|
214
|
+
const raw = (components.correctness * this.correctnessWeight +
|
|
215
|
+
components.autonomy * this.autonomyWeight +
|
|
216
|
+
components.firstAttemptQuality * this.firstAttemptQualityWeight) /
|
|
217
|
+
remainingWeight;
|
|
218
|
+
return clamp(Math.round(raw * 1000) / 1000, 0, 1);
|
|
219
|
+
}
|
|
220
|
+
const raw = components.speed * this.speedWeight +
|
|
221
|
+
components.correctness * this.correctnessWeight +
|
|
222
|
+
components.autonomy * this.autonomyWeight +
|
|
223
|
+
components.firstAttemptQuality * this.firstAttemptQualityWeight;
|
|
224
|
+
return clamp(Math.round(raw * 1000) / 1000, 0, 1);
|
|
225
|
+
}
|
|
205
226
|
/**
|
|
206
227
|
* Speed: linesChanged / durationSeconds, normalized to baseline.
|
|
207
228
|
* 0 lines → 0 speed. 0 duration → clamp to 1.0.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"efficiency-score.js","sourceRoot":"","sources":["../../src/metrics/efficiency-score.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"efficiency-score.js","sourceRoot":"","sources":["../../src/metrics/efficiency-score.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-selection-scorer.d.ts","sourceRoot":"","sources":["../../src/metrics/tool-selection-scorer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAM1D,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,gBAAgB,GAAG,kBAAkB,GAAG,eAAe,CAAC;IACzE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACpD,QAAQ,CAAC,cAAc,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACzD,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACpC;AAUD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACpC;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,oBAAoB,GAAG,oBAAoB,CAS1F;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAC5C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC;
|
|
1
|
+
{"version":3,"file":"tool-selection-scorer.d.ts","sourceRoot":"","sources":["../../src/metrics/tool-selection-scorer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAM1D,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,gBAAgB,GAAG,kBAAkB,GAAG,eAAe,CAAC;IACzE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACpD,QAAQ,CAAC,cAAc,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACzD,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACpC;AAUD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACpC;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,oBAAoB,GAAG,oBAAoB,CAS1F;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAC5C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC;AAsDD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAS;IAChD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;IAC7C,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAS;IACnD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAS;gBAEhC,OAAO,CAAC,EAAE,0BAA0B;IAUhD,YAAY,CAAC,SAAS,EAAE,SAAS,cAAc,EAAE,GAAG,oBAAoB;IAmDxE;;;;;;;OAOG;IACH,gBAAgB,CAAC,SAAS,EAAE,SAAS,oBAAoB,EAAE,GAAG,oBAAoB;IA8ClF,OAAO,CAAC,kBAAkB;IAiD1B,OAAO,CAAC,oBAAoB;IA2B5B,OAAO,CAAC,iBAAiB;IA2BzB,OAAO,CAAC,kBAAkB;CAqB3B"}
|
|
@@ -15,7 +15,7 @@ export function toToolSelectionSummary(metrics) {
|
|
|
15
15
|
const DEFAULT_REDUNDANT_READ_PENALTY = 0.03;
|
|
16
16
|
const DEFAULT_REPEATED_FAILURE_PENALTY = 0.08;
|
|
17
17
|
const DEFAULT_UNUSED_OUTPUT_PENALTY = 0.04;
|
|
18
|
-
const DEFAULT_UNUSED_OUTPUT_SIZE_THRESHOLD =
|
|
18
|
+
const DEFAULT_UNUSED_OUTPUT_SIZE_THRESHOLD = 20000;
|
|
19
19
|
const DEFAULT_WORST_OFFENDER_COUNT = 10;
|
|
20
20
|
// Tools whose output is terminal — they perform an action and their output is
|
|
21
21
|
// a confirmation or result, not raw data to be consumed by later tool calls.
|
|
@@ -34,6 +34,24 @@ const TERMINAL_OUTPUT_TOOLS = new Set([
|
|
|
34
34
|
'EnterPlanMode',
|
|
35
35
|
'ExitPlanMode',
|
|
36
36
|
]);
|
|
37
|
+
// Discovery/search tools whose entire purpose is returning information for
|
|
38
|
+
// the agent to reason about, not to be consumed by a downstream Edit/Write.
|
|
39
|
+
// A thorough investigation is expected to produce large results here without
|
|
40
|
+
// ever touching a file — penalizing that as "unused output" punishes the most
|
|
41
|
+
// common legitimate action in a session. MCP tool results (any `mcp__`-
|
|
42
|
+
// prefixed name, including this project's own tools and things like
|
|
43
|
+
// codegraph_explore, whose entire value proposition is one large query result
|
|
44
|
+
// replacing many small reads) get the same treatment via a prefix check
|
|
45
|
+
// rather than an enumerable list, since new MCP tools appear constantly.
|
|
46
|
+
// Trade-off: this is unconditional, so a hypothetical MCP tool whose job is
|
|
47
|
+
// purely an action (analogous to Edit/Bash) is also exempt with no way to
|
|
48
|
+
// carve it back out short of an "MCP action tools" allowlist — accepted here
|
|
49
|
+
// because false negatives on that shape are rarer than the false positives
|
|
50
|
+
// this fix removes.
|
|
51
|
+
const DISCOVERY_OUTPUT_TOOLS = new Set(['Grep', 'Glob', 'WebFetch', 'WebSearch']);
|
|
52
|
+
function isDiscoveryOutputTool(toolName) {
|
|
53
|
+
return DISCOVERY_OUTPUT_TOOLS.has(toolName) || toolName.startsWith('mcp__');
|
|
54
|
+
}
|
|
37
55
|
// ---------------------------------------------------------------------------
|
|
38
56
|
// ToolSelectionScorer
|
|
39
57
|
// ---------------------------------------------------------------------------
|
|
@@ -223,6 +241,8 @@ export class ToolSelectionScorer {
|
|
|
223
241
|
const call = toolCalls[i];
|
|
224
242
|
if (TERMINAL_OUTPUT_TOOLS.has(call.toolName))
|
|
225
243
|
continue;
|
|
244
|
+
if (isDiscoveryOutputTool(call.toolName))
|
|
245
|
+
continue;
|
|
226
246
|
const outputSize = call.outputSizeBytes ?? 0;
|
|
227
247
|
if (outputSize < this.unusedOutputSizeThreshold)
|
|
228
248
|
continue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-selection-scorer.js","sourceRoot":"","sources":["../../src/metrics/tool-selection-scorer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AA2CxD,MAAM,UAAU,sBAAsB,CAAC,OAA6B;IAClE,OAAO;QACL,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;QAC9C,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;QAClD,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;KAC7C,CAAC;AACJ,CAAC;AAUD,8EAA8E;AAC9E,WAAW;AACX,8EAA8E;AAE9E,MAAM,8BAA8B,GAAG,IAAI,CAAC;AAC5C,MAAM,gCAAgC,GAAG,IAAI,CAAC;AAC9C,MAAM,6BAA6B,GAAG,IAAI,CAAC;AAC3C,MAAM,oCAAoC,GAAG,
|
|
1
|
+
{"version":3,"file":"tool-selection-scorer.js","sourceRoot":"","sources":["../../src/metrics/tool-selection-scorer.ts"],"names":[],"mappings":"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"}
|