@codemieai/code 0.4.2 → 0.5.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.
Files changed (132) hide show
  1. package/README.md +7 -1
  2. package/bin/codemie-kimi-acp.js +18 -0
  3. package/bin/codemie-kimi.js +18 -0
  4. package/dist/agents/core/AgentCLI.d.ts.map +1 -1
  5. package/dist/agents/core/AgentCLI.js +4 -0
  6. package/dist/agents/core/AgentCLI.js.map +1 -1
  7. package/dist/agents/core/BaseAgentAdapter.d.ts.map +1 -1
  8. package/dist/agents/core/BaseAgentAdapter.js +26 -6
  9. package/dist/agents/core/BaseAgentAdapter.js.map +1 -1
  10. package/dist/agents/core/metrics/types.d.ts +1 -1
  11. package/dist/agents/core/metrics/types.d.ts.map +1 -1
  12. package/dist/agents/core/session/BaseProcessor.d.ts +2 -0
  13. package/dist/agents/core/session/BaseProcessor.d.ts.map +1 -1
  14. package/dist/agents/core/session/BaseSessionAdapter.d.ts +7 -0
  15. package/dist/agents/core/session/BaseSessionAdapter.d.ts.map +1 -1
  16. package/dist/agents/core/types.d.ts +30 -0
  17. package/dist/agents/core/types.d.ts.map +1 -1
  18. package/dist/agents/plugins/claude/claude.plugin.js +3 -3
  19. package/dist/agents/plugins/claude/claude.session.d.ts.map +1 -1
  20. package/dist/agents/plugins/claude/claude.session.js +21 -6
  21. package/dist/agents/plugins/claude/claude.session.js.map +1 -1
  22. package/dist/agents/plugins/gemini/gemini.plugin.js.map +1 -1
  23. package/dist/agents/plugins/gemini/session/processors/gemini.metrics-processor.d.ts.map +1 -1
  24. package/dist/agents/plugins/gemini/session/processors/gemini.metrics-processor.js +3 -0
  25. package/dist/agents/plugins/gemini/session/processors/gemini.metrics-processor.js.map +1 -1
  26. package/dist/agents/plugins/kimi/extension/SKILL.md +6 -0
  27. package/dist/agents/plugins/kimi/extension/manifest.json +8 -0
  28. package/dist/agents/plugins/kimi/kimi-acp.plugin.d.ts +7 -0
  29. package/dist/agents/plugins/kimi/kimi-acp.plugin.d.ts.map +1 -0
  30. package/dist/agents/plugins/kimi/kimi-acp.plugin.js +28 -0
  31. package/dist/agents/plugins/kimi/kimi-acp.plugin.js.map +1 -0
  32. package/dist/agents/plugins/kimi/kimi.extension-installer.d.ts +56 -0
  33. package/dist/agents/plugins/kimi/kimi.extension-installer.d.ts.map +1 -0
  34. package/dist/agents/plugins/kimi/kimi.extension-installer.js +79 -0
  35. package/dist/agents/plugins/kimi/kimi.extension-installer.js.map +1 -0
  36. package/dist/agents/plugins/kimi/kimi.hook-config-injector.d.ts +34 -0
  37. package/dist/agents/plugins/kimi/kimi.hook-config-injector.d.ts.map +1 -0
  38. package/dist/agents/plugins/kimi/kimi.hook-config-injector.js +158 -0
  39. package/dist/agents/plugins/kimi/kimi.hook-config-injector.js.map +1 -0
  40. package/dist/agents/plugins/kimi/kimi.hook-transformer.d.ts +23 -0
  41. package/dist/agents/plugins/kimi/kimi.hook-transformer.d.ts.map +1 -0
  42. package/dist/agents/plugins/kimi/kimi.hook-transformer.js +46 -0
  43. package/dist/agents/plugins/kimi/kimi.hook-transformer.js.map +1 -0
  44. package/dist/agents/plugins/kimi/kimi.models.d.ts +8 -0
  45. package/dist/agents/plugins/kimi/kimi.models.d.ts.map +1 -0
  46. package/dist/agents/plugins/kimi/kimi.models.js +174 -0
  47. package/dist/agents/plugins/kimi/kimi.models.js.map +1 -0
  48. package/dist/agents/plugins/kimi/kimi.paths.d.ts +65 -0
  49. package/dist/agents/plugins/kimi/kimi.paths.d.ts.map +1 -0
  50. package/dist/agents/plugins/kimi/kimi.paths.js +95 -0
  51. package/dist/agents/plugins/kimi/kimi.paths.js.map +1 -0
  52. package/dist/agents/plugins/kimi/kimi.plugin.d.ts +37 -0
  53. package/dist/agents/plugins/kimi/kimi.plugin.d.ts.map +1 -0
  54. package/dist/agents/plugins/kimi/kimi.plugin.js +318 -0
  55. package/dist/agents/plugins/kimi/kimi.plugin.js.map +1 -0
  56. package/dist/agents/plugins/kimi/kimi.session.d.ts +40 -0
  57. package/dist/agents/plugins/kimi/kimi.session.d.ts.map +1 -0
  58. package/dist/agents/plugins/kimi/kimi.session.js +191 -0
  59. package/dist/agents/plugins/kimi/kimi.session.js.map +1 -0
  60. package/dist/agents/plugins/kimi/session/processors/kimi.metrics-processor.d.ts +43 -0
  61. package/dist/agents/plugins/kimi/session/processors/kimi.metrics-processor.d.ts.map +1 -0
  62. package/dist/agents/plugins/kimi/session/processors/kimi.metrics-processor.js +421 -0
  63. package/dist/agents/plugins/kimi/session/processors/kimi.metrics-processor.js.map +1 -0
  64. package/dist/agents/plugins/kimi/session/types.d.ts +81 -0
  65. package/dist/agents/plugins/kimi/session/types.d.ts.map +1 -0
  66. package/dist/agents/plugins/kimi/session/types.js +5 -0
  67. package/dist/agents/plugins/kimi/session/types.js.map +1 -0
  68. package/dist/agents/registry.d.ts.map +1 -1
  69. package/dist/agents/registry.js +4 -0
  70. package/dist/agents/registry.js.map +1 -1
  71. package/dist/cli/commands/analytics/cost/cost-enricher.d.ts.map +1 -1
  72. package/dist/cli/commands/analytics/cost/cost-enricher.js +67 -1
  73. package/dist/cli/commands/analytics/cost/cost-enricher.js.map +1 -1
  74. package/dist/cli/commands/analytics/cost/dispatch-extractor.d.ts +2 -2
  75. package/dist/cli/commands/analytics/cost/dispatch-extractor.d.ts.map +1 -1
  76. package/dist/cli/commands/analytics/cost/dispatch-extractor.js +6 -4
  77. package/dist/cli/commands/analytics/cost/dispatch-extractor.js.map +1 -1
  78. package/dist/cli/commands/analytics/cost/pricing.json +9 -2
  79. package/dist/cli/commands/analytics/cost/types.d.ts +13 -0
  80. package/dist/cli/commands/analytics/cost/types.d.ts.map +1 -1
  81. package/dist/cli/commands/analytics/cost/types.js.map +1 -1
  82. package/dist/cli/commands/analytics/cost/usage-readers.d.ts +13 -4
  83. package/dist/cli/commands/analytics/cost/usage-readers.d.ts.map +1 -1
  84. package/dist/cli/commands/analytics/cost/usage-readers.js +115 -27
  85. package/dist/cli/commands/analytics/cost/usage-readers.js.map +1 -1
  86. package/dist/cli/commands/analytics/model-normalizer.d.ts +2 -0
  87. package/dist/cli/commands/analytics/model-normalizer.d.ts.map +1 -1
  88. package/dist/cli/commands/analytics/model-normalizer.js +8 -0
  89. package/dist/cli/commands/analytics/model-normalizer.js.map +1 -1
  90. package/dist/cli/commands/analytics/report/client/app.js +233 -120
  91. package/dist/cli/commands/analytics/report/template.html +28 -4
  92. package/dist/cli/commands/hook.d.ts.map +1 -1
  93. package/dist/cli/commands/hook.js +24 -7
  94. package/dist/cli/commands/hook.js.map +1 -1
  95. package/dist/providers/index.d.ts +2 -0
  96. package/dist/providers/index.d.ts.map +1 -1
  97. package/dist/providers/index.js +2 -0
  98. package/dist/providers/index.js.map +1 -1
  99. package/dist/providers/plugins/moonshot-subscription/index.d.ts +9 -0
  100. package/dist/providers/plugins/moonshot-subscription/index.d.ts.map +1 -0
  101. package/dist/providers/plugins/moonshot-subscription/index.js +9 -0
  102. package/dist/providers/plugins/moonshot-subscription/index.js.map +1 -0
  103. package/dist/providers/plugins/moonshot-subscription/moonshot-subscription.setup-steps.d.ts +8 -0
  104. package/dist/providers/plugins/moonshot-subscription/moonshot-subscription.setup-steps.d.ts.map +1 -0
  105. package/dist/providers/plugins/moonshot-subscription/moonshot-subscription.setup-steps.js +80 -0
  106. package/dist/providers/plugins/moonshot-subscription/moonshot-subscription.setup-steps.js.map +1 -0
  107. package/dist/providers/plugins/moonshot-subscription/moonshot-subscription.template.d.ts +11 -0
  108. package/dist/providers/plugins/moonshot-subscription/moonshot-subscription.template.d.ts.map +1 -0
  109. package/dist/providers/plugins/moonshot-subscription/moonshot-subscription.template.js +111 -0
  110. package/dist/providers/plugins/moonshot-subscription/moonshot-subscription.template.js.map +1 -0
  111. package/dist/providers/plugins/sso/proxy/plugins/index.d.ts +2 -1
  112. package/dist/providers/plugins/sso/proxy/plugins/index.d.ts.map +1 -1
  113. package/dist/providers/plugins/sso/proxy/plugins/index.js +3 -1
  114. package/dist/providers/plugins/sso/proxy/plugins/index.js.map +1 -1
  115. package/dist/providers/plugins/sso/proxy/plugins/kimi-request-normalizer.plugin.d.ts +18 -0
  116. package/dist/providers/plugins/sso/proxy/plugins/kimi-request-normalizer.plugin.d.ts.map +1 -0
  117. package/dist/providers/plugins/sso/proxy/plugins/kimi-request-normalizer.plugin.js +56 -0
  118. package/dist/providers/plugins/sso/proxy/plugins/kimi-request-normalizer.plugin.js.map +1 -0
  119. package/dist/providers/plugins/sso/sso.auth.d.ts +5 -0
  120. package/dist/providers/plugins/sso/sso.auth.d.ts.map +1 -1
  121. package/dist/providers/plugins/sso/sso.auth.js +23 -1
  122. package/dist/providers/plugins/sso/sso.auth.js.map +1 -1
  123. package/dist/utils/config.d.ts +24 -0
  124. package/dist/utils/config.d.ts.map +1 -1
  125. package/dist/utils/config.js +83 -8
  126. package/dist/utils/config.js.map +1 -1
  127. package/dist/utils/native-installer.d.ts.map +1 -1
  128. package/dist/utils/native-installer.js +6 -3
  129. package/dist/utils/native-installer.js.map +1 -1
  130. package/package.json +4 -1
  131. package/scripts/copy-plugins.js +5 -0
  132. package/scripts/test-desktop-telemetry.js +1 -1
