airbyte-faros-destination 0.22.16 → 0.22.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.
@@ -0,0 +1,9 @@
1
+ import { AirbyteRecord } from 'faros-airbyte-cdk';
2
+ import { DestinationModel, DestinationRecord, StreamContext } from '../converter';
3
+ import { ClaudeConverter } from './common';
4
+ export declare class AnalyticsUserCost extends ClaudeConverter {
5
+ private readonly skippedActors;
6
+ readonly destinationModels: ReadonlyArray<DestinationModel>;
7
+ convert(record: AirbyteRecord, ctx: StreamContext): Promise<ReadonlyArray<DestinationRecord>>;
8
+ onProcessingComplete(ctx: StreamContext): Promise<ReadonlyArray<DestinationRecord>>;
9
+ }
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AnalyticsUserCost = void 0;
4
+ const faros_js_client_1 = require("faros-js-client");
5
+ const vcs_1 = require("../common/vcs");
6
+ const common_1 = require("./common");
7
+ class AnalyticsUserCost extends common_1.ClaudeConverter {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.skippedActors = new Set();
11
+ this.destinationModels = [
12
+ 'vcs_AssistantMetric',
13
+ ];
14
+ }
15
+ async convert(record, ctx) {
16
+ const item = record.record.data;
17
+ const userEmail = item.actor?.email;
18
+ if (!userEmail || item.actor?.deleted) {
19
+ if (item.actor?.user_id) {
20
+ this.skippedActors.add(item.actor.user_id);
21
+ }
22
+ return [];
23
+ }
24
+ if (!item.amount) {
25
+ return [];
26
+ }
27
+ // Analytics API returns amount as a decimal string in fractional cents
28
+ // (e.g. "41280.000000" = 41,280 cents = $412.80). Round to integer cents
29
+ // to stay consistent with the Admin path (estimated_cost.amount).
30
+ const cents = Math.round(parseFloat(item.amount));
31
+ if (!Number.isFinite(cents) || cents <= 0) {
32
+ return [];
33
+ }
34
+ const day = faros_js_client_1.Utils.toDate(item.date);
35
+ const nextDay = new Date(day.getTime() + 24 * 60 * 60 * 1000);
36
+ const organization = {
37
+ uid: this.streamName.source,
38
+ source: this.streamName.source,
39
+ };
40
+ return this.getAssistantMetric({
41
+ startedAt: day,
42
+ endedAt: nextDay,
43
+ assistantMetricType: vcs_1.AssistantMetric.Cost,
44
+ assistantMetricTypeDetail: item.currency,
45
+ value: cents,
46
+ organization,
47
+ userEmail,
48
+ model: item.model ?? undefined,
49
+ });
50
+ }
51
+ async onProcessingComplete(ctx) {
52
+ if (this.skippedActors.size > 0) {
53
+ ctx.logger.info(`Skipped analytics user cost records for ${this.skippedActors.size} deleted/email-less actor(s): ${Array.from(this.skippedActors)
54
+ .sort((a, b) => a.localeCompare(b))
55
+ .join(', ')}`);
56
+ }
57
+ return [];
58
+ }
59
+ }
60
+ exports.AnalyticsUserCost = AnalyticsUserCost;
61
+ //# sourceMappingURL=analytics_user_cost.js.map
@@ -0,0 +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"}
@@ -0,0 +1,9 @@
1
+ import { AirbyteRecord } from 'faros-airbyte-cdk';
2
+ import { DestinationModel, DestinationRecord, StreamContext } from '../converter';
3
+ import { ClaudeConverter } from './common';
4
+ export declare class AnalyticsUserUsage extends ClaudeConverter {
5
+ private readonly skippedActors;
6
+ readonly destinationModels: ReadonlyArray<DestinationModel>;
7
+ convert(record: AirbyteRecord, ctx: StreamContext): Promise<ReadonlyArray<DestinationRecord>>;
8
+ onProcessingComplete(ctx: StreamContext): Promise<ReadonlyArray<DestinationRecord>>;
9
+ }
@@ -0,0 +1,152 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AnalyticsUserUsage = void 0;
4
+ const faros_js_client_1 = require("faros-js-client");
5
+ const vcs_1 = require("../common/vcs");
6
+ const common_1 = require("./common");
7
+ const WEB_SEARCH_REQUESTS_METRIC = 'WebSearchRequests';
8
+ const API_REQUESTS_METRIC = 'ApiRequests';
9
+ class AnalyticsUserUsage extends common_1.ClaudeConverter {
10
+ constructor() {
11
+ super(...arguments);
12
+ this.skippedActors = new Set();
13
+ this.destinationModels = [
14
+ 'vcs_AssistantMetric',
15
+ 'vcs_UserToolUsage',
16
+ ];
17
+ }
18
+ async convert(record, ctx) {
19
+ const item = record.record.data;
20
+ const userEmail = item.actor?.email;
21
+ if (!userEmail || item.actor?.deleted) {
22
+ if (item.actor?.user_id) {
23
+ this.skippedActors.add(item.actor.user_id);
24
+ }
25
+ return [];
26
+ }
27
+ const day = faros_js_client_1.Utils.toDate(item.date);
28
+ const nextDay = new Date(day.getTime() + 24 * 60 * 60 * 1000);
29
+ const organization = {
30
+ uid: this.streamName.source,
31
+ source: this.streamName.source,
32
+ };
33
+ const model = item.model ?? undefined;
34
+ const res = [];
35
+ if (item.uncached_input_tokens) {
36
+ res.push(...this.getAssistantMetric({
37
+ startedAt: day,
38
+ endedAt: nextDay,
39
+ assistantMetricType: vcs_1.AssistantMetric.InputTokens,
40
+ value: item.uncached_input_tokens,
41
+ organization,
42
+ userEmail,
43
+ model,
44
+ }));
45
+ }
46
+ if (item.output_tokens) {
47
+ res.push(...this.getAssistantMetric({
48
+ startedAt: day,
49
+ endedAt: nextDay,
50
+ assistantMetricType: vcs_1.AssistantMetric.OutputTokens,
51
+ value: item.output_tokens,
52
+ organization,
53
+ userEmail,
54
+ model,
55
+ }));
56
+ }
57
+ if (item.cache_read_input_tokens) {
58
+ res.push(...this.getAssistantMetric({
59
+ startedAt: day,
60
+ endedAt: nextDay,
61
+ assistantMetricType: vcs_1.AssistantMetric.CacheReadTokens,
62
+ value: item.cache_read_input_tokens,
63
+ organization,
64
+ userEmail,
65
+ model,
66
+ }));
67
+ }
68
+ if (item.cache_creation?.ephemeral_5m_input_tokens) {
69
+ res.push(...this.getAssistantMetric({
70
+ startedAt: day,
71
+ endedAt: nextDay,
72
+ assistantMetricType: vcs_1.AssistantMetric.CacheWriteTokens,
73
+ value: item.cache_creation.ephemeral_5m_input_tokens,
74
+ organization,
75
+ userEmail,
76
+ model,
77
+ feature: common_1.ClaudeCodeFeature.Ephemeral5m,
78
+ }));
79
+ }
80
+ if (item.cache_creation?.ephemeral_1h_input_tokens) {
81
+ res.push(...this.getAssistantMetric({
82
+ startedAt: day,
83
+ endedAt: nextDay,
84
+ assistantMetricType: vcs_1.AssistantMetric.CacheWriteTokens,
85
+ value: item.cache_creation.ephemeral_1h_input_tokens,
86
+ organization,
87
+ userEmail,
88
+ model,
89
+ feature: common_1.ClaudeCodeFeature.Ephemeral1h,
90
+ }));
91
+ }
92
+ if (item.server_tool_use?.web_search_requests) {
93
+ res.push(...this.getAssistantMetric({
94
+ startedAt: day,
95
+ endedAt: nextDay,
96
+ assistantMetricType: vcs_1.AssistantMetric.Custom,
97
+ customMetricName: WEB_SEARCH_REQUESTS_METRIC,
98
+ value: item.server_tool_use.web_search_requests,
99
+ organization,
100
+ userEmail,
101
+ model,
102
+ }));
103
+ }
104
+ if (item.requests) {
105
+ res.push(...this.getAssistantMetric({
106
+ startedAt: day,
107
+ endedAt: nextDay,
108
+ assistantMetricType: vcs_1.AssistantMetric.Custom,
109
+ customMetricName: API_REQUESTS_METRIC,
110
+ value: item.requests,
111
+ organization,
112
+ userEmail,
113
+ model,
114
+ }));
115
+ }
116
+ const hasUsage = item.uncached_input_tokens > 0 ||
117
+ item.output_tokens > 0 ||
118
+ item.cache_read_input_tokens > 0 ||
119
+ (item.cache_creation?.ephemeral_5m_input_tokens ?? 0) > 0 ||
120
+ (item.cache_creation?.ephemeral_1h_input_tokens ?? 0) > 0 ||
121
+ (item.server_tool_use?.web_search_requests ?? 0) > 0 ||
122
+ (item.requests ?? 0) > 0;
123
+ if (hasUsage) {
124
+ res.push({
125
+ model: 'vcs_UserToolUsage',
126
+ record: {
127
+ userTool: {
128
+ user: { uid: userEmail, source: this.streamName.source },
129
+ organization,
130
+ tool: {
131
+ category: vcs_1.VCSToolCategory.CodingAssistant,
132
+ detail: vcs_1.VCSToolDetail.ClaudeCode,
133
+ },
134
+ },
135
+ usedAt: day.toISOString(),
136
+ recordedAt: day.toISOString(),
137
+ },
138
+ });
139
+ }
140
+ return res;
141
+ }
142
+ async onProcessingComplete(ctx) {
143
+ if (this.skippedActors.size > 0) {
144
+ ctx.logger.info(`Skipped analytics user usage records for ${this.skippedActors.size} deleted/email-less actor(s): ${Array.from(this.skippedActors)
145
+ .sort((a, b) => a.localeCompare(b))
146
+ .join(', ')}`);
147
+ }
148
+ return [];
149
+ }
150
+ }
151
+ exports.AnalyticsUserUsage = AnalyticsUserUsage;
152
+ //# sourceMappingURL=analytics_user_usage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics_user_usage.js","sourceRoot":"","sources":["../../../src/converters/claude/analytics_user_usage.ts"],"names":[],"mappings":"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"}
@@ -1,30 +1,11 @@
1
1
  import { AirbyteRecord } from 'faros-airbyte-cdk';
