airbyte-faros-destination 0.23.15 → 0.23.17

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.
@@ -3,6 +3,7 @@ import { DestinationModel, DestinationRecord, StreamContext } from '../converter
3
3
  import { ClaudeConverter } from './common';
4
4
  export declare class AnalyticsUserCost extends ClaudeConverter {
5
5
  private readonly skippedActors;
6
+ private readonly skippedProducts;
6
7
  readonly destinationModels: ReadonlyArray<DestinationModel>;
7
8
  convert(record: AirbyteRecord, ctx: StreamContext): Promise<ReadonlyArray<DestinationRecord>>;
8
9
  onProcessingComplete(ctx: StreamContext): Promise<ReadonlyArray<DestinationRecord>>;
@@ -8,6 +8,7 @@ class AnalyticsUserCost extends common_1.ClaudeConverter {
8
8
  constructor() {
9
9
  super(...arguments);
10
10
  this.skippedActors = new Set();
11
+ this.skippedProducts = new Set();
11
12
  this.destinationModels = [
12
13
  'vcs_AssistantMetric',
13
14
  ];
@@ -24,6 +25,11 @@ class AnalyticsUserCost extends common_1.ClaudeConverter {
24
25
  if (!item.amount) {
25
26
  return [];
26
27
  }
28
+ const toolDetail = (0, common_1.claudeToolDetailForProduct)(item.product);
29
+ if (toolDetail === null) {
30
+ this.skippedProducts.add(item.product ?? 'unknown');
31
+ return [];
32
+ }
27
33
  // Analytics API returns amount as a decimal string in fractional cents
28
34
  // (e.g. "41280.000000" = 41,280 cents = $412.80). Round to integer cents
29
35
  // to stay consistent with the Admin path (estimated_cost.amount).
@@ -44,8 +50,9 @@ class AnalyticsUserCost extends common_1.ClaudeConverter {
44
50
  assistantMetricTypeDetail: item.currency,
45
51
  value: cents,
46
52
  organization,
47
- userEmail,
53
+ userUid: userEmail,
48
54
  model: item.model ?? undefined,
55
+ toolDetail,
49
56
  });
50
57
  }
51
58
  async onProcessingComplete(ctx) {
@@ -54,6 +61,11 @@ class AnalyticsUserCost extends common_1.ClaudeConverter {
54
61
  .sort((a, b) => a.localeCompare(b))
55
62
  .join(', ')}`);
56
63
  }
64
+ if (this.skippedProducts.size > 0) {
65
+ ctx.logger.info(`Skipped analytics user cost records for unmapped product(s): ${Array.from(this.skippedProducts)
66
+ .sort((a, b) => a.localeCompare(b))
67
+ .join(', ')}`);
68
+ }
57
69
  return [];
58
70
  }
59
71
  }
@@ -1 +1 @@
1
- {"version":3,"file":"analytics_user_cost.js","sourceRoot":"","sources":["../../../src/converters/claude/analytics_user_cost.ts"],"names":[],"mappings":";;;AAEA,qDAAsC;AAEtC,uCAAsD;AAEtD,qCAAyC;AAOzC,MAAa,iBAAkB,SAAQ,wBAAe;IAAtD;;QACmB,kBAAa,GAAG,IAAI,GAAG,EAAU,CAAC;QAE1C,sBAAiB,GAAoC;YAC5D,qBAAqB;SACtB,CAAC;IA8DJ,CAAC;IA5DC,KAAK,CAAC,OAAO,CACX,MAAqB,EACrB,GAAkB;QAElB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAA+B,CAAC;QAE3D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC;QACpC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;YACtC,IAAI,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;gBACxB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC7C,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,uEAAuE;QACvE,yEAAyE;QACzE,kEAAkE;QAClE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YAC1C,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,GAAG,GAAG,uBAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAE9D,MAAM,YAAY,GAAW;YAC3B,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;YAC3B,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;SAC/B,CAAC;QAEF,OAAO,IAAI,CAAC,kBAAkB,CAAC;YAC7B,SAAS,EAAE,GAAG;YACd,OAAO,EAAE,OAAO;YAChB,mBAAmB,EAAE,qBAAe,CAAC,IAAI;YACzC,yBAAyB,EAAE,IAAI,CAAC,QAAQ;YACxC,KAAK,EAAE,KAAK;YACZ,YAAY;YACZ,SAAS;YACT,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,SAAS;SAC/B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,GAAkB;QAElB,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAChC,GAAG,CAAC,MAAM,CAAC,IAAI,CACb,2CAA2C,IAAI,CAAC,aAAa,CAAC,IAAI,iCAAiC,KAAK,CAAC,IAAI,CAC3G,IAAI,CAAC,aAAa,CACnB;iBACE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;iBAClC,IAAI,CAAC,IAAI,CAAC,EAAE,CAChB,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;CACF;AAnED,8CAmEC"}
1
+ {"version":3,"file":"analytics_user_cost.js","sourceRoot":"","sources":["../../../src/converters/claude/analytics_user_cost.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { DestinationModel, DestinationRecord, StreamContext } from '../converter
3
3
  import { ClaudeConverter } from './common';
4
4
  export declare class AnalyticsUserUsage extends ClaudeConverter {
5
5
  private readonly skippedActors;
6
+ private readonly skippedProducts;
6
7
  readonly destinationModels: ReadonlyArray<DestinationModel>;
7
8
  convert(record: AirbyteRecord, ctx: StreamContext): Promise<ReadonlyArray<DestinationRecord>>;
8
9
  onProcessingComplete(ctx: StreamContext): Promise<ReadonlyArray<DestinationRecord>>;
@@ -10,6 +10,7 @@ class AnalyticsUserUsage extends common_1.ClaudeConverter {
10
10
  constructor() {
11
11
  super(...arguments);
12
12
  this.skippedActors = new Set();
13
+ this.skippedProducts = new Set();
13
14
  this.destinationModels = [
14
15
  'vcs_AssistantMetric',
15
16
  'vcs_UserToolUsage',
@@ -24,6 +25,11 @@ class AnalyticsUserUsage extends common_1.ClaudeConverter {
24
25
  }
25
26
  return [];
26
27
  }
28
+ const toolDetail = (0, common_1.claudeToolDetailForProduct)(item.product);
29
+ if (toolDetail === null) {
30
+ this.skippedProducts.add(item.product ?? 'unknown');
31
+ return [];
32
+ }
27
33
  const day = faros_js_client_1.Utils.toDate(item.date);
28
34
  const nextDay = new Date(day.getTime() + 24 * 60 * 60 * 1000);
29
35
  const organization = {
@@ -39,8 +45,9 @@ class AnalyticsUserUsage extends common_1.ClaudeConverter {
39
45
  assistantMetricType: vcs_1.AssistantMetric.InputTokens,
40
46
  value: item.uncached_input_tokens,
41
47
  organization,
42
- userEmail,
48
+ userUid: userEmail,
43
49
  model,
50
+ toolDetail,
44
51
  }));
45
52
  }
46
53
  if (item.output_tokens) {
@@ -50,8 +57,9 @@ class AnalyticsUserUsage extends common_1.ClaudeConverter {
50
57
  assistantMetricType: vcs_1.AssistantMetric.OutputTokens,
51
58
  value: item.output_tokens,
52
59
  organization,
53
- userEmail,
60
+ userUid: userEmail,
54
61
  model,
62
+ toolDetail,
55
63
  }));
56
64
  }
57
65
  if (item.cache_read_input_tokens) {
@@ -61,8 +69,9 @@ class AnalyticsUserUsage extends common_1.ClaudeConverter {
61
69
  assistantMetricType: vcs_1.AssistantMetric.CacheReadTokens,
62
70
  value: item.cache_read_input_tokens,
63
71
  organization,
64
- userEmail,
72
+ userUid: userEmail,
65
73
  model,
74
+ toolDetail,
66
75
  }));
67
76
  }
68
77
  if (item.cache_creation?.ephemeral_5m_input_tokens) {
@@ -72,8 +81,9 @@ class AnalyticsUserUsage extends common_1.ClaudeConverter {
72
81
  assistantMetricType: vcs_1.AssistantMetric.CacheWriteTokens,
73
82
  value: item.cache_creation.ephemeral_5m_input_tokens,
74
83
  organization,
75
- userEmail,
84
+ userUid: userEmail,
76
85
  model,
86
+ toolDetail,
77
87
  feature: common_1.ClaudeCodeFeature.Ephemeral5m,
78
88
  }));
79
89
  }
@@ -84,8 +94,9 @@ class AnalyticsUserUsage extends common_1.ClaudeConverter {
84
94
  assistantMetricType: vcs_1.AssistantMetric.CacheWriteTokens,
85
95
  value: item.cache_creation.ephemeral_1h_input_tokens,
86
96
  organization,
87
- userEmail,
97
+ userUid: userEmail,
88
98
  model,
99
+ toolDetail,
89
100
  feature: common_1.ClaudeCodeFeature.Ephemeral1h,
90
101
  }));
91
102
  }
@@ -97,8 +108,9 @@ class AnalyticsUserUsage extends common_1.ClaudeConverter {
97
108
  customMetricName: WEB_SEARCH_REQUESTS_METRIC,
98
109
  value: item.server_tool_use.web_search_requests,
99
110
  organization,
100
- userEmail,
111
+ userUid: userEmail,
101
112
  model,
113
+ toolDetail,
102
114
  }));
103
115
  }
104
116
  if (item.requests) {
@@ -109,8 +121,9 @@ class AnalyticsUserUsage extends common_1.ClaudeConverter {
109
121
  customMetricName: API_REQUESTS_METRIC,
110
122
  value: item.requests,
111
123
  organization,
112
- userEmail,
124
+ userUid: userEmail,
113
125
  model,
126
+ toolDetail,
114
127
  }));
115
128
  }
116
129
  const hasUsage = item.uncached_input_tokens > 0 ||
@@ -129,7 +142,7 @@ class AnalyticsUserUsage extends common_1.ClaudeConverter {
129
142
  organization,
130
143
  tool: {
131
144
  category: vcs_1.VCSToolCategory.CodingAssistant,
132
- detail: vcs_1.VCSToolDetail.ClaudeCode,
145
+ detail: toolDetail,
133
146
  },
134
147
  },
135
148
  usedAt: day.toISOString(),
@@ -145,6 +158,11 @@ class AnalyticsUserUsage extends common_1.ClaudeConverter {
145
158
  .sort((a, b) => a.localeCompare(b))
146
159
  .join(', ')}`);
147
160
  }
161
+ if (this.skippedProducts.size > 0) {
162
+ ctx.logger.info(`Skipped analytics user usage records for unmapped product(s): ${Array.from(this.skippedProducts)
163
+ .sort((a, b) => a.localeCompare(b))
164
+ .join(', ')}`);
165
+ }
148
166
  return [];
149
167
  }
