@zhixuan92/multi-model-agent-core 3.9.1 → 3.10.0

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.
@@ -1,132 +1,219 @@
1
1
  import { randomUUID } from 'node:crypto';
2
2
  import { computeSavedCostUSD } from '../types.js';
3
- import { extractCanonicalModelName } from '../routing/model-profiles.js';
4
- import { bucketCost, bucketSavedCost, bucketDuration, bucketFileCount, bucketRoundsUsed, bucketTurnCount, } from './bucketing.js';
3
+ import { normalizeModel } from './normalize.js';
5
4
  import { classifyConcern } from './concern-classifier.js';
6
- import { BoundedIdentifier } from './types.js';
7
5
  const KNOWN_CAPABILITIES = new Set(['web_search', 'web_fetch']);
6
+ const REVIEWED_ROUTES = new Set(['delegate', 'audit', 'review', 'verify', 'debug', 'execute-plan', 'investigate']);
7
+ const QUALITY_ONLY_ROUTES = new Set(['audit', 'review', 'verify', 'debug', 'investigate']);
8
+ const VERIFY_ROUTES = new Set(['delegate', 'execute-plan', 'verify']);
8
9
  export function buildTaskCompletedEvent(ctx) {
9
- const { route, taskSpec, runResult, client, triggeringSkill, parentModel } = ctx;
10
- const terminalStatus = deriveTerminalStatus(runResult);
11
- // errorCode is set only when there's a *real* failure to attribute. R1 forbids
12
- // it on `ok`. For `error` we derive from structuredError + terminationReason.
13
- // For `incomplete` / `timeout` / `cost_exceeded` / `brief_too_vague` /
14
- // `unavailable` — these are non-success outcomes but not error categories;
15
- // leave null unless the runner attached an explicit structured code. Avoids
16
- // the lazy `'other'` fallback that pollutes failure-mode panels.
17
- const errorCode = (() => {
18
- if (terminalStatus === 'ok')
19
- return null;
20
- if (terminalStatus === 'error')
21
- return deriveErrorCode(runResult);
22
- if (runResult.structuredError?.code) {
23
- return runResult.structuredError.code;
24
- }
25
- return null;
26
- })();
27
- const workerStatus = deriveWorkerStatus(runResult);
28
- const escalated = (runResult.escalationLog?.length ?? 0) > 1;
29
- const fallbackTriggered = (runResult.agents?.fallbackOverrides?.length ?? 0) > 0;
30
- const costBucketVal = bucketCost(runResult.usage?.costUSD ?? 0);
31
- const durationBucketVal = bucketDuration(runResult.durationMs ?? 0);
32
- const fileCountBucketVal = bucketFileCount(taskSpec.filePaths?.length ?? 0);
33
- const savedCostUSDRaw = computeSavedCostUSD(runResult.usage?.costUSD ?? null, runResult.usage?.inputTokens ?? 0, runResult.usage?.outputTokens ?? 0, parentModel ?? undefined);
34
- const savedCostBucketVal = bucketSavedCost(savedCostUSDRaw);
35
- const implModelRaw = runResult.models?.implementer ?? null;
36
- const implModel = implModelRaw ? extractCanonicalModelName(implModelRaw) : null;
37
- const implementerModelFamily = deriveModelFamily(implModel);
38
- const implementerModel = normalizeModelForTelemetry(implModel);
39
- const agentType = runResult.agents?.implementer === 'complex' ? 'complex' : 'standard';
40
- const rawCapabilities = runResult.agents?.implementerCapabilities ?? [];
41
- const capabilities = rawCapabilities.map(c => KNOWN_CAPABILITIES.has(c) ? c : 'other');
42
- const toolMode = (runResult.agents?.implementerToolMode ?? 'full');
43
- const topToolNames = deriveTopToolNames(runResult.toolCalls ?? []);
10
+ const { route, runResult, client, parentModel } = ctx;
44
11
  const stages = buildStages(route, runResult);
45
- // v2 fields
46
- const tr = runResult.terminationReason;
47
- const trIsObject = tr && typeof tr === 'object';
12
+ // Token sums across stages
13
+ const tokenSums = stages.reduce((acc, s) => ({
14
+ input: acc.input + s.inputTokens,
15
+ output: acc.output + s.outputTokens,
16
+ cached: acc.cached + s.cachedTokens,
17
+ reasoning: acc.reasoning + s.reasoningTokens,
18
+ }), { input: 0, output: 0, cached: 0, reasoning: 0 });
19
+ // Cost sums
20
+ const totalCostUSD = stages.reduce((s, st) => s + st.costUSD, 0);
21
+ const totalDurationMs = stages.reduce((s, st) => s + st.durationMs, 0);
22
+ const savedCostUSD = computeSavedCostUSD(runResult.usage?.costUSD ?? null, runResult.usage?.inputTokens ?? 0, runResult.usage?.outputTokens ?? 0, parentModel ?? undefined);
23
+ const reviewPolicy = ctx.reviewPolicy ?? (QUALITY_ONLY_ROUTES.has(route) ? 'quality_only' : 'full');
24
+ const verifyCommandPresent = ctx.verifyCommandPresent ?? false;
25
+ const implModelRaw = runResult.models?.implementer ?? null;
26
+ const implResult = implModelRaw ? normalizeModel(implModelRaw) : null;
48
27
  const escalationLog = runResult.escalationLog ?? [];
49
28
  const distinctProviders = new Set(escalationLog.map(a => a.provider)).size;
50
29
  const escalationCount = Math.max(0, distinctProviders - 1);
51
30
  return {
52
- type: 'task.completed',
53
31
  eventId: randomUUID(),
54
32
  route,
55
- agentType,
56
- capabilities: [...new Set(capabilities.filter(c => c === 'web_search' || c === 'web_fetch' || c === 'other'))],
57
- toolMode,
58
- triggeredFromSkill: triggeringSkill,
59
33
  client,
60
- fileCountBucket: fileCountBucketVal,
61
- durationBucket: durationBucketVal,
62
- costBucket: costBucketVal,
63
- savedCostBucket: savedCostBucketVal,
64
- implementerModelFamily,
65
- implementerModel,
66
- terminalStatus,
67
- workerStatus,
68
- errorCode,
69
- escalated,
70
- fallbackTriggered,
71
- topToolNames,
72
- stages,
73
- // v2 fields
74
- filesWrittenBucket: bucketFileCount(runResult.filesWritten.length),
75
- c2Promoted: trIsObject ? (tr.wasPromoted ?? false) : false,
76
- workerSelfAssessment: trIsObject ? (tr.workerSelfAssessment ?? null) : null,
77
- concernCount: runResult.concerns?.length ?? 0,
34
+ agentType: runResult.agents?.implementer === 'complex' ? 'complex' : 'standard',
35
+ toolMode: (runResult.agents?.implementerToolMode ?? 'full'),
36
+ capabilities: (runResult.agents?.implementerCapabilities ?? [])
37
+ .filter(c => KNOWN_CAPABILITIES.has(c))
38
+ .slice(0, 3),
39
+ reviewPolicy,
40
+ verifyCommandPresent,
41
+ implementerModel: implResult?.canonical ?? 'custom',
42
+ terminalStatus: deriveTerminalStatus(runResult),
43
+ workerStatus: deriveWorkerStatus(runResult),
44
+ errorCode: deriveErrorCode(runResult),
45
+ parentModelFamily: parentModel ? normalizeModel(parentModel).family : 'other',
46
+ inputTokens: tokenSums.input,
47
+ outputTokens: tokenSums.output,
48
+ cachedTokens: tokenSums.cached,
49
+ reasoningTokens: tokenSums.reasoning,
50
+ totalDurationMs,
51
+ totalCostUSD,
52
+ totalSavedCostUSD: savedCostUSD,
53
+ concernCount: Math.min(runResult.concerns?.length ?? 0, 150),
78
54
  escalationCount,
79
- fallbackCount: runResult.agents?.fallbackOverrides?.length ?? 0,
80
- turnCountBucket: bucketTurnCount(runResult.turns),
81
- stallTriggered: runResult.stallTriggered ?? false,
55
+ fallbackCount: Math.min(runResult.agents?.fallbackOverrides?.length ?? 0, 20),
56
+ stallCount: Math.min(runResult.stallCount ?? (runResult.stallTriggered ? 1 : 0), 20),
57
+ taskMaxIdleMs: runResult.taskMaxIdleMs ?? null,
82
58
  clarificationRequested: runResult.lifecycleClarificationRequested ?? false,
83
- parentModelFamily: deriveModelFamily(parentModel),
84
- briefQualityWarningCount: runResult.briefQualityWarnings?.length ?? 0,
59
+ briefQualityWarningCount: Math.min(runResult.briefQualityWarnings?.length ?? 0, 20),
60
+ sandboxViolationCount: Math.min(runResult.sandboxViolationCount ?? 0, 100),
61
+ stages,
85
62
  };
86
63
  }