2
- import { AssistantMetric, OrgKey } from '../common/vcs';
3
2
  import { DestinationModel, DestinationRecord, StreamContext } from '../converter';
4
- import { ClaudeConverter } from './common';
5
- export declare enum ClaudeCodeFeature {
6
- EditTool = "EditTool",
7
- MultiEditTool = "MultiEditTool",
8
- NotebookEditTool = "NotebookEditTool",
9
- WriteTool = "WriteTool"
10
- }
11
- export interface ClaudeCodeAssistantMetricConfig {
12
- startedAt: Date;
13
- endedAt: Date;
14
- assistantMetricType: AssistantMetric;
15
- assistantMetricTypeDetail?: string;
16
- value: number;
17
- organization: OrgKey;
18
- userEmail: string;
19
- customMetricName?: string;
20
- model?: string;
21
- feature?: ClaudeCodeFeature;
22
- terminalType?: string;
23
- }
3
+ import { ClaudeCodeFeature, ClaudeConverter } from './common';
4
+ export type { ClaudeCodeAssistantMetricConfig } from './common';
5
+ export { ClaudeCodeFeature };
24
6
  export declare class ClaudeCodeUsageReport extends ClaudeConverter {
25
7
  private readonly skippedApiKeyNames;
26
8
  readonly destinationModels: ReadonlyArray<DestinationModel>;
27
- protected getAssistantMetric(config: ClaudeCodeAssistantMetricConfig): DestinationRecord[];
28
9
  convert(record: AirbyteRecord, ctx: StreamContext): Promise<ReadonlyArray<DestinationRecord>>;
29
10
  onProcessingComplete(ctx: StreamContext): Promise<ReadonlyArray<DestinationRecord>>;
30
11
  }