150
168
  }
@@ -1 +1 @@
1
- {"version":3,"file":"analytics_user_usage.js","sourceRoot":"","sources":["../../../src/converters/claude/analytics_user_usage.ts"],"names":[],"mappings":";;;AAEA,qDAAsC;AAEtC,uCAKuB;AAEvB,qCAA4D;AAE5D,MAAM,0BAA0B,GAAG,mBAAmB,CAAC;AACvD,MAAM,mBAAmB,GAAG,aAAa,CAAC;AAO1C,MAAa,kBAAmB,SAAQ,wBAAe;IAAvD;;QACmB,kBAAa,GAAG,IAAI,GAAG,EAAU,CAAC;QAE1C,sBAAiB,GAAoC;YAC5D,qBAAqB;YACrB,mBAAmB;SACpB,CAAC;IA6KJ,CAAC;IA3KC,KAAK,CAAC,OAAO,CACX,MAAqB,EACrB,GAAkB;QAElB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAgC,CAAC;QAE5D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC;QACpC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;YACtC,IAAI,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;gBACxB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC7C,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,GAAG,GAAG,uBAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAE9D,MAAM,YAAY,GAAW;YAC3B,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;YAC3B,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;SAC/B,CAAC;QACF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC;QAEtC,MAAM,GAAG,GAAwB,EAAE,CAAC;QAEpC,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC/B,GAAG,CAAC,IAAI,CACN,GAAG,IAAI,CAAC,kBAAkB,CAAC;gBACzB,SAAS,EAAE,GAAG;gBACd,OAAO,EAAE,OAAO;gBAChB,mBAAmB,EAAE,qBAAe,CAAC,WAAW;gBAChD,KAAK,EAAE,IAAI,CAAC,qBAAqB;gBACjC,YAAY;gBACZ,SAAS;gBACT,KAAK;aACN,CAAC,CACH,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,GAAG,CAAC,IAAI,CACN,GAAG,IAAI,CAAC,kBAAkB,CAAC;gBACzB,SAAS,EAAE,GAAG;gBACd,OAAO,EAAE,OAAO;gBAChB,mBAAmB,EAAE,qBAAe,CAAC,YAAY;gBACjD,KAAK,EAAE,IAAI,CAAC,aAAa;gBACzB,YAAY;gBACZ,SAAS;gBACT,KAAK;aACN,CAAC,CACH,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;YACjC,GAAG,CAAC,IAAI,CACN,GAAG,IAAI,CAAC,kBAAkB,CAAC;gBACzB,SAAS,EAAE,GAAG;gBACd,OAAO,EAAE,OAAO;gBAChB,mBAAmB,EAAE,qBAAe,CAAC,eAAe;gBACpD,KAAK,EAAE,IAAI,CAAC,uBAAuB;gBACnC,YAAY;gBACZ,SAAS;gBACT,KAAK;aACN,CAAC,CACH,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,cAAc,EAAE,yBAAyB,EAAE,CAAC;YACnD,GAAG,CAAC,IAAI,CACN,GAAG,IAAI,CAAC,kBAAkB,CAAC;gBACzB,SAAS,EAAE,GAAG;gBACd,OAAO,EAAE,OAAO;gBAChB,mBAAmB,EAAE,qBAAe,CAAC,gBAAgB;gBACrD,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,yBAAyB;gBACpD,YAAY;gBACZ,SAAS;gBACT,KAAK;gBACL,OAAO,EAAE,0BAAiB,CAAC,WAAW;aACvC,CAAC,CACH,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,cAAc,EAAE,yBAAyB,EAAE,CAAC;YACnD,GAAG,CAAC,IAAI,CACN,GAAG,IAAI,CAAC,kBAAkB,CAAC;gBACzB,SAAS,EAAE,GAAG;gBACd,OAAO,EAAE,OAAO;gBAChB,mBAAmB,EAAE,qBAAe,CAAC,gBAAgB;gBACrD,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,yBAAyB;gBACpD,YAAY;gBACZ,SAAS;gBACT,KAAK;gBACL,OAAO,EAAE,0BAAiB,CAAC,WAAW;aACvC,CAAC,CACH,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,eAAe,EAAE,mBAAmB,EAAE,CAAC;YAC9C,GAAG,CAAC,IAAI,CACN,GAAG,IAAI,CAAC,kBAAkB,CAAC;gBACzB,SAAS,EAAE,GAAG;gBACd,OAAO,EAAE,OAAO;gBAChB,mBAAmB,EAAE,qBAAe,CAAC,MAAM;gBAC3C,gBAAgB,EAAE,0BAA0B;gBAC5C,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,mBAAmB;gBAC/C,YAAY;gBACZ,SAAS;gBACT,KAAK;aACN,CAAC,CACH,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,GAAG,CAAC,IAAI,CACN,GAAG,IAAI,CAAC,kBAAkB,CAAC;gBACzB,SAAS,EAAE,GAAG;gBACd,OAAO,EAAE,OAAO;gBAChB,mBAAmB,EAAE,qBAAe,CAAC,MAAM;gBAC3C,gBAAgB,EAAE,mBAAmB;gBACrC,KAAK,EAAE,IAAI,CAAC,QAAQ;gBACpB,YAAY;gBACZ,SAAS;gBACT,KAAK;aACN,CAAC,CACH,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GACZ,IAAI,CAAC,qBAAqB,GAAG,CAAC;YAC9B,IAAI,CAAC,aAAa,GAAG,CAAC;YACtB,IAAI,CAAC,uBAAuB,GAAG,CAAC;YAChC,CAAC,IAAI,CAAC,cAAc,EAAE,yBAAyB,IAAI,CAAC,CAAC,GAAG,CAAC;YACzD,CAAC,IAAI,CAAC,cAAc,EAAE,yBAAyB,IAAI,CAAC,CAAC,GAAG,CAAC;YACzD,CAAC,IAAI,CAAC,eAAe,EAAE,mBAAmB,IAAI,CAAC,CAAC,GAAG,CAAC;YACpD,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAE3B,IAAI,QAAQ,EAAE,CAAC;YACb,GAAG,CAAC,IAAI,CAAC;gBACP,KAAK,EAAE,mBAAmB;gBAC1B,MAAM,EAAE;oBACN,QAAQ,EAAE;wBACR,IAAI,EAAE,EAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAC;wBACtD,YAAY;wBACZ,IAAI,EAAE;4BACJ,QAAQ,EAAE,qBAAe,CAAC,eAAe;4BACzC,MAAM,EAAE,mBAAa,CAAC,UAAU;yBACjC;qBACF;oBACD,MAAM,EAAE,GAAG,CAAC,WAAW,EAAE;oBACzB,UAAU,EAAE,GAAG,CAAC,WAAW,EAAE;iBAC9B;aACF,CAAC,CAAC;QACL,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,GAAkB;QAElB,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAChC,GAAG,CAAC,MAAM,CAAC,IAAI,CACb,4CAA4C,IAAI,CAAC,aAAa,CAAC,IAAI,iCAAiC,KAAK,CAAC,IAAI,CAC5G,IAAI,CAAC,aAAa,CACnB;iBACE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;iBAClC,IAAI,CAAC,IAAI,CAAC,EAAE,CAChB,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;CACF;AAnLD,gDAmLC"}
1
+ {"version":3,"file":"analytics_user_usage.js","sourceRoot":"","sources":["../../../src/converters/claude/analytics_user_usage.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { ClaudeCodeFeature, ClaudeConverter } from './common';
4
4
  export type { ClaudeCodeAssistantMetricConfig } from './common';
5
5
  export { ClaudeCodeFeature };
6
6
  export declare class ClaudeCodeUsageReport extends ClaudeConverter {
7
- private readonly skippedApiKeyNames;
7
+ private readonly apiKeyActorNames;
8
8
  readonly destinationModels: ReadonlyArray<DestinationModel>;
9
9
  convert(record: AirbyteRecord, ctx: StreamContext): Promise<ReadonlyArray<DestinationRecord>>;
10
10
  onProcessingComplete(ctx: StreamContext): Promise<ReadonlyArray<DestinationRecord>>;
@@ -8,18 +8,22 @@ Object.defineProperty(exports, "ClaudeCodeFeature", { enumerable: true, get: fun
8
8
  class ClaudeCodeUsageReport extends common_1.ClaudeConverter {
9
9
  constructor() {
10
10
  super(...arguments);
11
- this.skippedApiKeyNames = new Set();
11
+ this.apiKeyActorNames = new Set();
12
12
  this.destinationModels = [
13
13
  'vcs_AssistantMetric',
14
+ 'vcs_User',
14
15
  'vcs_UserToolUsage',
15
16
  ];
16
17
  }
17
18
  async convert(record, ctx) {
18
19
  const usageItem = record.record.data;
19
- if (!usageItem.actor?.email_address) {
20
- if (usageItem.actor?.api_key_name) {
21
- this.skippedApiKeyNames.add(usageItem.actor.api_key_name);
22
- }
20
+ const userEmail = usageItem.actor?.email_address;
21
+ const apiKeyName = usageItem.actor?.api_key_name;
22
+ // API key actors (which may be people, bots, or shared keys) are written
23
+ // as users keyed on the key name, so their usage is kept and can be
24
+ // re-attributed downstream
25
+ const userUid = userEmail ?? apiKeyName;
26
+ if (!userUid) {
23
27
  return [];
24
28
  }
25
29
  const day = faros_js_client_1.Utils.toDate(usageItem.date);
@@ -29,8 +33,19 @@ class ClaudeCodeUsageReport extends common_1.ClaudeConverter {
29
33
  source: this.streamName.source,
30
34
  };
31
35
  const res = [];
32
- const userEmail = usageItem.actor.email_address;
33
36
  const terminalType = usageItem.terminal_type;
37
+ if (!userEmail && !this.apiKeyActorNames.has(apiKeyName)) {
38
+ this.apiKeyActorNames.add(apiKeyName);
39
+ res.push({
40
+ model: 'vcs_User',
41
+ record: {
42
+ uid: apiKeyName,
43
+ source: this.streamName.source,
44
+ name: apiKeyName,
45
+ type: { category: vcs_1.UserTypeCategory.Custom, detail: 'api_key' },
46
+ },
47
+ });
48
+ }
34
49
  // Core metrics: Lines of code
35
50
  if (usageItem.core_metrics?.lines_of_code?.added) {
36
51
  res.push(...this.getAssistantMetric({
@@ -39,7 +54,7 @@ class ClaudeCodeUsageReport extends common_1.ClaudeConverter {
39
54
  assistantMetricType: vcs_1.AssistantMetric.AILinesAdded,
40
55
  value: usageItem.core_metrics.lines_of_code.added,
41
56
  organization,
42
- userEmail,
57
+ userUid,
43
58
  terminalType,
44
59
  }));
45
60
  }
@@ -50,7 +65,7 @@ class ClaudeCodeUsageReport extends common_1.ClaudeConverter {
50
65
  assistantMetricType: vcs_1.AssistantMetric.AILinesRemoved,
51
66
  value: usageItem.core_metrics.lines_of_code.removed,
52
67
  organization,
53
- userEmail,
68
+ userUid,
54
69
  terminalType,
55
70
  }));
56
71
  }
@@ -62,7 +77,7 @@ class ClaudeCodeUsageReport extends common_1.ClaudeConverter {
62
77
  assistantMetricType: vcs_1.AssistantMetric.CommitsCreated,
63
78
  value: usageItem.core_metrics.commits_by_claude_code,
64
79
  organization,
65
- userEmail,
80
+ userUid,
66
81
  terminalType,
67
82
  }));
68
83
  }
@@ -74,7 +89,7 @@ class ClaudeCodeUsageReport extends common_1.ClaudeConverter {
74
89
  assistantMetricType: vcs_1.AssistantMetric.PullRequestsCreated,
75
90
  value: usageItem.core_metrics.pull_requests_by_claude_code,
76
91
  organization,
77
- userEmail,
92
+ userUid,
78
93
  terminalType,
79
94
  }));
80
95
  }