@@ -153,6 +153,70 @@ async function mapWithConcurrency(items, limit, fn) {
153
153
  await Promise.all(workers);
154
154
  return out;
155
155
  }
156
+ /**
157
+ * Second-pass enrichment: for each agent dispatch that has a matching subagent entry
158
+ * (linked by toolUseId from the .meta.json), extract usage from the subagent's messages,
159
+ * price it, and attach costUSD + tokens + tools to the dispatch event in place.
160
+ *
161
+ * The per-dispatch cost is an ALLOCATION of already-counted session tokens (subagents are
162
+ * included in the session total via allMessageArrays). Do NOT add to `seen` here.
163
+ */
164
+ function enrichDispatchCosts(dispatches, parsed) {
165
+ if (!parsed.subagents?.length)
166
+ return;
167
+ const byToolUseId = new Map();
168
+ for (const sub of parsed.subagents) {
169
+ if (sub.toolUseId && Array.isArray(sub.messages)) {
170
+ byToolUseId.set(sub.toolUseId, sub);
171
+ }
172
+ }
173
+ if (!byToolUseId.size)
174
+ return;
175
+ for (const dispatch of dispatches) {
176
+ if (dispatch.kind !== 'agent' || !dispatch._toolUseId)
177
+ continue;
178
+ const sub = byToolUseId.get(dispatch._toolUseId);
179
+ if (!sub)
180
+ continue;
181
+ const subSeen = new Set();
182
+ const records = gatherDedupedUsageRecords('claude', { sessionId: '', agentName: 'claude', metadata: {}, messages: sub.messages }, subSeen);
183
+ if (records.length) {
184
+ const usageByModel = sumUsageRecords(records);
185
+ let totalCost = 0;
186
+ let totalTokens = emptyUsage();
187
+ let priced = false;
188
+ for (const [rawModel, usage] of usageByModel) {
189
+ const model = normalizeModelName(rawModel);
190
+ const price = lookupPrice(model);
191
+ if (price) {
192
+ totalCost += costBreakdown(usage, price).total;
193
+ priced = true;
194
+ }
195
+ totalTokens = addUsage(totalTokens, usage);
196
+ }
197
+ if (priced)
198
+ dispatch.costUSD = Math.round(totalCost * 1e8) / 1e8;
199
+ dispatch.tokens = totalTokens;
200
+ }
201
+ const toolCounts = {};
202
+ for (const raw of sub.messages) {
203
+ const content = raw.message?.content;
204
+ if (!Array.isArray(content))
205
+ continue;
206
+ for (const b of content) {
207
+ if (b.type === 'tool_use' && b.name) {
208
+ toolCounts[b.name] = (toolCounts[b.name] || 0) + 1;
209
+ }
210
+ }
211
+ }
212
+ const tools = Object.entries(toolCounts)
213
+ .map(([name, calls]) => ({ name, calls }))
214
+ .sort((a, b) => b.calls - a.calls)
215
+ .slice(0, 8);
216
+ if (tools.length)
217
+ dispatch.tools = tools;
218
+ }
219
+ }
156
220
  export async function enrichCosts(sessions, deps = realDeps) {
157
221
  // Phase 1: parse every native log concurrently.
158
222
  const parsedEntries = await mapWithConcurrency(sessions, 16, (raw) => parseOne(raw, deps));
@@ -198,7 +262,9 @@ export async function enrichCosts(sessions, deps = realDeps) {
198
262
  try {
199
263
  const dispatches = extractDispatchEvents(entry.parsed);
200
264
  if (dispatches.length) {
201
- cost.dispatches = dispatches;
265
+ enrichDispatchCosts(dispatches, entry.parsed);
266
+ // Strip internal _toolUseId before storing in the public cost index
267
+ cost.dispatches = dispatches.map(({ _toolUseId: _id, ...d }) => d);
202
268
  }
203
269
  }
204
270
  catch (e) {
@@ -1 +1 @@
1
- {"version":3,"file":"cost-enricher.js","sourceRoot":"","sources":["../../../../../src/cli/commands/analytics/cost/cost-enricher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cost-enricher.js","sourceRoot":"","sources":["../../../../../src/cli/commands/analytics/cost/cost-enricher.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@
11
11
  * cross-session correlation concern.
12
12
  */
13
13
  import type { ParsedSession } from '../../../../agents/core/session/BaseSessionAdapter.js';
14
- import type { DispatchEvent } from './types.js';
14
+ import type { DispatchEventRaw } from './types.js';
15
15
  /** Extract timed top-level dispatches (agents/skills) + command point events, sorted by start. */
16
- export declare function extractDispatchEvents(parsed: ParsedSession): DispatchEvent[];
16
+ export declare function extractDispatchEvents(parsed: ParsedSession): DispatchEventRaw[];
17
17
  //# sourceMappingURL=dispatch-extractor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch-extractor.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/analytics/cost/dispatch-extractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uDAAuD,CAAC;AAC3F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAmBhD,kGAAkG;AAClG,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,EAAE,CA8D5E"}
1
+ {"version":3,"file":"dispatch-extractor.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/analytics/cost/dispatch-extractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uDAAuD,CAAC;AAC3F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAwBnD,kGAAkG;AAClG,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,gBAAgB,EAAE,CAgE/E"}
@@ -49,8 +49,10 @@ export function extractDispatchEvents(parsed) {
49
49
  }
50
50
  for (const b of content) {
51
51
  if (b?.type === 'tool_use' && ts != null && b.id) {
52
- if ((b.name === 'Agent' || b.name === 'Task') && typeof b.input?.subagent_type === 'string') {
53
- pending.set(b.id, { kind: 'agent', name: b.input.subagent_type.trim() || 'agent', start: ts });
52
+ if (b.name === 'Agent' || b.name === 'Task') {
53
+ const agentName = [b.input?.subagent_type, b.input?.name]
54
+ .find((value) => typeof value === 'string' && value.trim().length > 0);
55
+ pending.set(b.id, { kind: 'agent', name: agentName?.trim() ?? 'agent', start: ts, toolUseId: b.id });
54
56
  }
55
57
  else if (b.name === 'Skill' && typeof b.input?.skill === 'string') {
56
58
  pending.set(b.id, { kind: 'skill', name: b.input.skill.trim() || 'skill', start: ts });
@@ -59,7 +61,7 @@ export function extractDispatchEvents(parsed) {
59
61
  else if (b?.type === 'tool_result' && b.tool_use_id && pending.has(b.tool_use_id)) {
60
62
  const p = pending.get(b.tool_use_id);
61
63
  pending.delete(b.tool_use_id);
62
- events.push({ kind: p.kind, name: p.name, start: p.start, durationMs: ts != null ? Math.max(0, ts - p.start) : 0 });
64
+ events.push({ kind: p.kind, name: p.name, start: p.start, durationMs: ts != null ? Math.max(0, ts - p.start) : 0, _toolUseId: p.kind === 'agent' ? p.toolUseId : undefined });
63
65
  }
64
66
  else if (isUser && b?.type === 'text' && typeof b.text === 'string' && ts != null) {
65
67
  scanCommands(b.text, ts);
@@ -68,7 +70,7 @@ export function extractDispatchEvents(parsed) {
68
70
  }
69
71
  // Dispatches whose tool_result never appeared (truncated/streaming log) → 0-duration markers.
70
72
  for (const p of pending.values()) {
71
- events.push({ kind: p.kind, name: p.name, start: p.start, durationMs: 0 });
73
+ events.push({ kind: p.kind, name: p.name, start: p.start, durationMs: 0, _toolUseId: p.kind === 'agent' ? p.toolUseId : undefined });
72
74
  }
73
75
  events.sort((a, b) => a.start - b.start);
74
76
  return events.slice(0, MAX_DISPATCHES);
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch-extractor.js","sourceRoot":"","sources":["../../../../../src/cli/commands/analytics/cost/dispatch-extractor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dispatch-extractor.js","sourceRoot":"","sources":["../../../../../src/cli/commands/analytics/cost/dispatch-extractor.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@
7
7
  "Google": "ai.google.dev/gemini-api/docs/pricing",
8
8
  "xAI": "docs.x.ai/developers/models",
9
9
  "DeepSeek": "api-docs.deepseek.com/quick_start/pricing",
10
+ "Moonshot": "platform.moonshot.cn/docs/pricing",
10
11
  "Z.ai": "docs.z.ai/guides/overview/pricing",
11
12
  "Zen": "opencode.ai/docs/zen/"
12
13
  },
@@ -16,7 +17,7 @@
16
17
  "cacheRead": "cache hit price (Anthropic: 0.1x input, OpenAI: varies, Google: ~0.1x input)",
17
18
  "cacheWrite": "cache write price (Anthropic: 1.25x input, OpenAI: ~same as input)"
18
19
  },
19
- "note": "codemie: added claude 4-7/4-8 tier estimates 2026-06-08"
20
+ "note": "codemie: added claude 4-7/4-8 tier estimates 2026-06-08; added kimi-for-coding alias and normalized kimi-k2-5 key 2026-06-15"
20
21
  },
21
22
  "claude-opus-4-6": {
22
23
  "input": 5,
@@ -918,7 +919,13 @@
918
919
  "cacheRead": 0.1,
919
920
  "cacheWrite": 0
920
921
  },
921
- "kimi-k2.5": {
922
+ "kimi-k2-5": {
923
+ "input": 0.6,
924
+ "output": 3,
925
+ "cacheRead": 0.1,
926
+ "cacheWrite": 0
927
+ },
928
+ "kimi-for-coding": {
922
929
  "input": 0.6,
923
930
  "output": 3,
924
931
  "cacheRead": 0.1,
@@ -33,7 +33,20 @@ export interface DispatchEvent {
33
33
  name: string;
34
34
  start: number;
35
35
  durationMs: number;
36
+ tokens?: TokenUsage;
37
+ costUSD?: number;
38
+ tools?: Array<{
39
+ name: string;
40
+ calls: number;
41
+ }>;
36
42
  }
43
+ /**
44
+ * Internal dispatch event used during cost enrichment — carries _toolUseId to join
45
+ * against parsed.subagents. Stripped before the event is stored in SessionCost.dispatches.
46
+ */
47
+ export type DispatchEventRaw = DispatchEvent & {
48
+ _toolUseId?: string;
49
+ };
37
50
  /** Max dispatch events kept per session — payload guard for very long runs. */
38
51
  export declare const MAX_DISPATCHES = 60;
39
52
  /** Cost result for a single session. */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/analytics/cost/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,kFAAkF;AAClF,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,2CAA2C;AAC3C,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,sEAAsE;AACtE,MAAM,WAAW,eAAe;IAC9B,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,iGAAiG;AACjG,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC,wFAAwF;AACxF,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,+EAA+E;AAC/E,eAAO,MAAM,cAAc,KAAK,CAAC;AAEjC,wCAAwC;AACxC,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,eAAe,EAAE,CAAC;IAC/B,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAC7B,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,+BAA+B;AAC/B,MAAM,MAAM,gBAAgB,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAExD;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,iDAAiD;AACjD,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/analytics/cost/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,kFAAkF;AAClF,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,2CAA2C;AAC3C,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,sEAAsE;AACtE,MAAM,WAAW,eAAe;IAC9B,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,iGAAiG;AACjG,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC,wFAAwF;AACxF,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChD;AAED;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvE,+EAA+E;AAC/E,eAAO,MAAM,cAAc,KAAK,CAAC;AAEjC,wCAAwC;AACxC,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,eAAe,EAAE,CAAC;IAC/B,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAC7B,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,+BAA+B;AAC/B,MAAM,MAAM,gBAAgB,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAExD;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,iDAAiD;AACjD,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/cli/commands/analytics/cost/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA0BH,iGAAiG;AACjG,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAUpC,+EAA+E;AAC/E,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/cli/commands/analytics/cost/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA0BH,iGAAiG;AACjG,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAmBpC,+EAA+E;AAC/E,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC"}
@@ -20,11 +20,20 @@ export interface UsageRecord {
20
20
  usage: TokenUsage;
21
21
  }
22
22
  /**
23
- * Extract one {@link UsageRecord} per Claude assistant message (skipping `<synthetic>`).
23
+ * Extract one {@link UsageRecord} per Claude assistant message (skipping `<synthetic>`),
24
+ * across the main transcript AND every sub-agent transcript in `parsed.subagents`.
24
25
  * Claude Code replays prior turns into resumed/forked session files, so the SAME API
25
26
  * response (same message.id + requestId) appears in multiple logs — callers dedupe by `key`.
27
+ * Records are returned in chronological order when every record is timed; otherwise in
28
+ * concatenation order (main transcript first, then sub-agent files in discovery order).
26
29
  */
27
30
  export declare function extractClaudeUsageRecords(parsed: ParsedSession): UsageRecord[];
31
+ /**
32
+ * Extract ordered, deduped usage records from Kimi wire events for per-turn cost series.
33
+ * Kimi has no stable message/request id, so records cannot be cross-session deduped;
34
+ * each record is session-local and keyed by timestamp when available.
35
+ */
36
+ export declare function extractKimiUsageRecords(parsed: ParsedSession): UsageRecord[];
28
37
  /**
29
38
  * Returns per-model {@link TokenUsage}. An empty map means the agent is
30
39
  * unsupported or the session carried no usage data. (Session-local; does NOT
@@ -39,10 +48,10 @@ export declare function readUsageByModel(agentName: string, parsed: ParsedSessio
39
48
  */
40
49
  export declare function gatherUsageDeduped(agentName: string, parsed: ParsedSession, seen: Set<string>): UsageMap;
41
50
  /**
42
- * Ordered, deduped per-message Claude usage records (for a per-session time-series).
51
+ * Ordered, deduped per-message usage records (for a per-session time-series).
43
52
  * Mirrors {@link gatherUsageDeduped}'s dedup (skips keys already in `seen`, mutates `seen`)
44
- * but preserves message order instead of summing. Returns [] when there is no per-message
45
- * order to series-ize: an authoritative SDK `modelUsage` rollup, or a non-Claude agent.
53
+ * but preserves chronological record order instead of summing. Returns [] when there is no per-message
54
+ * order to series-ize: an authoritative SDK `modelUsage` rollup, or a non-supported agent.
46
55
  * MUST be called at most once per session against a shared `seen` set (it consumes keys).
47
56
  */
48
57
  export declare function gatherDedupedUsageRecords(agentName: string, parsed: ParsedSession, seen: Set<string>): UsageRecord[];
@@ -1 +1 @@
1
- {"version":3,"file":"usage-readers.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/analytics/cost/usage-readers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uDAAuD,CAAC;AAC3F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG7C,qBAAqB;AACrB,KAAK,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AA8BxC,6FAA6F;AAC7F,MAAM,WAAW,WAAW;IAC1B,qGAAqG;IACrG,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,4EAA4E;IAC5E,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,UAAU,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,aAAa,GAAG,WAAW,EAAE,CA4B9E;AA+FD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,QAAQ,CAYnF;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,QAAQ,CAuBxG;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,WAAW,EAAE,CAmBpH;AAED,yGAAyG;AACzG,wBAAgB,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,QAAQ,CAMhE"}
1
+ {"version":3,"file":"usage-readers.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/analytics/cost/usage-readers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uDAAuD,CAAC;AAC3F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG7C,qBAAqB;AACrB,KAAK,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AA+CxC,6FAA6F;AAC7F,MAAM,WAAW,WAAW;IAC1B,qGAAqG;IACrG,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,4EAA4E;IAC5E,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,UAAU,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,aAAa,GAAG,WAAW,EAAE,CAsC9E;AAqID;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,aAAa,GAAG,WAAW,EAAE,CAmB5E;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,QAAQ,CAcnF;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,QAAQ,CA0BxG;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,WAAW,EAAE,CAuBpH;AAED,yGAAyG;AACzG,wBAAgB,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,QAAQ,CAMhE"}
@@ -19,36 +19,65 @@ function messagesOf(parsed) {
19
19
  return Array.isArray(parsed.messages) ? parsed.messages : [];
20
20
  }
21
21
  /**
22
- * Extract one {@link UsageRecord} per Claude assistant message (skipping `<synthetic>`).
22
+ * The session's message arrays: main transcript first, then each sub-agent transcript
23
+ * (transcripts of Task/Agent dispatches that the adapter parsed into `parsed.subagents`). Sub-agent token
24
+ * usage belongs to the owning session — readers that skip these undercount sessions
25
+ * that dispatch agents. Non-array `messages` entries are skipped with the same
26
+ * defensive posture as {@link messagesOf}.
27
+ */
28
+ function allMessageArrays(parsed) {
29
+ const arrays = [messagesOf(parsed)];
30
+ for (const sub of parsed.subagents ?? []) {
31
+ if (Array.isArray(sub.messages)) {
32
+ arrays.push(sub.messages);
33
+ }
34
+ }
35
+ return arrays;
36
+ }
37
+ /**
38
+ * Extract one {@link UsageRecord} per Claude assistant message (skipping `<synthetic>`),
39
+ * across the main transcript AND every sub-agent transcript in `parsed.subagents`.
23
40
  * Claude Code replays prior turns into resumed/forked session files, so the SAME API
24
41
  * response (same message.id + requestId) appears in multiple logs — callers dedupe by `key`.
42
+ * Records are returned in chronological order when every record is timed; otherwise in
43
+ * concatenation order (main transcript first, then sub-agent files in discovery order).
25
44
  */
26
45
  export function extractClaudeUsageRecords(parsed) {
27
46
  const records = [];
28
- for (const raw of messagesOf(parsed)) {
29
- const usage = raw.message?.usage;
30
- if (!usage) {
31
- continue;
32
- }
33
- const model = raw.message?.model ?? 'unknown';
34
- if (model === '<synthetic>') {
35
- continue; // synthetic system messages — not a billable model
47
+ for (const messages of allMessageArrays(parsed)) {
48
+ for (const raw of messages) {
49
+ const usage = raw.message?.usage;
50
+ if (!usage) {
51
+ continue;
52
+ }
53
+ const model = raw.message?.model ?? 'unknown';
54
+ if (model === '<synthetic>') {
55
+ continue; // synthetic system messages — not a billable model
56
+ }
57
+ const input = usage.input_tokens ?? 0;
58
+ const output = usage.output_tokens ?? 0;
59
+ const cacheRead = usage.cache_read_input_tokens ?? 0;
60
+ const cacheCreation = usage.cache_creation_input_tokens ?? 0;
61
+ const id = raw.message?.id;
62
+ const reqId = raw.requestId;
63
+ const key = id || reqId ? `${id ?? ''}::${reqId ?? ''}` : null;
64
+ const parsedTs = raw.timestamp ? Date.parse(raw.timestamp) : NaN;
65
+ const ts = Number.isFinite(parsedTs) ? parsedTs : null;
66
+ records.push({
67
+ key,
68
+ ts,
69
+ model,
70
+ usage: { input, output, cacheRead, cacheCreation, total: input + output + cacheRead + cacheCreation },
71
+ });
36
72
  }
37
- const input = usage.input_tokens ?? 0;
38
- const output = usage.output_tokens ?? 0;
39
- const cacheRead = usage.cache_read_input_tokens ?? 0;
40
- const cacheCreation = usage.cache_creation_input_tokens ?? 0;
41
- const id = raw.message?.id;
42
- const reqId = raw.requestId;
43
- const key = id || reqId ? `${id ?? ''}::${reqId ?? ''}` : null;
44
- const parsedTs = raw.timestamp ? Date.parse(raw.timestamp) : NaN;
45
- const ts = Number.isFinite(parsedTs) ? parsedTs : null;
46
- records.push({
47
- key,
48
- ts,
49
- model,
50
- usage: { input, output, cacheRead, cacheCreation, total: input + output + cacheRead + cacheCreation },
51
- });
73
+ }
74
+ // Main and sub-agent records interleave in real time. Sort chronologically when every
75
+ // record is timed — the same condition buildCostSeries uses for its real time axis — so
76
+ // the cumulative cost/token series stays monotonic in time. Single-file sessions are
77
+ // already in order (stable sort ⇒ no-op); any untimed record ⇒ keep concatenation order,
78
+ // matching the series' ordinal-axis fallback.
79
+ if (records.length > 1 && records.every((r) => r.ts !== null)) {
80
+ records.sort((a, b) => a.ts - b.ts);
52
81
  }
53
82
  return records;
54
83
  }
@@ -117,6 +146,56 @@ function readGemini(parsed) {
117
146
  }
118
147
  return out;
119
148
  }
149
+ /**
150
+ * Read Kimi Code usage.record events.
151
+ * Kimi records one usage event per assistant step with inputOther/output/cache fields.
152
+ */
153
+ function readKimi(parsed) {
154
+ const out = new Map();
155
+ for (const raw of messagesOf(parsed)) {
156
+ if (raw.type !== 'usage.record' || !raw.usage) {
157
+ continue;
158
+ }
159
+ const model = raw.model ?? 'unknown';
160
+ const input = raw.usage.inputOther ?? 0;
161
+ const output = raw.usage.output ?? 0;
162
+ const cacheRead = raw.usage.inputCacheRead ?? 0;
163
+ const cacheCreation = raw.usage.inputCacheCreation ?? 0;
164
+ accumulate(out, model, {
165
+ input,
166
+ output,
167
+ cacheRead,
168
+ cacheCreation,
169
+ total: input + output + cacheRead + cacheCreation,
170
+ });
171
+ }
172
+ return out;
173
+ }
174
+ /**
175
+ * Extract ordered, deduped usage records from Kimi wire events for per-turn cost series.
176
+ * Kimi has no stable message/request id, so records cannot be cross-session deduped;
177
+ * each record is session-local and keyed by timestamp when available.
178
+ */
179
+ export function extractKimiUsageRecords(parsed) {
180
+ const records = [];
181
+ for (const raw of messagesOf(parsed)) {
182
+ if (raw.type !== 'usage.record' || !raw.usage) {
183
+ continue;
184
+ }
185
+ const model = raw.model ?? 'unknown';
186
+ const input = raw.usage.inputOther ?? 0;
187
+ const output = raw.usage.output ?? 0;
188
+ const cacheRead = raw.usage.inputCacheRead ?? 0;
189
+ const cacheCreation = raw.usage.inputCacheCreation ?? 0;
190
+ records.push({
191
+ key: null,
192
+ ts: typeof raw.time === 'number' ? raw.time : null,
193
+ model,
194
+ usage: { input, output, cacheRead, cacheCreation, total: input + output + cacheRead + cacheCreation },
195
+ });
196
+ }
197
+ return records;
198
+ }
120
199
  /**
121
200
  * Returns per-model {@link TokenUsage}. An empty map means the agent is
122
201
  * unsupported or the session carried no usage data. (Session-local; does NOT
@@ -131,6 +210,8 @@ export function readUsageByModel(agentName, parsed) {
131
210
  return readClaudeDesktop(parsed);
132
211
  case 'gemini':
133
212
  return readGemini(parsed);
213
+ case 'kimi':
214
+ return readKimi(parsed);
134
215
  default:
135
216
  return new Map();
136
217
  }
@@ -146,6 +227,9 @@ export function gatherUsageDeduped(agentName, parsed, seen) {
146
227
  if (a === 'gemini') {
147
228
  return readGemini(parsed);
148
229
  }
230
+ if (a === 'kimi') {
231
+ return readKimi(parsed);
232
+ }
149
233
  if (a === 'claude' || a === 'claude-acp' || a === 'claude-desktop') {
150
234
  const rollup = readClaudeSdkResult(parsed);
151
235
  if (rollup) {
@@ -166,14 +250,18 @@ export function gatherUsageDeduped(agentName, parsed, seen) {
166
250
  return new Map(); // codex/opencode/etc — no usage reader yet
167
251
  }
168
252
  /**
169
- * Ordered, deduped per-message Claude usage records (for a per-session time-series).
253
+ * Ordered, deduped per-message usage records (for a per-session time-series).
170
254
  * Mirrors {@link gatherUsageDeduped}'s dedup (skips keys already in `seen`, mutates `seen`)
171
- * but preserves message order instead of summing. Returns [] when there is no per-message
172
- * order to series-ize: an authoritative SDK `modelUsage` rollup, or a non-Claude agent.
255
+ * but preserves chronological record order instead of summing. Returns [] when there is no per-message
256
+ * order to series-ize: an authoritative SDK `modelUsage` rollup, or a non-supported agent.
173
257
  * MUST be called at most once per session against a shared `seen` set (it consumes keys).
174
258
  */
175
259
  export function gatherDedupedUsageRecords(agentName, parsed, seen) {
176
260
  const a = agentName.toLowerCase();
261
+ if (a === 'kimi') {
262
+ // Kimi records are session-local (no cross-session dedup key), so pass through as-is.
263
+ return extractKimiUsageRecords(parsed);
264
+ }
177
265
  if (a !== 'claude' && a !== 'claude-acp' && a !== 'claude-desktop') {
178
266
  return []; // gemini/codex/etc — no per-turn series in v1
179
267
  }
@@ -1 +1 @@
1
- {"version":3,"file":"usage-readers.js","sourceRoot":"","sources":["../../../../../src/cli/commands/analytics/cost/usage-readers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"usage-readers.js","sourceRoot":"","sources":["../../../../../src/cli/commands/analytics/cost/usage-readers.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@
8
8
  * Handles various model name formats:
9
9
  * - AWS Bedrock Converse: converse/region.provider.model-v1:0 -> model
10
10
  * - AWS Bedrock Direct: region.provider.model-v1:0 -> model
11
+ * - Kimi Code: kimi-code/kimi-for-coding -> kimi-for-coding
11
12
  * - Standard Claude: claude-sonnet-4-5-20250929 (unchanged)
12
13
  * - OpenAI: gpt-4-turbo (unchanged)
13
14
  * - Google: gemini-1.5-pro (unchanged)
@@ -15,6 +16,7 @@
15
16
  * Examples:
16
17
  * converse/global.anthropic.claude-haiku-4-5-20251001-v1:0 -> claude-haiku-4-5-20251001
17
18
  * eu.anthropic.claude-haiku-4-5-20251001-v1:0 -> claude-haiku-4-5-20251001
19
+ * kimi-code/kimi-for-coding -> kimi-for-coding
18
20
  * claude-sonnet-4-5-20250929 -> claude-sonnet-4-5-20250929
19
21
  */
20
22
  export declare function normalizeModelName(modelName: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"model-normalizer.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/analytics/model-normalizer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAyB5D"}
1
+ {"version":3,"file":"model-normalizer.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/analytics/model-normalizer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAgC5D"}
@@ -8,6 +8,7 @@
8
8
  * Handles various model name formats:
9
9
  * - AWS Bedrock Converse: converse/region.provider.model-v1:0 -> model
10
10
  * - AWS Bedrock Direct: region.provider.model-v1:0 -> model
11
+ * - Kimi Code: kimi-code/kimi-for-coding -> kimi-for-coding
11
12
  * - Standard Claude: claude-sonnet-4-5-20250929 (unchanged)
12
13
  * - OpenAI: gpt-4-turbo (unchanged)
13
14
  * - Google: gemini-1.5-pro (unchanged)
@@ -15,6 +16,7 @@
15
16
  * Examples:
16
17
  * converse/global.anthropic.claude-haiku-4-5-20251001-v1:0 -> claude-haiku-4-5-20251001
17
18
  * eu.anthropic.claude-haiku-4-5-20251001-v1:0 -> claude-haiku-4-5-20251001
19
+ * kimi-code/kimi-for-coding -> kimi-for-coding
18
20
  * claude-sonnet-4-5-20250929 -> claude-sonnet-4-5-20250929
19
21
  */
20
22
  export function normalizeModelName(modelName) {
@@ -38,6 +40,12 @@ export function normalizeModelName(modelName) {
38
40
  return match[1];
39
41
  }
40
42
  }
43
+ // Strip Kimi Code vendor prefix so wire-log model aliases resolve to the pricing table.
44
+ // Kimi emits aliases like "kimi-code/kimi-for-coding"; the canonical pricing key is
45
+ // "kimi-for-coding".
46
+ if (modelName.startsWith('kimi-code/')) {
47
+ return modelName.slice('kimi-code/'.length);
48
+ }
41
49
  // Return unchanged for standard formats
42
50
  return modelName;
43
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"model-normalizer.js","sourceRoot":"","sources":["../../../../src/cli/commands/analytics/model-normalizer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAAiB;IAClD,iDAAiD;IACjD,8CAA8C;IAC9C,oEAAoE;IACpE,IAAI,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;QACtE,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,qCAAqC;QACxD,CAAC;IACH,CAAC;IAED,0EAA0E;IAC1E,qCAAqC;IACrC,YAAY;IACZ,gDAAgD;IAChD,oDAAoD;IACpD,IAAI,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;QACtE,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,wCAAwC;IACxC,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"model-normalizer.js","sourceRoot":"","sources":["../../../../src/cli/commands/analytics/model-normalizer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAAiB;IAClD,iDAAiD;IACjD,8CAA8C;IAC9C,oEAAoE;IACpE,IAAI,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;QACtE,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,qCAAqC;QACxD,CAAC;IACH,CAAC;IAED,0EAA0E;IAC1E,qCAAqC;IACrC,YAAY;IACZ,gDAAgD;IAChD,oDAAoD;IACpD,IAAI,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;QACtE,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,wFAAwF;IACxF,oFAAoF;IACpF,qBAAqB;IACrB,IAAI,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACvC,OAAO,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED,wCAAwC;IACxC,OAAO,SAAS,CAAC;AACnB,CAAC"}