@@ -1,19 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ClaudeCodeUsageReport = exports.ClaudeCodeFeature = void 0;
4
- const common_1 = require("faros-airbyte-common/common");
5
4
  const faros_js_client_1 = require("faros-js-client");
6
- const lodash_1 = require("lodash");
7
5
  const vcs_1 = require("../common/vcs");
8
- const common_2 = require("./common");
9
- var ClaudeCodeFeature;
10
- (function (ClaudeCodeFeature) {
11
- ClaudeCodeFeature["EditTool"] = "EditTool";
12
- ClaudeCodeFeature["MultiEditTool"] = "MultiEditTool";
13
- ClaudeCodeFeature["NotebookEditTool"] = "NotebookEditTool";
14
- ClaudeCodeFeature["WriteTool"] = "WriteTool";
15
- })(ClaudeCodeFeature || (exports.ClaudeCodeFeature = ClaudeCodeFeature = {}));
16
- class ClaudeCodeUsageReport extends common_2.ClaudeConverter {
6
+ const common_1 = require("./common");
7
+ Object.defineProperty(exports, "ClaudeCodeFeature", { enumerable: true, get: function () { return common_1.ClaudeCodeFeature; } });
8
+ class ClaudeCodeUsageReport extends common_1.ClaudeConverter {
17
9
  constructor() {
18
10
  super(...arguments);
19
11
  this.skippedApiKeyNames = new Set();
@@ -22,57 +14,6 @@ class ClaudeCodeUsageReport extends common_2.ClaudeConverter {
22
14
  'vcs_UserToolUsage',
23
15
  ];
24
16
  }
25
- getAssistantMetric(config) {
26
- const { startedAt, endedAt, assistantMetricType, assistantMetricTypeDetail, value, organization, userEmail, customMetricName, model, feature, terminalType, } = config;
27
- return [
28
- {
29
- model: 'vcs_AssistantMetric',
30
- record: {
31
- uid: (0, common_1.digest)([]
32
- .concat(
33
- // original fields (required) to be included in the digest
34
- ...[
35
- vcs_1.VCSToolDetail.ClaudeCode,
36
- assistantMetricType,
37
- startedAt.toISOString(),
38
- organization.uid,
39
- userEmail,
40
- customMetricName,
41
- ],
42
- // newer fields (optional) to be included in the digest
43
- ...[
44
- { key: 'model', value: model },
45
- { key: 'feature', value: feature },
46
- { key: 'terminal_type', value: terminalType },
47
- ]
48
- .filter((v) => !(0, lodash_1.isNil)(v.value))
49
- .map((v) => `${v.key}:${v.value}`))
50
- .join('__')),
51
- source: this.source,
52
- startedAt,
53
- endedAt,
54
- type: {
55
- category: assistantMetricType,
56
- ...(assistantMetricTypeDetail && {
57
- detail: assistantMetricTypeDetail,
58
- }),
59
- ...(customMetricName && { detail: customMetricName }),
60
- },
61
- valueType: 'Int',
62
- value: String(value),
63
- organization,
64
- user: { uid: userEmail, source: this.streamName.source },
65
- tool: {
66
- category: vcs_1.VCSToolCategory.CodingAssistant,
67
- detail: vcs_1.VCSToolDetail.ClaudeCode,
68
- },
69
- ...(model && { model }),
70
- ...(feature && { feature }),
71
- ...(terminalType && { editor: terminalType }),
72
- },
73
- },
74
- ];
75
- }
76
17
  async convert(record, ctx) {
77
18
  const usageItem = record.record.data;
78
19
  if (!usageItem.actor?.email_address) {
@@ -245,7 +186,7 @@ class ClaudeCodeUsageReport extends common_2.ClaudeConverter {
245
186
  value: usageItem.tool_actions.edit_tool.accepted,
246
187
  organization,
247
188
  userEmail,
248
- feature: ClaudeCodeFeature.EditTool,
189
+ feature: common_1.ClaudeCodeFeature.EditTool,
249
190
  terminalType,
250
191
  }));
251
192
  }
@@ -257,7 +198,7 @@ class ClaudeCodeUsageReport extends common_2.ClaudeConverter {
257
198
  value: usageItem.tool_actions.edit_tool.rejected,
258
199
  organization,
259
200
  userEmail,
260
- feature: ClaudeCodeFeature.EditTool,
201
+ feature: common_1.ClaudeCodeFeature.EditTool,
261
202
  terminalType,
262
203
  }));