@@ -86,7 +101,7 @@ class ClaudeCodeUsageReport extends common_1.ClaudeConverter {
86
101
  assistantMetricType: vcs_1.AssistantMetric.Usages,
87
102
  value: usageItem.core_metrics.num_sessions,
88
103
  organization,
89
- userEmail,
104
+ userUid,
90
105
  terminalType,
91
106
  }));
92
107
  // Add UserToolUsage record for active usage
@@ -94,7 +109,7 @@ class ClaudeCodeUsageReport extends common_1.ClaudeConverter {
94
109
  model: 'vcs_UserToolUsage',
95
110
  record: {
96
111
  userTool: {
97
- user: { uid: userEmail, source: this.streamName.source },
112
+ user: { uid: userUid, source: this.streamName.source },
98
113
  organization: {
99
114
  uid: this.streamName.source,
100
115
  source: this.streamName.source,
@@ -120,7 +135,7 @@ class ClaudeCodeUsageReport extends common_1.ClaudeConverter {
120
135
  assistantMetricTypeDetail: modelData.estimated_cost.currency,
121
136
  value: modelData.estimated_cost.amount,
122
137
  organization,
123
- userEmail,
138
+ userUid,
124
139
  model: modelData.model,
125
140
  terminalType,
126
141
  }));
@@ -133,7 +148,7 @@ class ClaudeCodeUsageReport extends common_1.ClaudeConverter {
133
148
  assistantMetricType: vcs_1.AssistantMetric.InputTokens,
134
149
  value: modelData.tokens.input,
135
150
  organization,
136
- userEmail,
151
+ userUid,
137
152
  model: modelData.model,
138
153
  terminalType,
139
154
  }));
