@newrelic/preflight 1.67.1 → 1.67.3
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/README.md +1 -0
- package/dist/hooks/event-processor.d.ts.map +1 -1
- package/dist/hooks/event-processor.js +7 -4
- package/dist/hooks/event-processor.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +26 -46
- package/dist/index.js.map +1 -1
- package/dist/metrics/cost-estimate-gate.d.ts +20 -0
- package/dist/metrics/cost-estimate-gate.d.ts.map +1 -1
- package/dist/metrics/cost-estimate-gate.js +21 -1
- package/dist/metrics/cost-estimate-gate.js.map +1 -1
- package/dist/metrics/cost-tracker-seed.d.ts.map +1 -1
- package/dist/metrics/cost-tracker-seed.js +1 -0
- package/dist/metrics/cost-tracker-seed.js.map +1 -1
- package/dist/metrics/cost-tracker.d.ts +53 -1
- package/dist/metrics/cost-tracker.d.ts.map +1 -1
- package/dist/metrics/cost-tracker.js +87 -2
- package/dist/metrics/cost-tracker.js.map +1 -1
- package/dist/metrics/local-session-aggregator.d.ts +13 -0
- package/dist/metrics/local-session-aggregator.d.ts.map +1 -1
- package/dist/metrics/local-session-aggregator.js +22 -4
- package/dist/metrics/local-session-aggregator.js.map +1 -1
- package/dist/metrics/model-pricing.d.ts +6 -0
- package/dist/metrics/model-pricing.d.ts.map +1 -1
- package/dist/metrics/model-pricing.js +19 -2
- package/dist/metrics/model-pricing.js.map +1 -1
- package/dist/metrics/pricing-overlay.d.ts.map +1 -1
- package/dist/metrics/pricing-overlay.js +4 -5
- package/dist/metrics/pricing-overlay.js.map +1 -1
- package/dist/metrics/transcript-message-tracker.d.ts +14 -0
- package/dist/metrics/transcript-message-tracker.d.ts.map +1 -1
- package/dist/metrics/transcript-message-tracker.js +499 -5
- package/dist/metrics/transcript-message-tracker.js.map +1 -1
- package/dist/storage/historical-costs.d.ts +6 -0
- package/dist/storage/historical-costs.d.ts.map +1 -0
- package/dist/storage/historical-costs.js +42 -0
- package/dist/storage/historical-costs.js.map +1 -0
- package/dist/storage/session-store.d.ts +23 -1
- package/dist/storage/session-store.d.ts.map +1 -1
- package/dist/storage/session-store.js +96 -5
- package/dist/storage/session-store.js.map +1 -1
- package/dist/storage/types.d.ts +7 -11
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/storage/types.js.map +1 -1
- package/package.json +21 -8
|
@@ -1,12 +1,29 @@
|
|
|
1
1
|
import { createLogger, resolveModelPricing } from '../shared/index.js';
|
|
2
2
|
const logger = createLogger('model-pricing');
|
|
3
3
|
const CLAUDE_ID_RE = /^claude-([a-z]+)-(\d+)(?:-(\d{1,2}))?(?:-\d{8})?$/;
|
|
4
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Removes one trailing `[...]` tag (e.g. `[1m]`). Linear scan instead of a
|
|
6
|
+
* `/\[[^\]]*\]$/` regex, which backtracks quadratically on inputs with many `[`.
|
|
7
|
+
*/
|
|
8
|
+
export function stripTrailingTag(id) {
|
|
9
|
+
if (!id.endsWith(']'))
|
|
10
|
+
return id;
|
|
11
|
+
const prevClose = id.lastIndexOf(']', id.length - 2);
|
|
12
|
+
const open = id.indexOf('[', prevClose + 1);
|
|
13
|
+
return open === -1 ? id : id.slice(0, open);
|
|
14
|
+
}
|
|
15
|
+
export function stripTrailingTags(id) {
|
|
16
|
+
let current = id;
|
|
17
|
+
for (let next = stripTrailingTag(current); next !== current; next = stripTrailingTag(current)) {
|
|
18
|
+
current = next;
|
|
19
|
+
}
|
|
20
|
+
return current;
|
|
21
|
+
}
|
|
5
22
|
// Bedrock spells the same ids `[<region>.]anthropic.claude-...[-v1:0]`.
|
|
6
23
|
const BEDROCK_PREFIX_RE = /^(?:[a-z-]+\.)?anthropic\./;
|
|
7
24
|
const BEDROCK_VERSION_RE = /-v\d+(?::\d+)?$/;
|
|
8
25
|
function parseClaudeId(id) {
|
|
9
|
-
const match = CLAUDE_ID_RE.exec(id
|
|
26
|
+
const match = CLAUDE_ID_RE.exec(stripTrailingTags(id));
|
|
10
27
|
if (!match)
|
|
11
28
|
return null;
|
|
12
29
|
return { family: match[1], major: Number(match[2]), minor: Number(match[3] ?? 0) };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-pricing.js","sourceRoot":"","sources":["../../src/metrics/model-pricing.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEvE,MAAM,MAAM,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC;AAa7C,MAAM,YAAY,GAAG,mDAAmD,CAAC;
|
|
1
|
+
{"version":3,"file":"model-pricing.js","sourceRoot":"","sources":["../../src/metrics/model-pricing.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pricing-overlay.d.ts","sourceRoot":"","sources":["../../src/metrics/pricing-overlay.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAaH,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACtF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,
|
|
1
|
+
{"version":3,"file":"pricing-overlay.d.ts","sourceRoot":"","sources":["../../src/metrics/pricing-overlay.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAaH,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACtF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAwC,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAalG;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKpD;AAuCD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,EAAE,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,CAI9F;AAED,wFAAwF;AACxF,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AA0BD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,CAUrE;AAED,yEAAyE;AACzE,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAGjE;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;CACxC;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,WAAW,CAY7E;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,aAAa,CAElF;AAED,wBAAgB,yBAAyB,IAAI,MAAM,GAAG,IAAI,CAMzD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAmB/D;AAgFD;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAM1E"}
|
|
@@ -16,7 +16,7 @@ import { extname, join, resolve } from 'node:path';
|
|
|
16
16
|
import { createLogger, DEFAULT_PRICING_TABLE } from '../shared/index.js';
|
|
17
17
|
import { calculateCost, initPricing, loadCustomPricing, resolveModelPricing, } from '../shared/pricing.js';
|
|
18
18
|
import { resolveDataDir } from '../deploy/data-paths.js';
|
|
19
|
-
import { estimateFromFamily } from './model-pricing.js';
|
|
19
|
+
import { estimateFromFamily, stripTrailingTag } from './model-pricing.js';
|
|
20
20
|
const logger = createLogger('pricing-overlay');
|
|
21
21
|
const BEDROCK_SYSTEM_ARN_RE = /^arn:aws[a-z-]*:bedrock:[a-z0-9-]+:\d*:(?:inference-profile|foundation-model)\/(.+)$/;
|
|
22
22
|
// Mirrors the private limit in src/shared/pricing.ts so an oversized file falls
|
|
@@ -25,7 +25,6 @@ const MAX_PRICING_FILE_BYTES = 1_000_000;
|
|
|
25
25
|
// Deliberately strips any one leading `<segment>/`, not a fixed provider list, so
|
|
26
26
|
// gateway prefixes we have never seen (`bedrock/`, `anthropic/`, `vertex/`) resolve too.
|
|
27
27
|
const PROVIDER_PREFIX_RE = /^[a-z0-9_-]+\//;
|
|
28
|
-
const VARIANT_TAG_RE = /\[[^\]]*\]$/;
|
|
29
28
|
/**
|
|
30
29
|
* Reduces the model strings gateways and Bedrock emit to the bare id the
|
|
31
30
|
* vendored table knows. Application inference profile ARNs and gateway
|
|
@@ -49,7 +48,7 @@ const ZERO_COST = {
|
|
|
49
48
|
};
|
|
50
49
|
let pricingAliases = new Map();
|
|
51
50
|
function lookupAlias(id) {
|
|
52
|
-
return pricingAliases.get(id) ?? pricingAliases.get(id
|
|
51
|
+
return pricingAliases.get(id) ?? pricingAliases.get(stripTrailingTag(id));
|
|
53
52
|
}
|
|
54
53
|
function canonicalModelId(raw) {
|
|
55
54
|
const normalized = normalizeModelId(raw);
|
|
@@ -83,7 +82,7 @@ function computeResolution(model) {
|
|
|
83
82
|
if (pricing)
|
|
84
83
|
return { kind: 'priced', source: 'table', pricing };
|
|
85
84
|
if (refreshedTable !== null) {
|
|
86
|
-
const bare = id
|
|
85
|
+
const bare = stripTrailingTag(id);
|
|
87
86
|
const refreshed = refreshedIds.has(bare) ? refreshedTable.resolve(bare) : null;
|
|
88
87
|
if (refreshed) {
|
|
89
88
|
logger.info('Pricing from the LiteLLM refresh', { model });
|
|
@@ -131,7 +130,7 @@ export function priceModelUsage(model, usage) {
|
|
|
131
130
|
if (resolution.source === 'refreshed' && refreshedTable !== null) {
|
|
132
131
|
return {
|
|
133
132
|
resolution,
|
|
134
|
-
breakdown: refreshedTable.calculateCost(canonicalModelId(model)
|
|
133
|
+
breakdown: refreshedTable.calculateCost(stripTrailingTag(canonicalModelId(model)), usage),
|
|
135
134
|
};
|
|
136
135
|
}
|
|
137
136
|
const priceId = resolution.source === 'estimated' ? resolution.estimatedFrom : canonicalModelId(model);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pricing-overlay.js","sourceRoot":"","sources":["../../src/metrics/pricing-overlay.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACrF,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEnD,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EACL,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAA0B,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"pricing-overlay.js","sourceRoot":"","sources":["../../src/metrics/pricing-overlay.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACrF,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEnD,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EACL,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAA0B,MAAM,oBAAoB,CAAC;AAElG,MAAM,MAAM,GAAG,YAAY,CAAC,iBAAiB,CAAC,CAAC;AAE/C,MAAM,qBAAqB,GACzB,sFAAsF,CAAC;AACzF,gFAAgF;AAChF,8EAA8E;AAC9E,MAAM,sBAAsB,GAAG,SAAS,CAAC;AACzC,kFAAkF;AAClF,yFAAyF;AACzF,MAAM,kBAAkB,GAAG,gBAAgB,CAAC;AAE5C;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IACtB,MAAM,GAAG,GAAG,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3C,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;IACvB,OAAO,EAAE,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,SAAS,GAAkB;IAC/B,QAAQ,EAAE,CAAC;IACX,SAAS,EAAE,CAAC;IACZ,WAAW,EAAE,CAAC;IACd,YAAY,EAAE,CAAC;IACf,gBAAgB,EAAE,CAAC;IACnB,QAAQ,EAAE,CAAC;IACX,mBAAmB,EAAE,CAAC;CACvB,CAAC;AAEF,IAAI,cAAc,GAAgC,IAAI,GAAG,EAAE,CAAC;AAE5D,SAAS,WAAW,CAAC,EAAU;IAC7B,OAAO,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,cAAc,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAW;IACnC,MAAM,UAAU,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACzC,OAAO,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,WAAW,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC;AAC1E,CAAC;AAED,8EAA8E;AAC9E,qDAAqD;AACrD,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAChC,MAAM,WAAW,GAAG,IAAI,GAAG,EAA6B,CAAC;AAEzD,2EAA2E;AAC3E,4EAA4E;AAC5E,8DAA8D;AAC9D,IAAI,eAAe,GAAsB,EAAE,CAAC;AAE5C,iFAAiF;AACjF,gFAAgF;AAChF,2EAA2E;AAC3E,IAAI,cAAc,GAAwB,IAAI,CAAC;AAC/C,IAAI,YAAY,GAAwB,IAAI,GAAG,EAAE,CAAC;AAElD,MAAM,UAAU,mBAAmB,CAAC,KAA0B,EAAE,GAAwB;IACtF,cAAc,GAAG,KAAK,CAAC;IACvB,YAAY,GAAG,GAAG,CAAC;IACnB,WAAW,CAAC,KAAK,EAAE,CAAC;AACtB,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,gBAAgB;IAC9B,WAAW,CAAC,KAAK,EAAE,CAAC;AACtB,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAa;IACtC,MAAM,EAAE,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAC;IACxC,IAAI,OAAO;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAEjE,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAClC,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/E,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAC3D,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;QACrE,CAAC;IACH,CAAC;IAED,MAAM,aAAa,GAAG,kBAAkB,CAAC,EAAE,EAAE;QAC3C,GAAG,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC;QACrC,GAAG,eAAe;KACnB,CAAC,CAAC;IACH,MAAM,gBAAgB,GAAG,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;IAC5F,IAAI,aAAa,KAAK,IAAI,IAAI,gBAAgB,KAAK,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IACrF,MAAM,CAAC,IAAI,CAAC,qCAAqC,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;IAC7E,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,CAAC;AAC3F,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAChD,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACtC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACxC,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC5C,IAAI,WAAW,CAAC,IAAI,IAAI,mBAAmB,EAAE,CAAC;QAC5C,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,IAAI;YAAE,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC;IACD,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IACnC,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,MAAM,UAAU,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC/C,OAAO,UAAU,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AAClE,CAAC;AAOD,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,KAAiB;IAC9D,MAAM,UAAU,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC/C,IAAI,UAAU,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,GAAG,SAAS,EAAE,EAAE,CAAC;IACvF,IAAI,UAAU,CAAC,MAAM,KAAK,WAAW,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;QACjE,OAAO;YACL,UAAU;YACV,SAAS,EAAE,cAAc,CAAC,aAAa,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;SAC1F,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GACX,UAAU,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACzF,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAa,EAAE,KAAiB;IACjE,OAAO,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,SAAS,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,yBAAyB;IACvC,IAAI,CAAC;QACH,OAAO,OAAO,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE,cAAc,CAAC,CAAC;IACpE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,qBAAqB,CAAC,WAAmB;IACvD,MAAM,OAAO,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC/C,IAAI,CAAC,OAAO;QAAE,OAAO;IAErB,MAAM,IAAI,GAAiC,EAAE,CAAC;IAC9C,KAAK,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACzD,IAAI,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;YACjC,MAAM,CAAC,IAAI,CACT,4GAA4G,EAC5G,EAAE,OAAO,EAAE,CACZ,CAAC;YACF,SAAS;QACX,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAC1B,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAE3C,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAC7B,gBAAgB,EAAE,CAAC;AACrB,CAAC;AAED,SAAS,sBAAsB,CAAC,OAAgC;IAC9D,0EAA0E;IAC1E,qDAAqD;IACrD,IAAI,MAAM,GAAkB,IAAI,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,4BAA4B,CAAC,CAAC,CAAC;QACnE,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAClD,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACtE,WAAW,CAAC,YAAY,CAAC,CAAC;QAC1B,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE;YAC7C,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;SACxD,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,IAAI,MAAM;YAAE,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,GAAY;IAChC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtC,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC;IAClC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAClE,MAAM,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAC;QACxF,OAAO,GAAG,CAAC;IACb,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACjD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACvD,MAAM,CAAC,IAAI,CAAC,iEAAiE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YACzF,SAAS;QACX,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,oBAAoB,CAAC,OAA4B;IACxD,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACrC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC,2DAA2D,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YAC3F,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,sBAAsB,CAAC,IAAY;IAC1C,IAAI,MAA+B,CAAC;IACpC,IAAI,CAAC;QACH,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,sBAAsB,EAAE,CAAC;YAC5F,MAAM,IAAI,KAAK,EAAE,CAAC;QACpB,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAY,CAAC;QAChE,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,EAAE,CAAC;QACxF,MAAM,GAAG,IAA+B,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,WAAW,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO;IACT,CAAC;IACD,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,KAAK,EAAE,GAAG,MAAM,CAAC;IACjD,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;SAAM,CAAC;QACN,WAAW,CAAC,IAAI,CAAC,CAAC;QAClB,mBAAmB,EAAE,CAAC;IACxB,CAAC;IACD,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IACzC,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9B,cAAc,GAAG,OAAO,CAAC;AAC3B,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,mBAAmB,CAAC,iBAAgC;IAClE,IAAI,CAAC;QACH,2BAA2B,CAAC,iBAAiB,CAAC,CAAC;IACjD,CAAC;YAAS,CAAC;QACT,gBAAgB,EAAE,CAAC;IACrB,CAAC;AACH,CAAC;AAED,SAAS,2BAA2B,CAAC,iBAAgC;IACnE,cAAc,GAAG,IAAI,GAAG,EAAE,CAAC;IAC3B,eAAe,GAAG,EAAE,CAAC;IACrB,IAAI,iBAAiB,EAAE,CAAC;QACtB,sBAAsB,CAAC,iBAAiB,CAAC,CAAC;QAC1C,OAAO;IACT,CAAC;IACD,mBAAmB,EAAE,CAAC;AACxB,CAAC;AAED,SAAS,mBAAmB;IAC1B,MAAM,WAAW,GAAG,yBAAyB,EAAE,CAAC;IAChD,IAAI,WAAW,EAAE,CAAC;QAChB,qBAAqB,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC;AACH,CAAC"}
|
|
@@ -3,6 +3,15 @@ export interface TranscriptMessageMetrics {
|
|
|
3
3
|
readonly assistantMessages: number;
|
|
4
4
|
readonly userCorrections: number;
|
|
5
5
|
}
|
|
6
|
+
/**
|
|
7
|
+
* What the assistant did between the last user entry that ended its turn (`endsAssistantTurn`) and
|
|
8
|
+
* the next real user message: `acted` when it called a tool that changes something
|
|
9
|
+
* (`isMutatingToolUse`), `talked` when its entries called none, and `unknown` when no assistant
|
|
10
|
+
* entry came between them (the first message, or two user messages in a row). It is also `unknown`
|
|
11
|
+
* until the transcript has shown a tool call at all, since a format that doesn't record tool calls
|
|
12
|
+
* makes a turn that acted look like one that talked.
|
|
13
|
+
*/
|
|
14
|
+
export type AssistantTurnState = 'acted' | 'talked' | 'unknown';
|
|
6
15
|
export declare class TranscriptMessageTracker {
|
|
7
16
|
private transcriptPath;
|
|
8
17
|
private offset;
|
|
@@ -10,11 +19,16 @@ export declare class TranscriptMessageTracker {
|
|
|
10
19
|
private userMessages;
|
|
11
20
|
private assistantMessages;
|
|
12
21
|
private userCorrections;
|
|
22
|
+
/** What the assistant's entries did since the last user entry that ended its turn. */
|
|
23
|
+
private assistantSinceUser;
|
|
24
|
+
/** Whether the transcript has shown a tool call yet, so a turn without one can be read as talking. */
|
|
25
|
+
private seenToolUse;
|
|
13
26
|
/** Cheap; captures the first non-empty path seen and ignores later calls. No I/O. */
|
|
14
27
|
observeTranscriptPath(path: string | undefined): void;
|
|
15
28
|
/** Incrementally reads and classifies any transcript growth since the last call. */
|
|
16
29
|
refresh(): void;
|
|
17
30
|
private processLine;
|
|
31
|
+
private turnState;
|
|
18
32
|
getMetrics(): TranscriptMessageMetrics;
|
|
19
33
|
reset(): void;
|
|
20
34
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transcript-message-tracker.d.ts","sourceRoot":"","sources":["../../src/metrics/transcript-message-tracker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transcript-message-tracker.d.ts","sourceRoot":"","sources":["../../src/metrics/transcript-message-tracker.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;AA4oBhE,qBAAa,wBAAwB;IACnC,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,eAAe,CAAK;IAC5B,sFAAsF;IACtF,OAAO,CAAC,kBAAkB,CAAuC;IACjE,sGAAsG;IACtG,OAAO,CAAC,WAAW,CAAS;IAE5B,qFAAqF;IACrF,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAMrD,oFAAoF;IACpF,OAAO,IAAI,IAAI;IAsEf,OAAO,CAAC,WAAW;IAiCnB,OAAO,CAAC,SAAS;IAMjB,UAAU,IAAI,wBAAwB;IAQtC,KAAK,IAAI,IAAI;CAUd"}
|