263
204
  }
@@ -272,7 +213,7 @@ class ClaudeCodeUsageReport extends common_2.ClaudeConverter {
272
213
  value: usageItem.tool_actions.multi_edit_tool.accepted,
273
214
  organization,
274
215
  userEmail,
275
- feature: ClaudeCodeFeature.MultiEditTool,
216
+ feature: common_1.ClaudeCodeFeature.MultiEditTool,
276
217
  terminalType,
277
218
  }));
278
219
  }
@@ -284,7 +225,7 @@ class ClaudeCodeUsageReport extends common_2.ClaudeConverter {
284
225
  value: usageItem.tool_actions.multi_edit_tool.rejected,
285
226
  organization,
286
227
  userEmail,
287
- feature: ClaudeCodeFeature.MultiEditTool,
228
+ feature: common_1.ClaudeCodeFeature.MultiEditTool,
288
229
  terminalType,
289
230
  }));
290
231
  }
@@ -299,7 +240,7 @@ class ClaudeCodeUsageReport extends common_2.ClaudeConverter {
299
240
  value: usageItem.tool_actions.notebook_edit_tool.accepted,
300
241
  organization,
301
242
  userEmail,
302
- feature: ClaudeCodeFeature.NotebookEditTool,
243
+ feature: common_1.ClaudeCodeFeature.NotebookEditTool,
303
244
  terminalType,
304
245
  }));
305
246
  }
@@ -311,7 +252,7 @@ class ClaudeCodeUsageReport extends common_2.ClaudeConverter {
311
252
  value: usageItem.tool_actions.notebook_edit_tool.rejected,
312
253
  organization,
313
254
  userEmail,
314
- feature: ClaudeCodeFeature.NotebookEditTool,
255
+ feature: common_1.ClaudeCodeFeature.NotebookEditTool,
315
256
  terminalType,
316
257
  }));
317
258
  }
@@ -326,7 +267,7 @@ class ClaudeCodeUsageReport extends common_2.ClaudeConverter {
326
267
  value: usageItem.tool_actions.write_tool.accepted,
327
268
  organization,
328
269
  userEmail,
329
- feature: ClaudeCodeFeature.WriteTool,
270
+ feature: common_1.ClaudeCodeFeature.WriteTool,
330
271
  terminalType,
331
272
  }));
332
273
  }
@@ -338,7 +279,7 @@ class ClaudeCodeUsageReport extends common_2.ClaudeConverter {
338
279
  value: usageItem.tool_actions.write_tool.rejected,
339
280
  organization,
340
281
  userEmail,
341
- feature: ClaudeCodeFeature.WriteTool,
282
+ feature: common_1.ClaudeCodeFeature.WriteTool,
342
283
  terminalType,
343
284
  }));
344
285
  }