@@ -145,7 +160,7 @@ class ClaudeCodeUsageReport extends common_1.ClaudeConverter {
145
160
  assistantMetricType: vcs_1.AssistantMetric.OutputTokens,
146
161
  value: modelData.tokens.output,
147
162
  organization,
148
- userEmail,
163
+ userUid,
149
164
  model: modelData.model,
150
165
  terminalType,
151
166
  }));
@@ -157,7 +172,7 @@ class ClaudeCodeUsageReport extends common_1.ClaudeConverter {
157
172
  assistantMetricType: vcs_1.AssistantMetric.CacheReadTokens,
158
173
  value: modelData.tokens.cache_read,
159
174
  organization,
160
- userEmail,
175
+ userUid,
161
176
  model: modelData.model,
162
177
  terminalType,
163
178
  }));
@@ -169,7 +184,7 @@ class ClaudeCodeUsageReport extends common_1.ClaudeConverter {
169
184
  assistantMetricType: vcs_1.AssistantMetric.CacheWriteTokens,
170
185
  value: modelData.tokens.cache_creation,
171
186
  organization,
172
- userEmail,
187
+ userUid,
173
188
  model: modelData.model,
174
189
  terminalType,
175
190
  }));
@@ -185,7 +200,7 @@ class ClaudeCodeUsageReport extends common_1.ClaudeConverter {
185
200
  assistantMetricType: vcs_1.AssistantMetric.SuggestionsAccepted,
186
201
  value: usageItem.tool_actions.edit_tool.accepted,
187
202
  organization,
188
- userEmail,
203
+ userUid,
189
204
  feature: common_1.ClaudeCodeFeature.EditTool,
190
205
  terminalType,
191
206
  }));