87
- export function buildSessionStartedEvent(snapshot) {
64
+ function buildStages(route, rr) {
65
+ const result = [];
66
+ // implementing — always present
67
+ const impl = buildImplStage(rr);
68
+ if (impl)
69
+ result.push(impl);
70
+ // spec_review — only on reviewed routes with full review
71
+ if (REVIEWED_ROUTES.has(route) && !QUALITY_ONLY_ROUTES.has(route)) {
72
+ const sr = buildReviewStage('spec_review', rr, rr.specReviewStatus ?? null, rr.reviewRounds?.spec ?? null);
73
+ if (sr)
74
+ result.push(sr);
75
+ }
76
+ // spec_rework — only on full review routes
77
+ if (REVIEWED_ROUTES.has(route) && !QUALITY_ONLY_ROUTES.has(route)) {
78
+ const sw = buildReworkStage('spec_rework', rr);
79
+ if (sw)
80
+ result.push(sw);
81
+ }
82
+ // quality_review — on all reviewed routes
83
+ if (REVIEWED_ROUTES.has(route)) {
84
+ const qr = buildReviewStage('quality_review', rr, rr.qualityReviewStatus ?? null, rr.reviewRounds?.quality ?? null);
85
+ if (qr)
86
+ result.push(qr);
87
+ }
88
+ // quality_rework — on all reviewed routes
89
+ if (REVIEWED_ROUTES.has(route)) {
90
+ const qw = buildReworkStage('quality_rework', rr);
91
+ if (qw)
92
+ result.push(qw);
93
+ }
94
+ // diff_review — only on full review routes
95
+ if (REVIEWED_ROUTES.has(route) && !QUALITY_ONLY_ROUTES.has(route)) {
96
+ const dr = buildReviewStage('diff_review', rr, null, null);
97
+ if (dr)
98
+ result.push(dr);
99
+ }
100
+ // verifying — only on delegate, execute-plan, verify routes
101
+ if (VERIFY_ROUTES.has(route)) {
102
+ const vs = buildVerifyStage(rr);
103
+ if (vs)
104
+ result.push(vs);
105
+ }
106
+ // committing — always present
107
+ const cm = buildCommitStage(rr);
108
+ if (cm)
109
+ result.push(cm);
110
+ return result.slice(0, 8);
111
+ }
112
+ function extractStageData(raw) {
113
+ if (!raw || !raw.entered)
114
+ return null;
88
115
  return {
89
- type: 'session.started',
90
- eventId: randomUUID(),
91
- configFlavor: {
92
- defaultTier: snapshot.defaultTier,
93
- diagnosticsEnabled: snapshot.diagnosticsEnabled,
94
- autoUpdateSkills: snapshot.autoUpdateSkills,
95
- },
96
- providersConfigured: [...new Set(snapshot.providersConfigured)],
116
+ model: raw.model ? normalizeModel(raw.model).canonical : 'custom',
117
+ agentTier: (raw.agentTier === 'complex' ? 'reasoning' : 'standard'),
118
+ durationMs: Math.min(raw.durationMs ?? 0, 3_600_000),
119
+ costUSD: Math.round((raw.costUSD ?? 0) * 1_000_000) / 1_000_000,
120
+ inputTokens: 0,
121
+ outputTokens: 0,
122
+ cachedTokens: 0,
123
+ reasoningTokens: 0,
124
+ toolCallCount: 0,
125
+ filesReadCount: 0,
126
+ filesWrittenCount: 0,
127
+ turnCount: 0,
128
+ maxIdleMs: raw.maxIdleMs ?? null,
129
+ totalIdleMs: raw.totalIdleMs ?? null,
130
+ };
131
+ }
132
+ function buildImplStage(rr) {
133
+ const ss = rr.stageStats?.implementing;
134
+ const base = extractStageData(ss);
135
+ if (!base)
136
+ return null;
137
+ return { name: 'implementing', ...base };
138
+ }
139
+ function buildReviewStage(name, rr, status, rounds) {
140
+ const ss = rr.stageStats?.[name];
141
+ const base = extractStageData(ss);
142
+ if (!base)
143
+ return null;
144
+ const concernSource = name;
145
+ const stageConcerns = (rr.concerns ?? []).filter(c => c.source === concernSource);
146
+ const categories = [...new Set(stageConcerns.map(c => classifyConcern(c)))];
147
+ const findingsBySeverity = { high: 0, medium: 0, low: 0, style: 0 };
148
+ for (const c of stageConcerns) {
149
+ const sev = c.severity ?? 'medium';
150
+ if (sev in findingsBySeverity) {
151
+ findingsBySeverity[sev] =
152
+ Math.min(findingsBySeverity[sev] + 1, 50);
153
+ }
154
+ }
155
+ let verdict = status ?? 'not_applicable';
156
+ if (verdict === 'approved' && stageConcerns.length > 0) {
157
+ verdict = 'concerns';
158
+ }
159
+ return {
160
+ name,
161
+ ...base,
162
+ verdict,
163
+ roundsUsed: Math.min(rounds ?? 1, 10),
164
+ concernCategories: categories.slice(0, 9),
165
+ findingsBySeverity,
97
166
  };
98
167
  }
99
- export function buildInstallChangedEvent(from, to, trigger) {
168
+ function buildReworkStage(name, rr) {
169
+ const ss = rr.stageStats?.[name];
170
+ const base = extractStageData(ss);
171
+ if (!base)
172
+ return null;
173
+ const concernSource = name === 'spec_rework' ? 'spec_review' : 'quality_review';
174
+ const stageConcerns = (rr.concerns ?? []).filter(c => c.source === concernSource);
175
+ const triggeringCategories = [...new Set(stageConcerns.map(c => classifyConcern(c)))];
100
176
  return {
101
- type: 'install.changed',
102
- eventId: randomUUID(),
103
- fromVersion: from,
104
- toVersion: to,
105
- trigger,
177
+ name,
178
+ ...base,
179
+ triggeringConcernCategories: triggeringCategories.slice(0, 9),
106
180
  };
107
181
  }
108
- export function buildSkillInstalledEvent(skillId, client) {
182
+ function buildVerifyStage(rr) {
183
+ const ss = rr.stageStats?.verifying;
184
+ const base = extractStageData(ss);
185
+ if (!base)
186
+ return null;
109
187
  return {
110
- type: 'skill.installed',
111
- eventId: randomUUID(),
112
- skill: skillId,
113
- client: client,
188
+ name: 'verifying',
189
+ ...base,
190
+ outcome: ss?.outcome ?? 'not_applicable',
191
+ skipReason: ss?.outcome === 'skipped' ? (ss?.skipReason ?? 'other') : null,
192
+ };
193
+ }
194
+ function buildCommitStage(rr) {
195
+ const ss = rr.stageStats?.committing;
196
+ const base = extractStageData(ss);
197
+ if (!base)
198
+ return null;
199
+ return {
200
+ name: 'committing',
201
+ ...base,
202
+ filesCommittedCount: 0,
203
+ branchCreated: false,
114
204
  };
115
205
  }
116
206
  // ── Derivation helpers ─────────────────────────────────────────────────────
117
207
  function deriveTerminalStatus(rr) {
118
208
  const tr = rr.terminationReason;
119
- // Top-level string literals (handled before any property access)
120
209
  if (tr === 'all_tiers_unavailable')
121
210
  return 'unavailable';
122
211
  if (tr === 'cost_ceiling')
123
212
  return 'cost_exceeded';
124
213
  if (tr === 'round_cap')
125
214
  return 'incomplete';
126
- // Missing terminationReason
127
215
  if (!tr || typeof tr !== 'object')
128
216
  return 'incomplete';
129
- // Object form — read cause
130
217
  switch (tr.cause) {
131
218
  case 'finished': return 'ok';
132
219
  case 'incomplete':
@@ -142,223 +229,25 @@ function deriveTerminalStatus(rr) {
142
229
  }
143
230
  }
144
231
  function deriveErrorCode(rr) {
145
- // Priority 1: structuredError.code if present and in allowlist
146
- if (rr.structuredError?.code) {
232
+ if (rr.structuredError?.code)
147
233
  return rr.structuredError.code;
148
- }
149
- // Priority 2: from terminationReason.cause mapping
150
234
  const tr = rr.terminationReason;
151
235
  if (tr && typeof tr === 'object') {
152
236
  switch (tr.cause) {
153
- case 'api_error': return 'api_error';
154
- case 'network_error': return 'network_error';
237
+ case 'api_error':
155
238
  case 'api_aborted': return 'api_error';
239
+ case 'network_error': return 'network_error';
156
240
  }
157
241
  }
158
- // Priority 3: fallback
159
- return 'other';
242
+ return null;
160
243
  }
161
244
  function deriveWorkerStatus(rr) {
162
245
  const tr = rr.terminationReason;
163
- // Priority 1: terminationReason.cause === 'finished' → use workerSelfAssessment
164
246
  if (tr && typeof tr === 'object' && tr.cause === 'finished' && tr.workerSelfAssessment) {
165
247
  return tr.workerSelfAssessment;
166
248
  }
167
- // Priority 2: RunResult.workerStatus
168
249
  if (rr.workerStatus)
169
250
  return rr.workerStatus;
170
- // Priority 3: fallback
171
251
  return 'failed';
172
252
  }
173
- const SNAKE_TO_CAMEL = {
174
- read_file: 'readFile',
175
- write_file: 'writeFile',
176
- edit_file: 'editFile',
177
- run_shell: 'runShell',
178
- list_files: 'listFiles',
179
- };
180
- /**
181
- * Top-N selection of tool names by call frequency.
182
- * Pipeline:
183
- * 1. snake_case → camelCase normalization (so adapters emitting either form
184
- * collapse to the same tool name in counts)
185
- * 2. shape validation against BoundedIdentifier (any name that passes is
186
- * counted; names that fail shape are dropped — NOT collapsed to 'other')
187
- * 3. top 20 by frequency (matches schema max(20))
188
- */
189
- export function deriveTopToolNames(toolCalls) {
190
- const counts = new Map();
191
- for (const name of toolCalls) {
192
- const canonical = SNAKE_TO_CAMEL[name] ?? name;
193
- if (BoundedIdentifier.safeParse(canonical).success) {
194
- counts.set(canonical, (counts.get(canonical) ?? 0) + 1);
195
- }
196
- }
197
- return Array.from(counts.entries())
198
- .sort((a, b) => b[1] - a[1])
199
- .slice(0, 20)
200
- .map(([name]) => name);
201
- }
202
- function buildStages(route, rr) {
203
- const ss = rr.stageStats;
204
- const reviewedRoutes = new Set(['delegate', 'execute-plan']);
205
- const verifyRoutes = new Set(['delegate', 'execute-plan', 'verify']);
206
- return {
207
- implementing: buildStageStats(ss?.implementing),
208
- verifying: buildVerifyStageStats(ss?.verifying, route, verifyRoutes),
209
- spec_review: buildReviewStageStats(ss?.spec_review, route, reviewedRoutes, 'spec_review', rr.specReviewStatus ?? null, rr.reviewRounds?.spec ?? null, rr),
210
- spec_rework: buildStageStats(ss?.spec_rework),
211
- quality_review: buildReviewStageStats(ss?.quality_review, route, reviewedRoutes, 'quality_review', rr.qualityReviewStatus ?? null, rr.reviewRounds?.quality ?? null, rr),
212
- quality_rework: buildStageStats(ss?.quality_rework),
213
- diff_review: reviewedRoutes.has(route) && ss?.diff_review && ss.diff_review.entered
214
- ? buildReviewStageStats(ss?.diff_review, route, reviewedRoutes, 'diff_review', null, null, rr)
215
- : undefined,
216
- committing: buildStageStats(ss?.committing),
217
- };
218
- }
219
- function buildStageStats(raw) {
220
- if (!raw || !raw.entered) {
221
- return {
222
- entered: false,
223
- durationBucket: null,
224
- costBucket: null,
225
- agentTier: null,
226
- modelFamily: null,
227
- model: null,
228
- };
229
- }
230
- return {
231
- entered: true,
232
- durationBucket: bucketDuration(raw.durationMs ?? 0),
233
- costBucket: bucketCost(raw.costUSD ?? 0),
234
- agentTier: raw.agentTier,
235
- modelFamily: raw.modelFamily,
236
- model: normalizeModelForTelemetry(raw.model ? extractCanonicalModelName(raw.model) : null),
237
- };
238
- }
239
- function buildVerifyStageStats(raw, route, verifyRoutes) {
240
- if (!verifyRoutes.has(route)) {
241
- return {
242
- entered: false,
243
- durationBucket: null,
244
- costBucket: null,
245
- agentTier: null,
246
- modelFamily: null,
247
- model: null,
248
- outcome: null,
249
- skipReason: null,
250
- };
251
- }
252
- if (!raw || !raw.entered) {
253
- return {
254
- entered: false,
255
- durationBucket: null,
256
- costBucket: null,
257
- agentTier: null,
258
- modelFamily: null,
259
- model: null,
260
- outcome: null,
261
- skipReason: null,
262
- };
263
- }
264
- return {
265
- entered: true,
266
- durationBucket: bucketDuration(raw.durationMs ?? 0),
267
- costBucket: bucketCost(raw.costUSD ?? 0),
268
- agentTier: raw.agentTier,
269
- modelFamily: raw.modelFamily,
270
- model: normalizeModelForTelemetry(raw.model ? extractCanonicalModelName(raw.model) : null),
271
- outcome: raw.outcome ?? 'not_applicable',
272
- skipReason: raw.outcome === 'skipped' ? (raw.skipReason ?? 'other') : null,
273
- };
274
- }
275
- function buildReviewStageStats(raw, route, reviewedRoutes, concernSource, reviewStatus, rounds, rr) {
276
- if (!reviewedRoutes.has(route)) {
277
- return {
278
- entered: false,
279
- durationBucket: null,
280
- costBucket: null,
281
- agentTier: null,
282
- modelFamily: null,
283
- model: null,
284
- verdict: null,
285
- roundsUsed: null,
286
- concernCategories: null,
287
- };
288
- }
289
- if (!raw || !raw.entered) {
290
- return {
291
- entered: false,
292
- durationBucket: null,
293
- costBucket: null,
294
- agentTier: null,
295
- modelFamily: null,
296
- model: null,
297
- verdict: null,
298
- roundsUsed: null,
299
- concernCategories: null,
300
- };
301
- }
302
- // Derive verdict: upgrade 'approved' → 'concerns' if concerns exist from this stage
303
- let verdict = reviewStatus ?? 'not_applicable';
304
- if (verdict === 'approved') {
305
- const hasMatchingConcerns = (rr.concerns ?? []).some(c => c.source === concernSource);
306
- if (hasMatchingConcerns) {
307
- verdict = 'concerns';
308
- }
309
- }
310
- // Classify concerns for this stage
311
- const stageConcerns = (rr.concerns ?? []).filter(c => c.source === concernSource);
312
- const categories = [...new Set(stageConcerns.map(c => classifyConcern(c)))];
313
- return {
314
- entered: true,
315
- durationBucket: bucketDuration(raw.durationMs ?? 0),
316
- costBucket: bucketCost(raw.costUSD ?? 0),
317
- agentTier: raw.agentTier,
318
- modelFamily: raw.modelFamily,
319
- model: normalizeModelForTelemetry(raw.model ? extractCanonicalModelName(raw.model) : null),
320
- verdict,
321
- roundsUsed: rounds !== null ? bucketRoundsUsed(rounds) : '1',
322
- concernCategories: categories.length > 0 ? categories : [],
323
- };
324
- }
325
- // ── Model helpers ──────────────────────────────────────────────────────────
326
- export function deriveModelFamily(modelId) {
327
- if (!modelId)
328
- return 'other';
329
- const m = modelId.toLowerCase();
330
- if (m.startsWith('claude'))
331
- return 'claude';
332
- if (m.startsWith('gpt') ||
333
- m.startsWith('openai') ||
334
- m.startsWith('o1') ||
335
- m.startsWith('o3') ||
336
- m.startsWith('o4'))
337
- return 'openai';
338
- if (m.startsWith('gemini'))
339
- return 'gemini';
340
- if (m.startsWith('deepseek'))
341
- return 'deepseek';
342
- if (m.startsWith('grok'))
343
- return 'grok';
344
- if (m.startsWith('mistral'))
345
- return 'mistral';
346
- if (m.startsWith('llama') || m.startsWith('meta-llama/'))
347
- return 'meta';
348
- if (m.startsWith('qwen'))
349
- return 'qwen';
350
- if (m.startsWith('glm'))
351
- return 'zhipu';
352
- if (m.startsWith('kimi'))
353
- return 'kimi';
354
- if (m.startsWith('minimax'))
355
- return 'minimax';
356
- return 'other';
357
- }
358
- export function normalizeModelForTelemetry(modelId) {
359
- if (!modelId)
360
- return 'other';
361
- const result = BoundedIdentifier.safeParse(modelId);
362
- return result.success ? modelId : 'other';
363
- }
364
253
  //# sourceMappingURL=event-builder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-builder.js","sourceRoot":"","sources":["../../src/telemetry/event-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"event-builder.js","sourceRoot":"","sources":["../../src/telemetry/event-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { ModelFamily } from '../routing/model-profiles.js';
2
+ export type { ModelFamily };
3
+ /**
4
+ * Normalize a raw model ID into its canonical name and family.
5
+ *
6
+ * Combines prefix stripping (extractCanonicalModelName) with profile
7
+ * lookup (findModelProfile) into a single call. Callers that need both
8
+ * the canonical form and the family without reaching into routing
9
+ * internals should use this entry point.
10
+ *
11
+ * Idempotent: the canonical output of normalizeModel, when fed back
12
+ * in as input, produces the same canonical output.
13
+ */
14
+ export declare function normalizeModel(rawModelId: string): {
15
+ canonical: string;
16
+ family: ModelFamily;
17
+ };
18
+ //# sourceMappingURL=normalize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../src/telemetry/normalize.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,YAAY,EAAE,WAAW,EAAE,CAAC;AAE5B;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,CAI7F"}
@@ -0,0 +1,18 @@
1
+ import { extractCanonicalModelName, findModelProfile } from '../routing/model-profiles.js';
2
+ /**
3
+ * Normalize a raw model ID into its canonical name and family.
4
+ *
5
+ * Combines prefix stripping (extractCanonicalModelName) with profile
6
+ * lookup (findModelProfile) into a single call. Callers that need both
7
+ * the canonical form and the family without reaching into routing
8
+ * internals should use this entry point.
9
+ *
10
+ * Idempotent: the canonical output of normalizeModel, when fed back
11
+ * in as input, produces the same canonical output.
12
+ */
13
+ export function normalizeModel(rawModelId) {
14
+ const canonical = extractCanonicalModelName(rawModelId);
15
+ const family = findModelProfile(canonical).family;
16
+ return { canonical, family };
17
+ }
18
+ //# sourceMappingURL=normalize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../src/telemetry/normalize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAI3F;;;;;;;;;;GAUG;AACH,MAAM,UAAU,cAAc,CAAC,UAAkB;IAC/C,MAAM,SAAS,GAAG,yBAAyB,CAAC,UAAU,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;IAClD,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;AAC/B,CAAC"}