@@ -1 +1 @@
1
- {"version":3,"file":"claude_code_usage_report.js","sourceRoot":"","sources":["../../../src/converters/claude/claude_code_usage_report.ts"],"names":[],"mappings":";;;AAEA,wDAAmD;AACnD,qDAAsC;AACtC,mCAA6B;AAE7B,uCAKuB;AAEvB,qCAAyC;AAEzC,IAAY,iBAKX;AALD,WAAY,iBAAiB;IAC3B,0CAAqB,CAAA;IACrB,oDAA+B,CAAA;IAC/B,0DAAqC,CAAA;IACrC,4CAAuB,CAAA;AACzB,CAAC,EALW,iBAAiB,iCAAjB,iBAAiB,QAK5B;AAgBD,MAAa,qBAAsB,SAAQ,wBAAe;IAA1D;;QACmB,uBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;QAE/C,sBAAiB,GAAoC;YAC5D,qBAAqB;YACrB,mBAAmB;SACpB,CAAC;IAsaJ,CAAC;IApaW,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;IAED,KAAK,CAAC,OAAO,CACX,MAAqB,EACrB,GAAkB;QAElB,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAiC,CAAC;QAElE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,CAAC;YACpC,IAAI,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC;gBAClC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC5D,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,GAAG,GAAG,uBAAK,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAE9D,MAAM,YAAY,GAAG;YACnB,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;YAC3B,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;SAC/B,CAAC;QAEF,MAAM,GAAG,GAAwB,EAAE,CAAC;QACpC,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC;QAChD,MAAM,YAAY,GAAG,SAAS,CAAC,aAAa,CAAC;QAE7C,8BAA8B;QAC9B,IAAI,SAAS,CAAC,YAAY,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;YACjD,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,SAAS,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK;gBACjD,YAAY;gBACZ,SAAS;gBACT,YAAY;aACb,CAAC,CACH,CAAC;QACJ,CAAC;QAED,IAAI,SAAS,CAAC,YAAY,EAAE,aAAa,EAAE,OAAO,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,cAAc;gBACnD,KAAK,EAAE,SAAS,CAAC,YAAY,CAAC,aAAa,CAAC,OAAO;gBACnD,YAAY;gBACZ,SAAS;gBACT,YAAY;aACb,CAAC,CACH,CAAC;QACJ,CAAC;QAED,wBAAwB;QACxB,IAAI,SAAS,CAAC,YAAY,EAAE,sBAAsB,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,cAAc;gBACnD,KAAK,EAAE,SAAS,CAAC,YAAY,CAAC,sBAAsB;gBACpD,YAAY;gBACZ,SAAS;gBACT,YAAY;aACb,CAAC,CACH,CAAC;QACJ,CAAC;QAED,8BAA8B;QAC9B,IAAI,SAAS,CAAC,YAAY,EAAE,4BAA4B,EAAE,CAAC;YACzD,GAAG,CAAC,IAAI,CACN,GAAG,IAAI,CAAC,kBAAkB,CAAC;gBACzB,SAAS,EAAE,GAAG;gBACd,OAAO,EAAE,OAAO;gBAChB,mBAAmB,EAAE,qBAAe,CAAC,mBAAmB;gBACxD,KAAK,EAAE,SAAS,CAAC,YAAY,CAAC,4BAA4B;gBAC1D,YAAY;gBACZ,SAAS;gBACT,YAAY;aACb,CAAC,CACH,CAAC;QACJ,CAAC;QAED,yBAAyB;QACzB,IAAI,SAAS,CAAC,YAAY,EAAE,YAAY,EAAE,CAAC;YACzC,GAAG,CAAC,IAAI,CACN,GAAG,IAAI,CAAC,kBAAkB,CAAC;gBACzB,SAAS,EAAE,GAAG;gBACd,OAAO,EAAE,OAAO;gBAChB,mBAAmB,EAAE,qBAAe,CAAC,MAAM;gBAC3C,KAAK,EAAE,SAAS,CAAC,YAAY,CAAC,YAAY;gBAC1C,YAAY;gBACZ,SAAS;gBACT,YAAY;aACb,CAAC,CACH,CAAC;YAEF,4CAA4C;YAC5C,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,EAAE;4BACZ,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;4BAC3B,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;yBAC/B;wBACD,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,kCAAkC;QAClC,IAAI,SAAS,CAAC,eAAe,IAAI,SAAS,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtE,KAAK,MAAM,SAAS,IAAI,SAAS,CAAC,eAAe,EAAE,CAAC;gBAClD,IAAI,SAAS,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC;oBACrC,GAAG,CAAC,IAAI,CACN,GAAG,IAAI,CAAC,kBAAkB,CAAC;wBACzB,SAAS,EAAE,GAAG;wBACd,OAAO,EAAE,OAAO;wBAChB,mBAAmB,EAAE,qBAAe,CAAC,IAAI;wBACzC,yBAAyB,EAAE,SAAS,CAAC,cAAc,CAAC,QAAQ;wBAC5D,KAAK,EAAE,SAAS,CAAC,cAAc,CAAC,MAAM;wBACtC,YAAY;wBACZ,SAAS;wBACT,KAAK,EAAE,SAAS,CAAC,KAAK;wBACtB,YAAY;qBACb,CAAC,CACH,CAAC;gBACJ,CAAC;gBAED,0BAA0B;gBAC1B,IAAI,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;oBAC5B,GAAG,CAAC,IAAI,CACN,GAAG,IAAI,CAAC,kBAAkB,CAAC;wBACzB,SAAS,EAAE,GAAG;wBACd,OAAO,EAAE,OAAO;wBAChB,mBAAmB,EAAE,qBAAe,CAAC,WAAW;wBAChD,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,KAAK;wBAC7B,YAAY;wBACZ,SAAS;wBACT,KAAK,EAAE,SAAS,CAAC,KAAK;wBACtB,YAAY;qBACb,CAAC,CACH,CAAC;gBACJ,CAAC;gBAED,IAAI,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;oBAC7B,GAAG,CAAC,IAAI,CACN,GAAG,IAAI,CAAC,kBAAkB,CAAC;wBACzB,SAAS,EAAE,GAAG;wBACd,OAAO,EAAE,OAAO;wBAChB,mBAAmB,EAAE,qBAAe,CAAC,YAAY;wBACjD,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM;wBAC9B,YAAY;wBACZ,SAAS;wBACT,KAAK,EAAE,SAAS,CAAC,KAAK;wBACtB,YAAY;qBACb,CAAC,CACH,CAAC;gBACJ,CAAC;gBAED,IAAI,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC;oBACjC,GAAG,CAAC,IAAI,CACN,GAAG,IAAI,CAAC,kBAAkB,CAAC;wBACzB,SAAS,EAAE,GAAG;wBACd,OAAO,EAAE,OAAO;wBAChB,mBAAmB,EAAE,qBAAe,CAAC,eAAe;wBACpD,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,UAAU;wBAClC,YAAY;wBACZ,SAAS;wBACT,KAAK,EAAE,SAAS,CAAC,KAAK;wBACtB,YAAY;qBACb,CAAC,CACH,CAAC;gBACJ,CAAC;gBAED,IAAI,SAAS,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;oBACrC,GAAG,CAAC,IAAI,CACN,GAAG,IAAI,CAAC,kBAAkB,CAAC;wBACzB,SAAS,EAAE,GAAG;wBACd,OAAO,EAAE,OAAO;wBAChB,mBAAmB,EAAE,qBAAe,CAAC,gBAAgB;wBACrD,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,cAAc;wBACtC,YAAY;wBACZ,SAAS;wBACT,KAAK,EAAE,SAAS,CAAC,KAAK;wBACtB,YAAY;qBACb,CAAC,CACH,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,0BAA0B;QAC1B,IAAI,SAAS,CAAC,YAAY,EAAE,SAAS,EAAE,CAAC;YACtC,IAAI,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;gBAC9C,GAAG,CAAC,IAAI,CACN,GAAG,IAAI,CAAC,kBAAkB,CAAC;oBACzB,SAAS,EAAE,GAAG;oBACd,OAAO,EAAE,OAAO;oBAChB,mBAAmB,EAAE,qBAAe,CAAC,mBAAmB;oBACxD,KAAK,EAAE,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ;oBAChD,YAAY;oBACZ,SAAS;oBACT,OAAO,EAAE,iBAAiB,CAAC,QAAQ;oBACnC,YAAY;iBACb,CAAC,CACH,CAAC;YACJ,CAAC;YAED,IAAI,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;gBAC9C,GAAG,CAAC,IAAI,CACN,GAAG,IAAI,CAAC,kBAAkB,CAAC;oBACzB,SAAS,EAAE,GAAG;oBACd,OAAO,EAAE,OAAO;oBAChB,mBAAmB,EAAE,qBAAe,CAAC,oBAAoB;oBACzD,KAAK,EAAE,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ;oBAChD,YAAY;oBACZ,SAAS;oBACT,OAAO,EAAE,iBAAiB,CAAC,QAAQ;oBACnC,YAAY;iBACb,CAAC,CACH,CAAC;YACJ,CAAC;QACH,CAAC;QAED,gCAAgC;QAChC,IAAI,SAAS,CAAC,YAAY,EAAE,eAAe,EAAE,CAAC;YAC5C,IAAI,SAAS,CAAC,YAAY,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;gBACpD,GAAG,CAAC,IAAI,CACN,GAAG,IAAI,CAAC,kBAAkB,CAAC;oBACzB,SAAS,EAAE,GAAG;oBACd,OAAO,EAAE,OAAO;oBAChB,mBAAmB,EAAE,qBAAe,CAAC,mBAAmB;oBACxD,KAAK,EAAE,SAAS,CAAC,YAAY,CAAC,eAAe,CAAC,QAAQ;oBACtD,YAAY;oBACZ,SAAS;oBACT,OAAO,EAAE,iBAAiB,CAAC,aAAa;oBACxC,YAAY;iBACb,CAAC,CACH,CAAC;YACJ,CAAC;YAED,IAAI,SAAS,CAAC,YAAY,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;gBACpD,GAAG,CAAC,IAAI,CACN,GAAG,IAAI,CAAC,kBAAkB,CAAC;oBACzB,SAAS,EAAE,GAAG;oBACd,OAAO,EAAE,OAAO;oBAChB,mBAAmB,EAAE,qBAAe,CAAC,oBAAoB;oBACzD,KAAK,EAAE,SAAS,CAAC,YAAY,CAAC,eAAe,CAAC,QAAQ;oBACtD,YAAY;oBACZ,SAAS;oBACT,OAAO,EAAE,iBAAiB,CAAC,aAAa;oBACxC,YAAY;iBACb,CAAC,CACH,CAAC;YACJ,CAAC;QACH,CAAC;QAED,mCAAmC;QACnC,IAAI,SAAS,CAAC,YAAY,EAAE,kBAAkB,EAAE,CAAC;YAC/C,IAAI,SAAS,CAAC,YAAY,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC;gBACvD,GAAG,CAAC,IAAI,CACN,GAAG,IAAI,CAAC,kBAAkB,CAAC;oBACzB,SAAS,EAAE,GAAG;oBACd,OAAO,EAAE,OAAO;oBAChB,mBAAmB,EAAE,qBAAe,CAAC,mBAAmB;oBACxD,KAAK,EAAE,SAAS,CAAC,YAAY,CAAC,kBAAkB,CAAC,QAAQ;oBACzD,YAAY;oBACZ,SAAS;oBACT,OAAO,EAAE,iBAAiB,CAAC,gBAAgB;oBAC3C,YAAY;iBACb,CAAC,CACH,CAAC;YACJ,CAAC;YAED,IAAI,SAAS,CAAC,YAAY,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC;gBACvD,GAAG,CAAC,IAAI,CACN,GAAG,IAAI,CAAC,kBAAkB,CAAC;oBACzB,SAAS,EAAE,GAAG;oBACd,OAAO,EAAE,OAAO;oBAChB,mBAAmB,EAAE,qBAAe,CAAC,oBAAoB;oBACzD,KAAK,EAAE,SAAS,CAAC,YAAY,CAAC,kBAAkB,CAAC,QAAQ;oBACzD,YAAY;oBACZ,SAAS;oBACT,OAAO,EAAE,iBAAiB,CAAC,gBAAgB;oBAC3C,YAAY;iBACb,CAAC,CACH,CAAC;YACJ,CAAC;QACH,CAAC;QAED,2BAA2B;QAC3B,IAAI,SAAS,CAAC,YAAY,EAAE,UAAU,EAAE,CAAC;YACvC,IAAI,SAAS,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;gBAC/C,GAAG,CAAC,IAAI,CACN,GAAG,IAAI,CAAC,kBAAkB,CAAC;oBACzB,SAAS,EAAE,GAAG;oBACd,OAAO,EAAE,OAAO;oBAChB,mBAAmB,EAAE,qBAAe,CAAC,mBAAmB;oBACxD,KAAK,EAAE,SAAS,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ;oBACjD,YAAY;oBACZ,SAAS;oBACT,OAAO,EAAE,iBAAiB,CAAC,SAAS;oBACpC,YAAY;iBACb,CAAC,CACH,CAAC;YACJ,CAAC;YAED,IAAI,SAAS,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;gBAC/C,GAAG,CAAC,IAAI,CACN,GAAG,IAAI,CAAC,kBAAkB,CAAC;oBACzB,SAAS,EAAE,GAAG;oBACd,OAAO,EAAE,OAAO;oBAChB,mBAAmB,EAAE,qBAAe,CAAC,oBAAoB;oBACzD,KAAK,EAAE,SAAS,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ;oBACjD,YAAY;oBACZ,SAAS;oBACT,OAAO,EAAE,iBAAiB,CAAC,SAAS;oBACpC,YAAY;iBACb,CAAC,CACH,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,GAAkB;QAElB,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACrC,GAAG,CAAC,MAAM,CAAC,IAAI,CACb,gDAAgD,IAAI,CAAC,kBAAkB,CAAC,IAAI,sBAAsB,KAAK,CAAC,IAAI,CAC1G,IAAI,CAAC,kBAAkB,CACxB;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;AA5aD,sDA4aC"}
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,6 +1,29 @@
1
1
  import { AirbyteRecord } from 'faros-airbyte-cdk';