@@ -197,7 +212,7 @@ class ClaudeCodeUsageReport extends common_1.ClaudeConverter {
197
212
  assistantMetricType: vcs_1.AssistantMetric.SuggestionsDiscarded,
198
213
  value: usageItem.tool_actions.edit_tool.rejected,
199
214
  organization,
200
- userEmail,
215
+ userUid,
201
216
  feature: common_1.ClaudeCodeFeature.EditTool,
202
217
  terminalType,
203
218
  }));
@@ -212,7 +227,7 @@ class ClaudeCodeUsageReport extends common_1.ClaudeConverter {
212
227
  assistantMetricType: vcs_1.AssistantMetric.SuggestionsAccepted,
213
228
  value: usageItem.tool_actions.multi_edit_tool.accepted,
214
229
  organization,
215
- userEmail,
230
+ userUid,
216
231
  feature: common_1.ClaudeCodeFeature.MultiEditTool,
217
232
  terminalType,
218
233
  }));
@@ -224,7 +239,7 @@ class ClaudeCodeUsageReport extends common_1.ClaudeConverter {
224
239
  assistantMetricType: vcs_1.AssistantMetric.SuggestionsDiscarded,
225
240
  value: usageItem.tool_actions.multi_edit_tool.rejected,
226
241
  organization,
227
- userEmail,
242
+ userUid,
228
243
  feature: common_1.ClaudeCodeFeature.MultiEditTool,
229
244
  terminalType,
230
245
  }));
