airbyte-faros-destination 0.19.10 → 0.19.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/converters/common/vcs.d.ts +1 -0
- package/lib/converters/common/vcs.js +1 -0
- package/lib/converters/common/vcs.js.map +1 -1
- package/lib/converters/windsurf/autocomplete_analytics.js +46 -4
- package/lib/converters/windsurf/autocomplete_analytics.js.map +1 -1
- package/lib/converters/windsurf/cascade_lines_analytics.js +40 -2
- package/lib/converters/windsurf/cascade_lines_analytics.js.map +1 -1
- package/lib/converters/windsurf/cascade_runs_analytics.js +40 -2
- package/lib/converters/windsurf/cascade_runs_analytics.js.map +1 -1
- package/lib/converters/windsurf/chat_analytics.d.ts +7 -0
- package/lib/converters/windsurf/chat_analytics.js +56 -0
- package/lib/converters/windsurf/chat_analytics.js.map +1 -0
- package/lib/converters/windsurf/common.d.ts +17 -2
- package/lib/converters/windsurf/common.js +10 -6
- package/lib/converters/windsurf/common.js.map +1 -1
- package/lib/converters/windsurf/pcw_analytics.d.ts +7 -0
- package/lib/converters/windsurf/pcw_analytics.js +33 -0
- package/lib/converters/windsurf/pcw_analytics.js.map +1 -0
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
|
@@ -92,6 +92,7 @@ export declare enum AssistantMetric {
|
|
|
92
92
|
CommitsCreated = "CommitsCreated",
|
|
93
93
|
PullRequestsCreated = "PullRequestsCreated",
|
|
94
94
|
Cost = "Cost",
|
|
95
|
+
PercentageOfCodeWritten = "PercentageOfCodeWritten",
|
|
95
96
|
Custom = "Custom"
|
|
96
97
|
}
|
|
97
98
|
export declare function fileKey(filePath: string, repoKey: RepoKey): FileKey;
|
|
@@ -68,6 +68,7 @@ var AssistantMetric;
|
|
|
68
68
|
AssistantMetric["CommitsCreated"] = "CommitsCreated";
|
|
69
69
|
AssistantMetric["PullRequestsCreated"] = "PullRequestsCreated";
|
|
70
70
|
AssistantMetric["Cost"] = "Cost";
|
|
71
|
+
AssistantMetric["PercentageOfCodeWritten"] = "PercentageOfCodeWritten";
|
|
71
72
|
AssistantMetric["Custom"] = "Custom";
|
|
72
73
|
})(AssistantMetric || (exports.AssistantMetric = AssistantMetric = {}));
|
|
73
74
|
function fileKey(filePath, repoKey) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vcs.js","sourceRoot":"","sources":["../../../src/converters/common/vcs.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"vcs.js","sourceRoot":"","sources":["../../../src/converters/common/vcs.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ class AutocompleteAnalytics extends common_1.WindsurfConverter {
|
|
|
9
9
|
super(...arguments);
|
|
10
10
|
this.destinationModels = [
|
|
11
11
|
'vcs_AssistantMetric',
|
|
12
|
+
'vcs_UserToolUsage',
|
|
12
13
|
];
|
|
13
14
|
}
|
|
14
15
|
async convert(record) {
|
|
@@ -16,11 +17,52 @@ class AutocompleteAnalytics extends common_1.WindsurfConverter {
|
|
|
16
17
|
const res = [];
|
|
17
18
|
const startedAt = faros_js_client_1.Utils.toDate(item.date);
|
|
18
19
|
const endedAt = faros_js_client_1.Utils.toDate(startedAt.getTime() + 24 * 60 * 60 * 1000);
|
|
19
|
-
if (item.
|
|
20
|
-
res.push(...this.getAssistantMetric(
|
|
20
|
+
if (item.sum_num_acceptances > 0) {
|
|
21
|
+
res.push(...this.getAssistantMetric({
|
|
22
|
+
startedAt,
|
|
23
|
+
endedAt,
|
|
24
|
+
assistantMetricType: vcs_1.AssistantMetric.SuggestionsAccepted,
|
|
25
|
+
value: item.sum_num_acceptances,
|
|
26
|
+
organization: this.streamName.source,
|
|
27
|
+
userEmail: item.email,
|
|
28
|
+
feature: common_1.WindsurfFeature.Autocompletion,
|
|
29
|
+
editor: item.ide,
|
|
30
|
+
language: item.language,
|
|
31
|
+
}));
|
|
21
32
|
}
|
|
22
|
-
if (item.
|
|
23
|
-
res.push(...this.getAssistantMetric(
|
|
33
|
+
if (item.sum_num_lines_accepted > 0) {
|
|
34
|
+
res.push(...this.getAssistantMetric({
|
|
35
|
+
startedAt,
|
|
36
|
+
endedAt,
|
|
37
|
+
assistantMetricType: vcs_1.AssistantMetric.LinesAccepted,
|
|
38
|
+
value: item.sum_num_lines_accepted,
|
|
39
|
+
organization: this.streamName.source,
|
|
40
|
+
userEmail: item.email,
|
|
41
|
+
feature: common_1.WindsurfFeature.Autocompletion,
|
|
42
|
+
editor: item.ide,
|
|
43
|
+
language: item.language,
|
|
44
|
+
}));
|
|
45
|
+
}
|
|
46
|
+
// Add UserToolUsage record for active usage
|
|
47
|
+
if (item.sum_num_acceptances > 0 || item.sum_num_lines_accepted > 0) {
|
|
48
|
+
res.push({
|
|
49
|
+
model: 'vcs_UserToolUsage',
|
|
50
|
+
record: {
|
|
51
|
+
userTool: {
|
|
52
|
+
user: { uid: item.email, source: this.streamName.source },
|
|
53
|
+
organization: {
|
|
54
|
+
uid: this.streamName.source,
|
|
55
|
+
source: this.streamName.source,
|
|
56
|
+
},
|
|
57
|
+
tool: {
|
|
58
|
+
category: vcs_1.VCSToolCategory.CodingAssistant,
|
|
59
|
+
detail: vcs_1.VCSToolDetail.Windsurf,
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
usedAt: startedAt.toISOString(),
|
|
63
|
+
recordedAt: startedAt.toISOString(),
|
|
64
|
+
},
|
|
65
|
+
});
|
|
24
66
|
}
|
|
25
67
|
return res;
|
|
26
68
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autocomplete_analytics.js","sourceRoot":"","sources":["../../../src/converters/windsurf/autocomplete_analytics.ts"],"names":[],"mappings":";;;AAEA,qDAAsC;AAEtC,
|
|
1
|
+
{"version":3,"file":"autocomplete_analytics.js","sourceRoot":"","sources":["../../../src/converters/windsurf/autocomplete_analytics.ts"],"names":[],"mappings":";;;AAEA,qDAAsC;AAEtC,uCAA8E;AAE9E,qCAA4D;AAE5D,MAAa,qBAAsB,SAAQ,0BAAiB;IAA5D;;QACW,sBAAiB,GAAoC;YAC5D,qBAAqB;YACrB,mBAAmB;SACpB,CAAC;IAoEJ,CAAC;IAlEC,KAAK,CAAC,OAAO,CACX,MAAqB;QAErB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAiC,CAAC;QAE7D,MAAM,GAAG,GAAwB,EAAE,CAAC;QAEpC,MAAM,SAAS,GAAG,uBAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,uBAAK,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAExE,IAAI,IAAI,CAAC,mBAAmB,GAAG,CAAC,EAAE,CAAC;YACjC,GAAG,CAAC,IAAI,CACN,GAAG,IAAI,CAAC,kBAAkB,CAAC;gBACzB,SAAS;gBACT,OAAO;gBACP,mBAAmB,EAAE,qBAAe,CAAC,mBAAmB;gBACxD,KAAK,EAAE,IAAI,CAAC,mBAAmB;gBAC/B,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;gBACpC,SAAS,EAAE,IAAI,CAAC,KAAK;gBACrB,OAAO,EAAE,wBAAe,CAAC,cAAc;gBACvC,MAAM,EAAE,IAAI,CAAC,GAAG;gBAChB,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC,CACH,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,sBAAsB,GAAG,CAAC,EAAE,CAAC;YACpC,GAAG,CAAC,IAAI,CACN,GAAG,IAAI,CAAC,kBAAkB,CAAC;gBACzB,SAAS;gBACT,OAAO;gBACP,mBAAmB,EAAE,qBAAe,CAAC,aAAa;gBAClD,KAAK,EAAE,IAAI,CAAC,sBAAsB;gBAClC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;gBACpC,SAAS,EAAE,IAAI,CAAC,KAAK;gBACrB,OAAO,EAAE,wBAAe,CAAC,cAAc;gBACvC,MAAM,EAAE,IAAI,CAAC,GAAG;gBAChB,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC,CACH,CAAC;QACJ,CAAC;QAED,4CAA4C;QAC5C,IAAI,IAAI,CAAC,mBAAmB,GAAG,CAAC,IAAI,IAAI,CAAC,sBAAsB,GAAG,CAAC,EAAE,CAAC;YACpE,GAAG,CAAC,IAAI,CAAC;gBACP,KAAK,EAAE,mBAAmB;gBAC1B,MAAM,EAAE;oBACN,QAAQ,EAAE;wBACR,IAAI,EAAE,EAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAC;wBACvD,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,QAAQ;yBAC/B;qBACF;oBACD,MAAM,EAAE,SAAS,CAAC,WAAW,EAAE;oBAC/B,UAAU,EAAE,SAAS,CAAC,WAAW,EAAE;iBACpC;aACF,CAAC,CAAC;QACL,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AAxED,sDAwEC"}
|
|
@@ -9,6 +9,7 @@ class CascadeLinesAnalytics extends common_1.WindsurfConverter {
|
|
|
9
9
|
super(...arguments);
|
|
10
10
|
this.destinationModels = [
|
|
11
11
|
'vcs_AssistantMetric',
|
|
12
|
+
'vcs_UserToolUsage',
|
|
12
13
|
];
|
|
13
14
|
}
|
|
14
15
|
async convert(record) {
|
|
@@ -17,12 +18,49 @@ class CascadeLinesAnalytics extends common_1.WindsurfConverter {
|
|
|
17
18
|
const startedAt = faros_js_client_1.Utils.toDate(item.day);
|
|
18
19
|
const endedAt = faros_js_client_1.Utils.toDate(startedAt.getTime() + 24 * 60 * 60 * 1000);
|
|
19
20
|
if (item.linesAccepted > 0) {
|
|
20
|
-
res.push(...this.getAssistantMetric(
|
|
21
|
+
res.push(...this.getAssistantMetric({
|
|
22
|
+
startedAt,
|
|
23
|
+
endedAt,
|
|
24
|
+
assistantMetricType: vcs_1.AssistantMetric.LinesAccepted,
|
|
25
|
+
value: item.linesAccepted,
|
|
26
|
+
organization: this.streamName.source,
|
|
27
|
+
userEmail: item.email,
|
|
28
|
+
feature: common_1.WindsurfFeature.Cascade,
|
|
29
|
+
}));
|
|
21
30
|
}
|
|
22
31
|
// Calculate lines discarded = lines suggested - lines accepted
|
|
23
32
|
if (item.linesSuggested > item.linesAccepted) {
|
|
24
33
|
const linesDiscarded = item.linesSuggested - item.linesAccepted;
|
|
25
|
-
res.push(...this.getAssistantMetric(
|
|
34
|
+
res.push(...this.getAssistantMetric({
|
|
35
|
+
startedAt,
|
|
36
|
+
endedAt,
|
|
37
|
+
assistantMetricType: vcs_1.AssistantMetric.LinesDiscarded,
|
|
38
|
+
value: linesDiscarded,
|
|
39
|
+
organization: this.streamName.source,
|
|
40
|
+
userEmail: item.email,
|
|
41
|
+
feature: common_1.WindsurfFeature.Cascade,
|
|
42
|
+
}));
|
|
43
|
+
}
|
|
44
|
+
// Add UserToolUsage record for active usage
|
|
45
|
+
if (item.linesAccepted > 0 || item.linesSuggested > 0) {
|
|
46
|
+
res.push({
|
|
47
|
+
model: 'vcs_UserToolUsage',
|
|
48
|
+
record: {
|
|
49
|
+
userTool: {
|
|
50
|
+
user: { uid: item.email, source: this.streamName.source },
|
|
51
|
+
organization: {
|
|
52
|
+
uid: this.streamName.source,
|
|
53
|
+
source: this.streamName.source,
|
|
54
|
+
},
|
|
55
|
+
tool: {
|
|
56
|
+
category: vcs_1.VCSToolCategory.CodingAssistant,
|
|
57
|
+
detail: vcs_1.VCSToolDetail.Windsurf,
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
usedAt: startedAt.toISOString(),
|
|
61
|
+
recordedAt: startedAt.toISOString(),
|
|
62
|
+
},
|
|
63
|
+
});
|
|
26
64
|
}
|
|
27
65
|
return res;
|
|
28
66
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cascade_lines_analytics.js","sourceRoot":"","sources":["../../../src/converters/windsurf/cascade_lines_analytics.ts"],"names":[],"mappings":";;;AAEA,qDAAsC;AAEtC,
|
|
1
|
+
{"version":3,"file":"cascade_lines_analytics.js","sourceRoot":"","sources":["../../../src/converters/windsurf/cascade_lines_analytics.ts"],"names":[],"mappings":";;;AAEA,qDAAsC;AAEtC,uCAA8E;AAE9E,qCAA4D;AAE5D,MAAa,qBAAsB,SAAQ,0BAAiB;IAA5D;;QACW,sBAAiB,GAAoC;YAC5D,qBAAqB;YACrB,mBAAmB;SACpB,CAAC;IAkEJ,CAAC;IAhEC,KAAK,CAAC,OAAO,CACX,MAAqB;QAErB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAwB,CAAC;QAEpD,MAAM,GAAG,GAAwB,EAAE,CAAC;QAEpC,MAAM,SAAS,GAAG,uBAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,uBAAK,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAExE,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;YAC3B,GAAG,CAAC,IAAI,CACN,GAAG,IAAI,CAAC,kBAAkB,CAAC;gBACzB,SAAS;gBACT,OAAO;gBACP,mBAAmB,EAAE,qBAAe,CAAC,aAAa;gBAClD,KAAK,EAAE,IAAI,CAAC,aAAa;gBACzB,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;gBACpC,SAAS,EAAE,IAAI,CAAC,KAAK;gBACrB,OAAO,EAAE,wBAAe,CAAC,OAAO;aACjC,CAAC,CACH,CAAC;QACJ,CAAC;QAED,+DAA+D;QAC/D,IAAI,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YAC7C,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC;YAChE,GAAG,CAAC,IAAI,CACN,GAAG,IAAI,CAAC,kBAAkB,CAAC;gBACzB,SAAS;gBACT,OAAO;gBACP,mBAAmB,EAAE,qBAAe,CAAC,cAAc;gBACnD,KAAK,EAAE,cAAc;gBACrB,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;gBACpC,SAAS,EAAE,IAAI,CAAC,KAAK;gBACrB,OAAO,EAAE,wBAAe,CAAC,OAAO;aACjC,CAAC,CACH,CAAC;QACJ,CAAC;QAED,4CAA4C;QAC5C,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;YACtD,GAAG,CAAC,IAAI,CAAC;gBACP,KAAK,EAAE,mBAAmB;gBAC1B,MAAM,EAAE;oBACN,QAAQ,EAAE;wBACR,IAAI,EAAE,EAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAC;wBACvD,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,QAAQ;yBAC/B;qBACF;oBACD,MAAM,EAAE,SAAS,CAAC,WAAW,EAAE;oBAC/B,UAAU,EAAE,SAAS,CAAC,WAAW,EAAE;iBACpC;aACF,CAAC,CAAC;QACL,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AAtED,sDAsEC"}
|
|
@@ -9,6 +9,7 @@ class CascadeRunsAnalytics extends common_1.WindsurfConverter {
|
|
|
9
9
|
super(...arguments);
|
|
10
10
|
this.destinationModels = [
|
|
11
11
|
'vcs_AssistantMetric',
|
|
12
|
+
'vcs_UserToolUsage',
|
|
12
13
|
];
|
|
13
14
|
}
|
|
14
15
|
async convert(record) {
|
|
@@ -18,11 +19,48 @@ class CascadeRunsAnalytics extends common_1.WindsurfConverter {
|
|
|
18
19
|
const endedAt = faros_js_client_1.Utils.toDate(startedAt.getTime() + 24 * 60 * 60 * 1000);
|
|
19
20
|
// Generate Usage metric for messagesSent
|
|
20
21
|
if (item.messagesSent && item.messagesSent > 0) {
|
|
21
|
-
res.push(...this.getAssistantMetric(
|
|
22
|
+
res.push(...this.getAssistantMetric({
|
|
23
|
+
startedAt,
|
|
24
|
+
endedAt,
|
|
25
|
+
assistantMetricType: vcs_1.AssistantMetric.Usages,
|
|
26
|
+
value: item.messagesSent,
|
|
27
|
+
organization: this.streamName.source,
|
|
28
|
+
userEmail: item.email,
|
|
29
|
+
model: item.model,
|
|
30
|
+
feature: item.mode,
|
|
31
|
+
}));
|
|
32
|
+
// Add UserToolUsage record for active usage
|
|
33
|
+
res.push({
|
|
34
|
+
model: 'vcs_UserToolUsage',
|
|
35
|
+
record: {
|
|
36
|
+
userTool: {
|
|
37
|
+
user: { uid: item.email, source: this.streamName.source },
|
|
38
|
+
organization: {
|
|
39
|
+
uid: this.streamName.source,
|
|
40
|
+
source: this.streamName.source,
|
|
41
|
+
},
|
|
42
|
+
tool: {
|
|
43
|
+
category: vcs_1.VCSToolCategory.CodingAssistant,
|
|
44
|
+
detail: vcs_1.VCSToolDetail.Windsurf,
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
usedAt: startedAt.toISOString(),
|
|
48
|
+
recordedAt: startedAt.toISOString(),
|
|
49
|
+
},
|
|
50
|
+
});
|
|
22
51
|
}
|
|
23
52
|
// Generate Cost metric for promptsUsed
|
|
24
53
|
if (item.promptsUsed && item.promptsUsed > 0) {
|
|
25
|
-
res.push(...this.getAssistantMetric(
|
|
54
|
+
res.push(...this.getAssistantMetric({
|
|
55
|
+
startedAt,
|
|
56
|
+
endedAt,
|
|
57
|
+
assistantMetricType: vcs_1.AssistantMetric.Cost,
|
|
58
|
+
value: item.promptsUsed,
|
|
59
|
+
organization: this.streamName.source,
|
|
60
|
+
userEmail: item.email,
|
|
61
|
+
model: item.model,
|
|
62
|
+
feature: item.mode,
|
|
63
|
+
}));
|
|
26
64
|
}
|
|
27
65
|
return res;
|
|
28
66
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cascade_runs_analytics.js","sourceRoot":"","sources":["../../../src/converters/windsurf/cascade_runs_analytics.ts"],"names":[],"mappings":";;;AAEA,qDAAsC;AAEtC,
|
|
1
|
+
{"version":3,"file":"cascade_runs_analytics.js","sourceRoot":"","sources":["../../../src/converters/windsurf/cascade_runs_analytics.ts"],"names":[],"mappings":";;;AAEA,qDAAsC;AAEtC,uCAA8E;AAE9E,qCAA4D;AAE5D,MAAa,oBAAqB,SAAQ,0BAAiB;IAA3D;;QACW,sBAAiB,GAAoC;YAC5D,qBAAqB;YACrB,mBAAmB;SACpB,CAAC;IAkEJ,CAAC;IAhEC,KAAK,CAAC,OAAO,CACX,MAAqB;QAErB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAuB,CAAC;QAEnD,MAAM,GAAG,GAAwB,EAAE,CAAC;QAEpC,MAAM,SAAS,GAAG,uBAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,uBAAK,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAExE,yCAAyC;QACzC,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;YAC/C,GAAG,CAAC,IAAI,CACN,GAAG,IAAI,CAAC,kBAAkB,CAAC;gBACzB,SAAS;gBACT,OAAO;gBACP,mBAAmB,EAAE,qBAAe,CAAC,MAAM;gBAC3C,KAAK,EAAE,IAAI,CAAC,YAAY;gBACxB,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;gBACpC,SAAS,EAAE,IAAI,CAAC,KAAK;gBACrB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,OAAO,EAAE,IAAI,CAAC,IAAI;aACnB,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,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAC;wBACvD,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,QAAQ;yBAC/B;qBACF;oBACD,MAAM,EAAE,SAAS,CAAC,WAAW,EAAE;oBAC/B,UAAU,EAAE,SAAS,CAAC,WAAW,EAAE;iBACpC;aACF,CAAC,CAAC;QACL,CAAC;QAED,uCAAuC;QACvC,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;YAC7C,GAAG,CAAC,IAAI,CACN,GAAG,IAAI,CAAC,kBAAkB,CAAC;gBACzB,SAAS;gBACT,OAAO;gBACP,mBAAmB,EAAE,qBAAe,CAAC,IAAI;gBACzC,KAAK,EAAE,IAAI,CAAC,WAAW;gBACvB,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;gBACpC,SAAS,EAAE,IAAI,CAAC,KAAK;gBACrB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,OAAO,EAAE,IAAI,CAAC,IAAI;aACnB,CAAC,CACH,CAAC;QACJ,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AAtED,oDAsEC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { AirbyteRecord } from 'faros-airbyte-cdk';
|
|
2
|
+
import { DestinationModel, DestinationRecord } from '../converter';
|
|
3
|
+
import { WindsurfConverter } from './common';
|
|
4
|
+
export declare class ChatAnalytics extends WindsurfConverter {
|
|
5
|
+
readonly destinationModels: ReadonlyArray<DestinationModel>;
|
|
6
|
+
convert(record: AirbyteRecord): Promise<ReadonlyArray<DestinationRecord>>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ChatAnalytics = 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 ChatAnalytics extends common_1.WindsurfConverter {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
this.destinationModels = [
|
|
11
|
+
'vcs_AssistantMetric',
|
|
12
|
+
'vcs_UserToolUsage',
|
|
13
|
+
];
|
|
14
|
+
}
|
|
15
|
+
async convert(record) {
|
|
16
|
+
const item = record.record.data;
|
|
17
|
+
const res = [];
|
|
18
|
+
const startedAt = faros_js_client_1.Utils.toDate(item.date);
|
|
19
|
+
const endedAt = faros_js_client_1.Utils.toDate(startedAt.getTime() + 24 * 60 * 60 * 1000);
|
|
20
|
+
if (item.sum_chat_loc_used > 0) {
|
|
21
|
+
res.push(...this.getAssistantMetric({
|
|
22
|
+
startedAt,
|
|
23
|
+
endedAt,
|
|
24
|
+
assistantMetricType: vcs_1.AssistantMetric.LinesAccepted,
|
|
25
|
+
value: item.sum_chat_loc_used,
|
|
26
|
+
organization: this.streamName.source,
|
|
27
|
+
userEmail: item.email,
|
|
28
|
+
model: item.model_id,
|
|
29
|
+
feature: common_1.WindsurfFeature.Chat,
|
|
30
|
+
editor: item.ide,
|
|
31
|
+
}));
|
|
32
|
+
// Add UserToolUsage record for active usage
|
|
33
|
+
res.push({
|
|
34
|
+
model: 'vcs_UserToolUsage',
|
|
35
|
+
record: {
|
|
36
|
+
userTool: {
|
|
37
|
+
user: { uid: item.email, source: this.streamName.source },
|
|
38
|
+
organization: {
|
|
39
|
+
uid: this.streamName.source,
|
|
40
|
+
source: this.streamName.source,
|
|
41
|
+
},
|
|
42
|
+
tool: {
|
|
43
|
+
category: vcs_1.VCSToolCategory.CodingAssistant,
|
|
44
|
+
detail: vcs_1.VCSToolDetail.Windsurf,
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
usedAt: startedAt.toISOString(),
|
|
48
|
+
recordedAt: startedAt.toISOString(),
|
|
49
|
+
},
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
return res;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
exports.ChatAnalytics = ChatAnalytics;
|
|
56
|
+
//# sourceMappingURL=chat_analytics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat_analytics.js","sourceRoot":"","sources":["../../../src/converters/windsurf/chat_analytics.ts"],"names":[],"mappings":";;;AAEA,qDAAsC;AAEtC,uCAA8E;AAE9E,qCAA4D;AAE5D,MAAa,aAAc,SAAQ,0BAAiB;IAApD;;QACW,sBAAiB,GAAoC;YAC5D,qBAAqB;YACrB,mBAAmB;SACpB,CAAC;IAkDJ,CAAC;IAhDC,KAAK,CAAC,OAAO,CACX,MAAqB;QAErB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAyB,CAAC;QAErD,MAAM,GAAG,GAAwB,EAAE,CAAC;QAEpC,MAAM,SAAS,GAAG,uBAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,uBAAK,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAExE,IAAI,IAAI,CAAC,iBAAiB,GAAG,CAAC,EAAE,CAAC;YAC/B,GAAG,CAAC,IAAI,CACN,GAAG,IAAI,CAAC,kBAAkB,CAAC;gBACzB,SAAS;gBACT,OAAO;gBACP,mBAAmB,EAAE,qBAAe,CAAC,aAAa;gBAClD,KAAK,EAAE,IAAI,CAAC,iBAAiB;gBAC7B,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;gBACpC,SAAS,EAAE,IAAI,CAAC,KAAK;gBACrB,KAAK,EAAE,IAAI,CAAC,QAAQ;gBACpB,OAAO,EAAE,wBAAe,CAAC,IAAI;gBAC7B,MAAM,EAAE,IAAI,CAAC,GAAG;aACjB,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,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAC;wBACvD,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,QAAQ;yBAC/B;qBACF;oBACD,MAAM,EAAE,SAAS,CAAC,WAAW,EAAE;oBAC/B,UAAU,EAAE,SAAS,CAAC,WAAW,EAAE;iBACpC;aACF,CAAC,CAAC;QACL,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AAtDD,sCAsDC"}
|
|
@@ -3,10 +3,25 @@ import { AssistantMetric } from '../common/vcs';
|
|
|
3
3
|
import { Converter, DestinationRecord } from '../converter';
|
|
4
4
|
export declare enum WindsurfFeature {
|
|
5
5
|
Autocompletion = "Autocompletion",
|
|
6
|
-
Cascade = "Cascade"
|
|
6
|
+
Cascade = "Cascade",
|
|
7
|
+
Chat = "Chat"
|
|
8
|
+
}
|
|
9
|
+
export interface AssistantMetricConfig {
|
|
10
|
+
startedAt: Date;
|
|
11
|
+
endedAt: Date;
|
|
12
|
+
assistantMetricType: AssistantMetric;
|
|
13
|
+
value: number;
|
|
14
|
+
organization: string;
|
|
15
|
+
userEmail?: string;
|
|
16
|
+
customMetricName?: string;
|
|
17
|
+
model?: string;
|
|
18
|
+
feature?: string;
|
|
19
|
+
editor?: string;
|
|
20
|
+
language?: string;
|
|
21
|
+
valueType?: 'Int' | 'Percent';
|
|
7
22
|
}
|
|
8
23
|
export declare abstract class WindsurfConverter extends Converter {
|
|
9
24
|
source: string;
|
|
10
25
|
id(record: AirbyteRecord): any;
|
|
11
|
-
protected getAssistantMetric(
|
|
26
|
+
protected getAssistantMetric(config: AssistantMetricConfig): DestinationRecord[];
|
|
12
27
|
}
|
|
@@ -9,6 +9,7 @@ var WindsurfFeature;
|
|
|
9
9
|
(function (WindsurfFeature) {
|
|
10
10
|
WindsurfFeature["Autocompletion"] = "Autocompletion";
|
|
11
11
|
WindsurfFeature["Cascade"] = "Cascade";
|
|
12
|
+
WindsurfFeature["Chat"] = "Chat";
|
|
12
13
|
})(WindsurfFeature || (exports.WindsurfFeature = WindsurfFeature = {}));
|
|
13
14
|
class WindsurfConverter extends converter_1.Converter {
|
|
14
15
|
constructor() {
|
|
@@ -17,9 +18,10 @@ class WindsurfConverter extends converter_1.Converter {
|
|
|
17
18
|
}
|
|
18
19
|
id(record) {
|
|
19
20
|
var _a, _b;
|
|
20
|
-
return (_b = (_a = record === null || record === void 0 ? void 0 : record.record) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.
|
|
21
|
+
return (_b = (_a = record === null || record === void 0 ? void 0 : record.record) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.id;
|
|
21
22
|
}
|
|
22
|
-
getAssistantMetric(
|
|
23
|
+
getAssistantMetric(config) {
|
|
24
|
+
const { startedAt, endedAt, assistantMetricType, value, organization, userEmail, customMetricName, model, feature, editor, language, valueType = 'Int', } = config;
|
|
23
25
|
return [
|
|
24
26
|
{
|
|
25
27
|
model: 'vcs_AssistantMetric',
|
|
@@ -31,7 +33,7 @@ class WindsurfConverter extends converter_1.Converter {
|
|
|
31
33
|
vcs_1.VCSToolDetail.Windsurf,
|
|
32
34
|
assistantMetricType,
|
|
33
35
|
startedAt.toISOString(),
|
|
34
|
-
|
|
36
|
+
organization,
|
|
35
37
|
userEmail,
|
|
36
38
|
customMetricName,
|
|
37
39
|
],
|
|
@@ -52,13 +54,15 @@ class WindsurfConverter extends converter_1.Converter {
|
|
|
52
54
|
category: assistantMetricType,
|
|
53
55
|
...(customMetricName && { detail: customMetricName }),
|
|
54
56
|
},
|
|
55
|
-
valueType
|
|
57
|
+
valueType,
|
|
56
58
|
value: String(value),
|
|
57
59
|
organization: {
|
|
58
|
-
uid:
|
|
60
|
+
uid: organization,
|
|
59
61
|
source: this.streamName.source,
|
|
60
62
|
},
|
|
61
|
-
|
|
63
|
+
...(userEmail && {
|
|
64
|
+
user: { uid: userEmail, source: this.streamName.source },
|
|
65
|
+
}),
|
|
62
66
|
tool: {
|
|
63
67
|
category: vcs_1.VCSToolCategory.CodingAssistant,
|
|
64
68
|
detail: vcs_1.VCSToolDetail.Windsurf,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/converters/windsurf/common.ts"],"names":[],"mappings":";;;AACA,wDAAmD;AACnD,mCAA6B;AAE7B,uCAA8E;AAC9E,4CAA0D;AAE1D,IAAY,
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/converters/windsurf/common.ts"],"names":[],"mappings":";;;AACA,wDAAmD;AACnD,mCAA6B;AAE7B,uCAA8E;AAC9E,4CAA0D;AAE1D,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,oDAAiC,CAAA;IACjC,sCAAmB,CAAA;IACnB,gCAAa,CAAA;AACf,CAAC,EAJW,eAAe,+BAAf,eAAe,QAI1B;AAiBD,MAAsB,iBAAkB,SAAQ,qBAAS;IAAzD;;QACE,WAAM,GAAG,UAAU,CAAC;IA8EtB,CAAC;IA5EC,EAAE,CAAC,MAAqB;;QACtB,OAAO,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,0CAAE,IAAI,0CAAE,EAAE,CAAC;IAClC,CAAC;IAES,kBAAkB,CAC1B,MAA6B;QAE7B,MAAM,EACJ,SAAS,EACT,OAAO,EACP,mBAAmB,EACnB,KAAK,EACL,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,KAAK,EACL,OAAO,EACP,MAAM,EACN,QAAQ,EACR,SAAS,GAAG,KAAK,GAClB,GAAG,MAAM,CAAC;QACX,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,QAAQ;wBACtB,mBAAmB;wBACnB,SAAS,CAAC,WAAW,EAAE;wBACvB,YAAY;wBACZ,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,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAC;wBAC9B,EAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAC;qBACnC;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,gBAAgB,IAAI,EAAC,MAAM,EAAE,gBAAgB,EAAC,CAAC;qBACpD;oBACD,SAAS;oBACT,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;oBACpB,YAAY,EAAE;wBACZ,GAAG,EAAE,YAAY;wBACjB,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;qBAC/B;oBACD,GAAG,CAAC,SAAS,IAAI;wBACf,IAAI,EAAE,EAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAC;qBACvD,CAAC;oBACF,IAAI,EAAE;wBACJ,QAAQ,EAAE,qBAAe,CAAC,eAAe;wBACzC,MAAM,EAAE,mBAAa,CAAC,QAAQ;qBAC/B;oBACD,GAAG,CAAC,KAAK,IAAI,EAAC,KAAK,EAAC,CAAC;oBACrB,GAAG,CAAC,OAAO,IAAI,EAAC,OAAO,EAAC,CAAC;oBACzB,GAAG,CAAC,MAAM,IAAI,EAAC,MAAM,EAAC,CAAC;iBACxB;aACF;SACF,CAAC;IACJ,CAAC;CACF;AA/ED,8CA+EC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { AirbyteRecord } from 'faros-airbyte-cdk';
|
|
2
|
+
import { DestinationModel, DestinationRecord } from '../converter';
|
|
3
|
+
import { WindsurfConverter } from './common';
|
|
4
|
+
export declare class PcwAnalytics extends WindsurfConverter {
|
|
5
|
+
readonly destinationModels: ReadonlyArray<DestinationModel>;
|
|
6
|
+
convert(record: AirbyteRecord): Promise<ReadonlyArray<DestinationRecord>>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PcwAnalytics = 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 PcwAnalytics extends common_1.WindsurfConverter {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
this.destinationModels = [
|
|
11
|
+
'vcs_AssistantMetric',
|
|
12
|
+
];
|
|
13
|
+
}
|
|
14
|
+
async convert(record) {
|
|
15
|
+
const item = record.record.data;
|
|
16
|
+
const res = [];
|
|
17
|
+
const startedAt = faros_js_client_1.Utils.toDate(item.date);
|
|
18
|
+
const endedAt = faros_js_client_1.Utils.toDate(startedAt.getTime() + 24 * 60 * 60 * 1000);
|
|
19
|
+
if (item.percent_code_written !== undefined) {
|
|
20
|
+
res.push(...this.getAssistantMetric({
|
|
21
|
+
startedAt,
|
|
22
|
+
endedAt,
|
|
23
|
+
assistantMetricType: vcs_1.AssistantMetric.PercentageOfCodeWritten,
|
|
24
|
+
value: item.percent_code_written,
|
|
25
|
+
organization: this.streamName.source,
|
|
26
|
+
valueType: 'Percent',
|
|
27
|
+
}));
|
|
28
|
+
}
|
|
29
|
+
return res;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.PcwAnalytics = PcwAnalytics;
|
|
33
|
+
//# sourceMappingURL=pcw_analytics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pcw_analytics.js","sourceRoot":"","sources":["../../../src/converters/windsurf/pcw_analytics.ts"],"names":[],"mappings":";;;AAEA,qDAAsC;AAEtC,uCAA8C;AAE9C,qCAA2C;AAE3C,MAAa,YAAa,SAAQ,0BAAiB;IAAnD;;QACW,sBAAiB,GAAoC;YAC5D,qBAAqB;SACtB,CAAC;IA2BJ,CAAC;IAzBC,KAAK,CAAC,OAAO,CACX,MAAqB;QAErB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAwB,CAAC;QAEpD,MAAM,GAAG,GAAwB,EAAE,CAAC;QAEpC,MAAM,SAAS,GAAG,uBAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,uBAAK,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAExE,IAAI,IAAI,CAAC,oBAAoB,KAAK,SAAS,EAAE,CAAC;YAC5C,GAAG,CAAC,IAAI,CACN,GAAG,IAAI,CAAC,kBAAkB,CAAC;gBACzB,SAAS;gBACT,OAAO;gBACP,mBAAmB,EAAE,qBAAe,CAAC,uBAAuB;gBAC5D,KAAK,EAAE,IAAI,CAAC,oBAAoB;gBAChC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;gBACpC,SAAS,EAAE,SAAS;aACrB,CAAC,CACH,CAAC;QACJ,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AA9BD,oCA8BC"}
|