2
- import { Converter } from '../converter';
2
+ import { AssistantMetric, OrgKey } from '../common/vcs';
3
+ import { Converter, DestinationRecord } from '../converter';
4
+ export declare enum ClaudeCodeFeature {
5
+ EditTool = "EditTool",
6
+ MultiEditTool = "MultiEditTool",
7
+ NotebookEditTool = "NotebookEditTool",
8
+ WriteTool = "WriteTool",
9
+ Ephemeral5m = "Ephemeral5m",
10
+ Ephemeral1h = "Ephemeral1h"
11
+ }
12
+ export interface ClaudeCodeAssistantMetricConfig {
13
+ startedAt: Date;
14
+ endedAt: Date;
15
+ assistantMetricType: AssistantMetric;
16
+ assistantMetricTypeDetail?: string;
17
+ value: number;
18
+ organization: OrgKey;
19
+ userEmail: string;
20
+ customMetricName?: string;
21
+ model?: string;
22
+ feature?: ClaudeCodeFeature;
23
+ terminalType?: string;
24
+ }
3
25
  export declare abstract class ClaudeConverter extends Converter {
4
26
  source: string;
5
27
  id(record: AirbyteRecord): any;
28
+ protected getAssistantMetric(config: ClaudeCodeAssistantMetricConfig): DestinationRecord[];
6
29
  }