@@ -239,7 +254,7 @@ class ClaudeCodeUsageReport extends common_1.ClaudeConverter {
239
254
  assistantMetricType: vcs_1.AssistantMetric.SuggestionsAccepted,
240
255
  value: usageItem.tool_actions.notebook_edit_tool.accepted,
241
256
  organization,
242
- userEmail,
257
+ userUid,
243
258
  feature: common_1.ClaudeCodeFeature.NotebookEditTool,
244
259
  terminalType,
245
260
  }));
@@ -251,7 +266,7 @@ class ClaudeCodeUsageReport extends common_1.ClaudeConverter {
251
266
  assistantMetricType: vcs_1.AssistantMetric.SuggestionsDiscarded,
252
267
  value: usageItem.tool_actions.notebook_edit_tool.rejected,
253
268
  organization,
254
- userEmail,
269
+ userUid,
255
270
  feature: common_1.ClaudeCodeFeature.NotebookEditTool,
256
271
  terminalType,
257
272
  }));
@@ -266,7 +281,7 @@ class ClaudeCodeUsageReport extends common_1.ClaudeConverter {
266
281
  assistantMetricType: vcs_1.AssistantMetric.SuggestionsAccepted,
267
282
  value: usageItem.tool_actions.write_tool.accepted,
268
283
  organization,
269
- userEmail,
284
+ userUid,
270
285
  feature: common_1.ClaudeCodeFeature.WriteTool,
271
286
  terminalType,
272
287
  }));
@@ -278,7 +293,7 @@ class ClaudeCodeUsageReport extends common_1.ClaudeConverter {
278
293
  assistantMetricType: vcs_1.AssistantMetric.SuggestionsDiscarded,
279
294
  value: usageItem.tool_actions.write_tool.rejected,
280
295
  organization,
281
- userEmail,
296
+ userUid,
282
297
  feature: common_1.ClaudeCodeFeature.WriteTool,
283
298
  terminalType,
284
299
  }));
@@ -287,8 +302,8 @@ class ClaudeCodeUsageReport extends common_1.ClaudeConverter {
287
302
  return res;
288
303
  }
289
304
  async onProcessingComplete(ctx) {
290
- if (this.skippedApiKeyNames.size > 0) {
291
- ctx.logger.info(`Skipped Claude Code usage report records for ${this.skippedApiKeyNames.size} API key actor(s): ${Array.from(this.skippedApiKeyNames)
305
+ if (this.apiKeyActorNames.size > 0) {
306
+ ctx.logger.info(`Wrote Claude Code usage report records for ${this.apiKeyActorNames.size} API key actor(s): ${Array.from(this.apiKeyActorNames)
292
307
  .sort((a, b) => a.localeCompare(b))
293
308
  .join(', ')}`);
294
309
  }
@@ -1 +1 @@
1
- {"version":3,"file":"claude_code_usage_report.js","sourceRoot":"","sources":["../../../src/converters/claude/claude_code_usage_report.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude_code_usage_report.js","sourceRoot":"","sources":["../../../src/converters/claude/claude_code_usage_report.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { AirbyteRecord } from 'faros-airbyte-cdk';
2
- import { AssistantMetric, OrgKey } from '../common/vcs';
2
+ import { AssistantMetric, OrgKey, VCSToolDetail } from '../common/vcs';
3
3
  import { Converter, DestinationRecord } from '../converter';
4
4
  export declare enum ClaudeCodeFeature {
5
5
  EditTool = "EditTool",
@@ -9,6 +9,7 @@ export declare enum ClaudeCodeFeature {
9
9
  Ephemeral5m = "Ephemeral5m",
10
10
  Ephemeral1h = "Ephemeral1h"
11
11
  }
12
+ export declare function claudeToolDetailForProduct(product: string | null | undefined): VCSToolDetail | null;
12
13
  export interface ClaudeCodeAssistantMetricConfig {
13
14
  startedAt: Date;
14
15
  endedAt: Date;
@@ -16,11 +17,12 @@ export interface ClaudeCodeAssistantMetricConfig {
16
17
  assistantMetricTypeDetail?: string;
17
18
  value: number;
18
19
  organization: OrgKey;
19
- userEmail: string;
20
+ userUid: string;
20
21
  customMetricName?: string;
21
22
  model?: string;
22
23
  feature?: ClaudeCodeFeature;
23
24
  terminalType?: string;
25
+ toolDetail?: VCSToolDetail;
24
26
  }
25
27
  export declare abstract class ClaudeConverter extends Converter {
26
28
  source: string;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ClaudeConverter = exports.ClaudeCodeFeature = void 0;
4
+ exports.claudeToolDetailForProduct = claudeToolDetailForProduct;
4
5
  const common_1 = require("faros-airbyte-common/common");
5
6
  const lodash_1 = require("lodash");
6
7
  const vcs_1 = require("../common/vcs");
@@ -14,6 +15,20 @@ var ClaudeCodeFeature;
14
15
  ClaudeCodeFeature["Ephemeral5m"] = "Ephemeral5m";
15
16
  ClaudeCodeFeature["Ephemeral1h"] = "Ephemeral1h";
16
17
  })(ClaudeCodeFeature || (exports.ClaudeCodeFeature = ClaudeCodeFeature = {}));
18
+ // Analytics products route to distinct tool details so Claude Code metrics
19
+ // (and downstream consumers filtering on ClaudeCode) are unaffected by other
20
+ // products. A null product predates product grouping and was always
21
+ // claude_code. Unknown products are skipped by callers rather than mislabeled.
22
+ const PRODUCT_TOOL_DETAILS = new Map([
23
+ ['claude_code', vcs_1.VCSToolDetail.ClaudeCode],
24
+ ['chat', vcs_1.VCSToolDetail.ClaudeAi],
25
+ ['cowork', vcs_1.VCSToolDetail.Cowork],
26
+ ]);
27
+ function claudeToolDetailForProduct(product) {
28
+ if (product == null)
29
+ return vcs_1.VCSToolDetail.ClaudeCode;
30
+ return PRODUCT_TOOL_DETAILS.get(product) ?? null;
31
+ }
17
32
  class ClaudeConverter extends converter_1.Converter {
18
33
  constructor() {
19
34
  super(...arguments);
@@ -23,7 +38,7 @@ class ClaudeConverter extends converter_1.Converter {
23
38
  return record?.record?.data?.id;
24
39
  }
25
40
  getAssistantMetric(config) {
26
- const { startedAt, endedAt, assistantMetricType, assistantMetricTypeDetail, value, organization, userEmail, customMetricName, model, feature, terminalType, } = config;
41
+ const { startedAt, endedAt, assistantMetricType, assistantMetricTypeDetail, value, organization, userUid, customMetricName, model, feature, terminalType, toolDetail = vcs_1.VCSToolDetail.ClaudeCode, } = config;
27
42
  return [
28
43
  {
29
44
  model: 'vcs_AssistantMetric',
@@ -32,11 +47,11 @@ class ClaudeConverter extends converter_1.Converter {
32
47
  .concat(
33
48
  // original fields (required) to be included in the digest
34
49
  ...[
35
- vcs_1.VCSToolDetail.ClaudeCode,
50
+ toolDetail,
36
51
  assistantMetricType,
37
52
  startedAt.toISOString(),
38
53
  organization.uid,
39
- userEmail,
54
+ userUid,
40
55
  customMetricName,
41
56
  ],
42
57
  // newer fields (optional) to be included in the digest
@@ -61,10 +76,10 @@ class ClaudeConverter extends converter_1.Converter {
61
76
  valueType: 'Int',
62
77
  value: String(value),
63
78
  organization,
64
- user: { uid: userEmail, source: this.streamName.source },
79
+ user: { uid: userUid, source: this.streamName.source },
65
80
  tool: {
66
81
  category: vcs_1.VCSToolCategory.CodingAssistant,
67
- detail: vcs_1.VCSToolDetail.ClaudeCode,
82
+ detail: toolDetail,
68
83
  },
69
84
  ...(model && { model }),
70
85
  ...(feature && { feature }),
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/converters/claude/common.ts"],"names":[],"mappings":";;;AACA,wDAAmD;AACnD,mCAA6B;AAE7B,uCAKuB;AACvB,4CAA0D;AAE1D,IAAY,iBAOX;AAPD,WAAY,iBAAiB;IAC3B,0CAAqB,CAAA;IACrB,oDAA+B,CAAA;IAC/B,0DAAqC,CAAA;IACrC,4CAAuB,CAAA;IACvB,gDAA2B,CAAA;IAC3B,gDAA2B,CAAA;AAC7B,CAAC,EAPW,iBAAiB,iCAAjB,iBAAiB,QAO5B;AAgBD,MAAsB,eAAgB,SAAQ,qBAAS;IAAvD;;QACE,WAAM,GAAG,QAAQ,CAAC;IA2EpB,CAAC;IAzEC,EAAE,CAAC,MAAqB;QACtB,OAAO,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;IAClC,CAAC;IAES,kBAAkB,CAC1B,MAAuC;QAEvC,MAAM,EACJ,SAAS,EACT,OAAO,EACP,mBAAmB,EACnB,yBAAyB,EACzB,KAAK,EACL,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,KAAK,EACL,OAAO,EACP,YAAY,GACb,GAAG,MAAM,CAAC;QAEX,OAAO;YACL;gBACE,KAAK,EAAE,qBAAqB;gBAC5B,MAAM,EAAE;oBACN,GAAG,EAAE,IAAA,eAAM,EACT,EAAE;yBACC,MAAM;oBACL,0DAA0D;oBAC1D,GAAG;wBACD,mBAAa,CAAC,UAAU;wBACxB,mBAAmB;wBACnB,SAAS,CAAC,WAAW,EAAE;wBACvB,YAAY,CAAC,GAAG;wBAChB,SAAS;wBACT,gBAAgB;qBACjB;oBACD,uDAAuD;oBACvD,GAAG;wBACD,EAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAC;wBAC5B,EAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAC;wBAChC,EAAC,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,YAAY,EAAC;qBAC5C;yBACE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAA,cAAK,EAAC,CAAC,CAAC,KAAK,CAAC,CAAC;yBAC9B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CACrC;yBACA,IAAI,CAAC,IAAI,CAAC,CACd;oBACD,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,SAAS;oBACT,OAAO;oBACP,IAAI,EAAE;wBACJ,QAAQ,EAAE,mBAAmB;wBAC7B,GAAG,CAAC,yBAAyB,IAAI;4BAC/B,MAAM,EAAE,yBAAyB;yBAClC,CAAC;wBACF,GAAG,CAAC,gBAAgB,IAAI,EAAC,MAAM,EAAE,gBAAgB,EAAC,CAAC;qBACpD;oBACD,SAAS,EAAE,KAAK;oBAChB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;oBACpB,YAAY;oBACZ,IAAI,EAAE,EAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAC;oBACtD,IAAI,EAAE;wBACJ,QAAQ,EAAE,qBAAe,CAAC,eAAe;wBACzC,MAAM,EAAE,mBAAa,CAAC,UAAU;qBACjC;oBACD,GAAG,CAAC,KAAK,IAAI,EAAC,KAAK,EAAC,CAAC;oBACrB,GAAG,CAAC,OAAO,IAAI,EAAC,OAAO,EAAC,CAAC;oBACzB,GAAG,CAAC,YAAY,IAAI,EAAC,MAAM,EAAE,YAAY,EAAC,CAAC;iBAC5C;aACF;SACF,CAAC;IACJ,CAAC;CACF;AA5ED,0CA4EC"}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/converters/claude/common.ts"],"names":[],"mappings":"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"}
@@ -73,6 +73,8 @@ export declare enum VCSToolDetail {
73
73
  Cursor = "Cursor",
74
74
  Windsurf = "Windsurf",
75
75
  ClaudeCode = "ClaudeCode",
76
+ ClaudeAi = "ClaudeAi",
77
+ Cowork = "Cowork",
76
78
  Kiro = "Kiro",
77
79
  Codex = "Codex"
78
80
  }
@@ -61,6 +61,8 @@ var VCSToolDetail;
61
61
  VCSToolDetail["Cursor"] = "Cursor";
62
62
  VCSToolDetail["Windsurf"] = "Windsurf";
63
63
  VCSToolDetail["ClaudeCode"] = "ClaudeCode";
64
+ VCSToolDetail["ClaudeAi"] = "ClaudeAi";
65
+ VCSToolDetail["Cowork"] = "Cowork";
64
66
  VCSToolDetail["Kiro"] = "Kiro";
65
67
  VCSToolDetail["Codex"] = "Codex";
66
68
  })(VCSToolDetail || (exports.VCSToolDetail = VCSToolDetail = {}));