@@ -1,7 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ClaudeConverter = void 0;
3
+ exports.ClaudeConverter = exports.ClaudeCodeFeature = void 0;
4
+ const common_1 = require("faros-airbyte-common/common");
5
+ const lodash_1 = require("lodash");
6
+ const vcs_1 = require("../common/vcs");
4
7
  const converter_1 = require("../converter");
8
+ var ClaudeCodeFeature;
9
+ (function (ClaudeCodeFeature) {
10
+ ClaudeCodeFeature["EditTool"] = "EditTool";
11
+ ClaudeCodeFeature["MultiEditTool"] = "MultiEditTool";
12
+ ClaudeCodeFeature["NotebookEditTool"] = "NotebookEditTool";
13
+ ClaudeCodeFeature["WriteTool"] = "WriteTool";
14
+ ClaudeCodeFeature["Ephemeral5m"] = "Ephemeral5m";
15
+ ClaudeCodeFeature["Ephemeral1h"] = "Ephemeral1h";
16
+ })(ClaudeCodeFeature || (exports.ClaudeCodeFeature = ClaudeCodeFeature = {}));
5
17
  class ClaudeConverter extends converter_1.Converter {
6
18
  constructor() {
7
19
  super(...arguments);
@@ -10,6 +22,57 @@ class ClaudeConverter extends converter_1.Converter {
10
22
  id(record) {
11
23
  return record?.record?.data?.id;
12
24
  }
25
+ getAssistantMetric(config) {
26
+ const { startedAt, endedAt, assistantMetricType, assistantMetricTypeDetail, value, organization, userEmail, customMetricName, model, feature, terminalType, } = config;
27
+ return [
28
+ {
29
+ model: 'vcs_AssistantMetric',
30
+ record: {
31
+ uid: (0, common_1.digest)([]
32
+ .concat(
33
+ // original fields (required) to be included in the digest
34
+ ...[
35
+ vcs_1.VCSToolDetail.ClaudeCode,
36
+ assistantMetricType,
37
+ startedAt.toISOString(),
38
+ organization.uid,
39
+ userEmail,
40
+ customMetricName,
41
+ ],
42
+ // newer fields (optional) to be included in the digest
43
+ ...[
44
+ { key: 'model', value: model },
45
+ { key: 'feature', value: feature },
46
+ { key: 'terminal_type', value: terminalType },
47
+ ]
48
+ .filter((v) => !(0, lodash_1.isNil)(v.value))
49
+ .map((v) => `${v.key}:${v.value}`))
50
+ .join('__')),
51
+ source: this.source,
52
+ startedAt,
53
+ endedAt,
54
+ type: {
55
+ category: assistantMetricType,
56
+ ...(assistantMetricTypeDetail && {
57
+ detail: assistantMetricTypeDetail,
58
+ }),
59
+ ...(customMetricName && { detail: customMetricName }),
60
+ },
61
+ valueType: 'Int',
62
+ value: String(value),
63
+ organization,
64
+ user: { uid: userEmail, source: this.streamName.source },
65
+ tool: {
66
+ category: vcs_1.VCSToolCategory.CodingAssistant,
67
+ detail: vcs_1.VCSToolDetail.ClaudeCode,
68
+ },
69
+ ...(model && { model }),
70
+ ...(feature && { feature }),
71
+ ...(terminalType && { editor: terminalType }),
72
+ },
73
+ },
74
+ ];
75
+ }
13
76
  }
14
77
  exports.ClaudeConverter = ClaudeConverter;
15
78
  //# sourceMappingURL=common.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/converters/claude/common.ts"],"names":[],"mappings":";;;AAEA,4CAAuC;AAEvC,MAAsB,eAAgB,SAAQ,qBAAS;IAAvD;;QACE,WAAM,GAAG,QAAQ,CAAC;IAKpB,CAAC;IAHC,EAAE,CAAC,MAAqB;QACtB,OAAO,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;IAClC,CAAC;CACF;AAND,0CAMC"}
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"}