mobbdev 1.0.213 → 1.0.216
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/dist/args/commands/upload_ai_blame.d.mts +62 -28
- package/dist/args/commands/upload_ai_blame.mjs +61 -15
- package/dist/index.mjs +239 -150
- package/package.json +1 -1
|
@@ -96,6 +96,7 @@ type Scalars = {
|
|
|
96
96
|
type AiBlameInferenceFinalizeInput = {
|
|
97
97
|
aiBlameInferenceId: Scalars['String']['input'];
|
|
98
98
|
aiResponseAt: Scalars['Timestamp']['input'];
|
|
99
|
+
blameType?: InputMaybe<AiBlameInferenceType>;
|
|
99
100
|
inferenceKey: Scalars['String']['input'];
|
|
100
101
|
metadataJSON?: InputMaybe<Scalars['String']['input']>;
|
|
101
102
|
model?: InputMaybe<Scalars['String']['input']>;
|
|
@@ -104,12 +105,18 @@ type AiBlameInferenceFinalizeInput = {
|
|
|
104
105
|
};
|
|
105
106
|
type AiBlameInferenceInitInput = {
|
|
106
107
|
aiResponseAt: Scalars['Timestamp']['input'];
|
|
108
|
+
blameType?: InputMaybe<AiBlameInferenceType>;
|
|
107
109
|
inferenceFileName: Scalars['String']['input'];
|
|
108
110
|
metadataJSON?: InputMaybe<Scalars['String']['input']>;
|
|
109
111
|
model?: InputMaybe<Scalars['String']['input']>;
|
|
110
112
|
promptFileName: Scalars['String']['input'];
|
|
111
113
|
toolName?: InputMaybe<Scalars['String']['input']>;
|
|
112
114
|
};
|
|
115
|
+
declare enum AiBlameInferenceType {
|
|
116
|
+
Chat = "CHAT",
|
|
117
|
+
HumanEdit = "HUMAN_EDIT",
|
|
118
|
+
TabAutocomplete = "TAB_AUTOCOMPLETE"
|
|
119
|
+
}
|
|
113
120
|
/** Boolean expression to compare columns of type "Boolean". All fields are combined with logical 'AND'. */
|
|
114
121
|
type Boolean_Comparison_Exp = {
|
|
115
122
|
_eq?: InputMaybe<Scalars['Boolean']['input']>;
|
|
@@ -3286,6 +3293,25 @@ type GetLastOrgAndNamedProjectQuery = {
|
|
|
3286
3293
|
}>;
|
|
3287
3294
|
}>;
|
|
3288
3295
|
};
|
|
3296
|
+
type GetLastOrgQueryVariables = Exact<{
|
|
3297
|
+
email: Scalars['String']['input'];
|
|
3298
|
+
}>;
|
|
3299
|
+
type GetLastOrgQuery = {
|
|
3300
|
+
__typename?: 'query_root';
|
|
3301
|
+
user: Array<{
|
|
3302
|
+
__typename?: 'user';
|
|
3303
|
+
id: any;
|
|
3304
|
+
name?: string | null;
|
|
3305
|
+
userOrganizationsAndUserOrganizationRoles: Array<{
|
|
3306
|
+
__typename?: 'organization_to_user';
|
|
3307
|
+
id: any;
|
|
3308
|
+
organization: {
|
|
3309
|
+
__typename?: 'organization';
|
|
3310
|
+
id: any;
|
|
3311
|
+
};
|
|
3312
|
+
}>;
|
|
3313
|
+
}>;
|
|
3314
|
+
};
|
|
3289
3315
|
type GetEncryptedApiTokenQueryVariables = Exact<{
|
|
3290
3316
|
loginId: Scalars['uuid']['input'];
|
|
3291
3317
|
}>;
|
|
@@ -4189,6 +4215,7 @@ type SdkFunctionWrapper = <T>(action: (requestHeaders?: Record<string, string>)
|
|
|
4189
4215
|
declare function getSdk(client: GraphQLClient, withWrapper?: SdkFunctionWrapper): {
|
|
4190
4216
|
Me(variables?: MeQueryVariables, requestHeaders?: GraphQLClientRequestHeaders, signal?: RequestInit["signal"]): Promise<MeQuery>;
|
|
4191
4217
|
getLastOrgAndNamedProject(variables: GetLastOrgAndNamedProjectQueryVariables, requestHeaders?: GraphQLClientRequestHeaders, signal?: RequestInit["signal"]): Promise<GetLastOrgAndNamedProjectQuery>;
|
|
4218
|
+
getLastOrg(variables: GetLastOrgQueryVariables, requestHeaders?: GraphQLClientRequestHeaders, signal?: RequestInit["signal"]): Promise<GetLastOrgQuery>;
|
|
4192
4219
|
GetEncryptedApiToken(variables: GetEncryptedApiTokenQueryVariables, requestHeaders?: GraphQLClientRequestHeaders, signal?: RequestInit["signal"]): Promise<GetEncryptedApiTokenQuery>;
|
|
4193
4220
|
FixReportState(variables: FixReportStateQueryVariables, requestHeaders?: GraphQLClientRequestHeaders, signal?: RequestInit["signal"]): Promise<FixReportStateQuery>;
|
|
4194
4221
|
GetVulnerabilityReportPaths(variables: GetVulnerabilityReportPathsQueryVariables, requestHeaders?: GraphQLClientRequestHeaders, signal?: RequestInit["signal"]): Promise<GetVulnerabilityReportPathsQuery>;
|
|
@@ -4272,6 +4299,10 @@ declare class GQLClient {
|
|
|
4272
4299
|
isTokenAvailable: boolean;
|
|
4273
4300
|
} | null>;
|
|
4274
4301
|
} | null | undefined>;
|
|
4302
|
+
getLastOrg(email: string): Promise<{
|
|
4303
|
+
organizationId: any;
|
|
4304
|
+
userName: string;
|
|
4305
|
+
}>;
|
|
4275
4306
|
createCliLogin(variables: CreateCliLoginMutationVariables): Promise<string>;
|
|
4276
4307
|
verifyApiConnection(): Promise<boolean>;
|
|
4277
4308
|
validateUserToken(): Promise<string | boolean>;
|
|
@@ -4431,26 +4462,18 @@ declare const PromptItemZ: z.ZodObject<{
|
|
|
4431
4462
|
name: string;
|
|
4432
4463
|
parameters: string;
|
|
4433
4464
|
result: string;
|
|
4434
|
-
accepted?: boolean | undefined;
|
|
4435
4465
|
rawArguments?: string | undefined;
|
|
4466
|
+
accepted?: boolean | undefined;
|
|
4436
4467
|
}, {
|
|
4437
4468
|
name: string;
|
|
4438
4469
|
parameters: string;
|
|
4439
4470
|
result: string;
|
|
4440
|
-
accepted?: boolean | undefined;
|
|
4441
4471
|
rawArguments?: string | undefined;
|
|
4472
|
+
accepted?: boolean | undefined;
|
|
4442
4473
|
}>>;
|
|
4443
4474
|
}, "strip", z.ZodTypeAny, {
|
|
4444
4475
|
type: "USER_PROMPT" | "AI_RESPONSE" | "TOOL_EXECUTION" | "AI_THINKING";
|
|
4445
|
-
tool?: {
|
|
4446
|
-
name: string;
|
|
4447
|
-
parameters: string;
|
|
4448
|
-
result: string;
|
|
4449
|
-
accepted?: boolean | undefined;
|
|
4450
|
-
rawArguments?: string | undefined;
|
|
4451
|
-
} | undefined;
|
|
4452
4476
|
date?: Date | undefined;
|
|
4453
|
-
text?: string | undefined;
|
|
4454
4477
|
attachedFiles?: {
|
|
4455
4478
|
relativePath: string;
|
|
4456
4479
|
startLine?: number | undefined;
|
|
@@ -4459,17 +4482,17 @@ declare const PromptItemZ: z.ZodObject<{
|
|
|
4459
4482
|
inputCount: number;
|
|
4460
4483
|
outputCount: number;
|
|
4461
4484
|
} | undefined;
|
|
4462
|
-
|
|
4463
|
-
type: "USER_PROMPT" | "AI_RESPONSE" | "TOOL_EXECUTION" | "AI_THINKING";
|
|
4485
|
+
text?: string | undefined;
|
|
4464
4486
|
tool?: {
|
|
4465
4487
|
name: string;
|
|
4466
4488
|
parameters: string;
|
|
4467
4489
|
result: string;
|
|
4468
|
-
accepted?: boolean | undefined;
|
|
4469
4490
|
rawArguments?: string | undefined;
|
|
4491
|
+
accepted?: boolean | undefined;
|
|
4470
4492
|
} | undefined;
|
|
4493
|
+
}, {
|
|
4494
|
+
type: "USER_PROMPT" | "AI_RESPONSE" | "TOOL_EXECUTION" | "AI_THINKING";
|
|
4471
4495
|
date?: Date | undefined;
|
|
4472
|
-
text?: string | undefined;
|
|
4473
4496
|
attachedFiles?: {
|
|
4474
4497
|
relativePath: string;
|
|
4475
4498
|
startLine?: number | undefined;
|
|
@@ -4478,6 +4501,14 @@ declare const PromptItemZ: z.ZodObject<{
|
|
|
4478
4501
|
inputCount: number;
|
|
4479
4502
|
outputCount: number;
|
|
4480
4503
|
} | undefined;
|
|
4504
|
+
text?: string | undefined;
|
|
4505
|
+
tool?: {
|
|
4506
|
+
name: string;
|
|
4507
|
+
parameters: string;
|
|
4508
|
+
result: string;
|
|
4509
|
+
rawArguments?: string | undefined;
|
|
4510
|
+
accepted?: boolean | undefined;
|
|
4511
|
+
} | undefined;
|
|
4481
4512
|
}>;
|
|
4482
4513
|
type PromptItem = z.infer<typeof PromptItemZ>;
|
|
4483
4514
|
declare const PromptItemArrayZ: z.ZodArray<z.ZodObject<{
|
|
@@ -4514,26 +4545,18 @@ declare const PromptItemArrayZ: z.ZodArray<z.ZodObject<{
|
|
|
4514
4545
|
name: string;
|
|
4515
4546
|
parameters: string;
|
|
4516
4547
|
result: string;
|
|
4517
|
-
accepted?: boolean | undefined;
|
|
4518
4548
|
rawArguments?: string | undefined;
|
|
4549
|
+
accepted?: boolean | undefined;
|
|
4519
4550
|
}, {
|
|
4520
4551
|
name: string;
|
|
4521
4552
|
parameters: string;
|
|
4522
4553
|
result: string;
|
|
4523
|
-
accepted?: boolean | undefined;
|
|
4524
4554
|
rawArguments?: string | undefined;
|
|
4555
|
+
accepted?: boolean | undefined;
|
|
4525
4556
|
}>>;
|
|
4526
4557
|
}, "strip", z.ZodTypeAny, {
|
|
4527
4558
|
type: "USER_PROMPT" | "AI_RESPONSE" | "TOOL_EXECUTION" | "AI_THINKING";
|
|
4528
|
-
tool?: {
|
|
4529
|
-
name: string;
|
|
4530
|
-
parameters: string;
|
|
4531
|
-
result: string;
|
|
4532
|
-
accepted?: boolean | undefined;
|
|
4533
|
-
rawArguments?: string | undefined;
|
|
4534
|
-
} | undefined;
|
|
4535
4559
|
date?: Date | undefined;
|
|
4536
|
-
text?: string | undefined;
|
|
4537
4560
|
attachedFiles?: {
|
|
4538
4561
|
relativePath: string;
|
|
4539
4562
|
startLine?: number | undefined;
|
|
@@ -4542,17 +4565,17 @@ declare const PromptItemArrayZ: z.ZodArray<z.ZodObject<{
|
|
|
4542
4565
|
inputCount: number;
|
|
4543
4566
|
outputCount: number;
|
|
4544
4567
|
} | undefined;
|
|
4545
|
-
|
|
4546
|
-
type: "USER_PROMPT" | "AI_RESPONSE" | "TOOL_EXECUTION" | "AI_THINKING";
|
|
4568
|
+
text?: string | undefined;
|
|
4547
4569
|
tool?: {
|
|
4548
4570
|
name: string;
|
|
4549
4571
|
parameters: string;
|
|
4550
4572
|
result: string;
|
|
4551
|
-
accepted?: boolean | undefined;
|
|
4552
4573
|
rawArguments?: string | undefined;
|
|
4574
|
+
accepted?: boolean | undefined;
|
|
4553
4575
|
} | undefined;
|
|
4576
|
+
}, {
|
|
4577
|
+
type: "USER_PROMPT" | "AI_RESPONSE" | "TOOL_EXECUTION" | "AI_THINKING";
|
|
4554
4578
|
date?: Date | undefined;
|
|
4555
|
-
text?: string | undefined;
|
|
4556
4579
|
attachedFiles?: {
|
|
4557
4580
|
relativePath: string;
|
|
4558
4581
|
startLine?: number | undefined;
|
|
@@ -4561,6 +4584,14 @@ declare const PromptItemArrayZ: z.ZodArray<z.ZodObject<{
|
|
|
4561
4584
|
inputCount: number;
|
|
4562
4585
|
outputCount: number;
|
|
4563
4586
|
} | undefined;
|
|
4587
|
+
text?: string | undefined;
|
|
4588
|
+
tool?: {
|
|
4589
|
+
name: string;
|
|
4590
|
+
parameters: string;
|
|
4591
|
+
result: string;
|
|
4592
|
+
rawArguments?: string | undefined;
|
|
4593
|
+
accepted?: boolean | undefined;
|
|
4594
|
+
} | undefined;
|
|
4564
4595
|
}>, "many">;
|
|
4565
4596
|
type PromptItemArray = z.infer<typeof PromptItemArrayZ>;
|
|
4566
4597
|
type UploadAiBlameOptions = {
|
|
@@ -4569,8 +4600,10 @@ type UploadAiBlameOptions = {
|
|
|
4569
4600
|
aiResponseAt?: string[];
|
|
4570
4601
|
model?: string[];
|
|
4571
4602
|
toolName?: string[];
|
|
4603
|
+
blameType?: AiBlameInferenceType[];
|
|
4572
4604
|
'ai-response-at'?: string[];
|
|
4573
4605
|
'tool-name'?: string[];
|
|
4606
|
+
'blame-type'?: AiBlameInferenceType[];
|
|
4574
4607
|
};
|
|
4575
4608
|
declare function uploadAiBlameBuilder(args: Yargs.Argv<unknown>): Yargs.Argv<UploadAiBlameOptions>;
|
|
4576
4609
|
declare function uploadAiBlameHandlerFromExtension(args: {
|
|
@@ -4579,6 +4612,7 @@ declare function uploadAiBlameHandlerFromExtension(args: {
|
|
|
4579
4612
|
model: string;
|
|
4580
4613
|
tool: string;
|
|
4581
4614
|
responseTime: string;
|
|
4615
|
+
blameType?: AiBlameInferenceType;
|
|
4582
4616
|
}): Promise<void>;
|
|
4583
4617
|
/**
|
|
4584
4618
|
* Initializes and authenticates a GQL client for AI Blame upload operations.
|
|
@@ -112,6 +112,12 @@ import * as dotenv from "dotenv";
|
|
|
112
112
|
import { z as z8 } from "zod";
|
|
113
113
|
|
|
114
114
|
// src/features/analysis/scm/generates/client_generates.ts
|
|
115
|
+
var AiBlameInferenceType = /* @__PURE__ */ ((AiBlameInferenceType2) => {
|
|
116
|
+
AiBlameInferenceType2["Chat"] = "CHAT";
|
|
117
|
+
AiBlameInferenceType2["HumanEdit"] = "HUMAN_EDIT";
|
|
118
|
+
AiBlameInferenceType2["TabAutocomplete"] = "TAB_AUTOCOMPLETE";
|
|
119
|
+
return AiBlameInferenceType2;
|
|
120
|
+
})(AiBlameInferenceType || {});
|
|
115
121
|
var FixQuestionInputType = /* @__PURE__ */ ((FixQuestionInputType2) => {
|
|
116
122
|
FixQuestionInputType2["Number"] = "NUMBER";
|
|
117
123
|
FixQuestionInputType2["Select"] = "SELECT";
|
|
@@ -561,6 +567,20 @@ var GetLastOrgAndNamedProjectDocument = `
|
|
|
561
567
|
}
|
|
562
568
|
}
|
|
563
569
|
`;
|
|
570
|
+
var GetLastOrgDocument = `
|
|
571
|
+
query getLastOrg($email: String!) {
|
|
572
|
+
user(where: {email: {_eq: $email}}, limit: 1) {
|
|
573
|
+
id
|
|
574
|
+
name
|
|
575
|
+
userOrganizationsAndUserOrganizationRoles(order_by: {createdOn: desc}) {
|
|
576
|
+
id
|
|
577
|
+
organization {
|
|
578
|
+
id
|
|
579
|
+
}
|
|
580
|
+
}
|
|
581
|
+
}
|
|
582
|
+
}
|
|
583
|
+
`;
|
|
564
584
|
var GetEncryptedApiTokenDocument = `
|
|
565
585
|
query GetEncryptedApiToken($loginId: uuid!) {
|
|
566
586
|
cli_login_by_pk(id: $loginId) {
|
|
@@ -1056,6 +1076,9 @@ function getSdk(client, withWrapper = defaultWrapper) {
|
|
|
1056
1076
|
getLastOrgAndNamedProject(variables, requestHeaders, signal) {
|
|
1057
1077
|
return withWrapper((wrappedRequestHeaders) => client.request({ document: GetLastOrgAndNamedProjectDocument, variables, requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders }, signal }), "getLastOrgAndNamedProject", "query", variables);
|
|
1058
1078
|
},
|
|
1079
|
+
getLastOrg(variables, requestHeaders, signal) {
|
|
1080
|
+
return withWrapper((wrappedRequestHeaders) => client.request({ document: GetLastOrgDocument, variables, requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders }, signal }), "getLastOrg", "query", variables);
|
|
1081
|
+
},
|
|
1059
1082
|
GetEncryptedApiToken(variables, requestHeaders, signal) {
|
|
1060
1083
|
return withWrapper((wrappedRequestHeaders) => client.request({ document: GetEncryptedApiTokenDocument, variables, requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders }, signal }), "GetEncryptedApiToken", "query", variables);
|
|
1061
1084
|
},
|
|
@@ -4609,6 +4632,13 @@ var GQLClient = class {
|
|
|
4609
4632
|
const { me } = await this._clientSdk.Me();
|
|
4610
4633
|
return me;
|
|
4611
4634
|
}
|
|
4635
|
+
async getLastOrg(email) {
|
|
4636
|
+
const getLastOrgRes = await this._clientSdk.getLastOrg({ email });
|
|
4637
|
+
return {
|
|
4638
|
+
organizationId: getLastOrgRes?.user?.[0]?.userOrganizationsAndUserOrganizationRoles?.[0]?.organization?.id,
|
|
4639
|
+
userName: getLastOrgRes?.user?.[0]?.name ?? ""
|
|
4640
|
+
};
|
|
4641
|
+
}
|
|
4612
4642
|
async createCliLogin(variables) {
|
|
4613
4643
|
const res = await this._clientSdk.CreateCliLogin(variables, {
|
|
4614
4644
|
// We may have outdated API key in the config storage. Avoid using it for the login request.
|
|
@@ -5118,6 +5148,13 @@ function uploadAiBlameBuilder(args) {
|
|
|
5118
5148
|
type: "string",
|
|
5119
5149
|
array: true,
|
|
5120
5150
|
describe: chalk3.bold("Tool/IDE name(s) (optional, one per session)")
|
|
5151
|
+
}).option("blame-type", {
|
|
5152
|
+
type: "string",
|
|
5153
|
+
array: true,
|
|
5154
|
+
choices: Object.values(AiBlameInferenceType),
|
|
5155
|
+
describe: chalk3.bold(
|
|
5156
|
+
"Blame type(s) (optional, one per session, defaults to CHAT)"
|
|
5157
|
+
)
|
|
5121
5158
|
}).strict();
|
|
5122
5159
|
}
|
|
5123
5160
|
async function uploadAiBlameHandlerFromExtension(args) {
|
|
@@ -5126,7 +5163,8 @@ async function uploadAiBlameHandlerFromExtension(args) {
|
|
|
5126
5163
|
inference: [],
|
|
5127
5164
|
model: [],
|
|
5128
5165
|
toolName: [],
|
|
5129
|
-
aiResponseAt: []
|
|
5166
|
+
aiResponseAt: [],
|
|
5167
|
+
blameType: []
|
|
5130
5168
|
};
|
|
5131
5169
|
await withFile(async (promptFile) => {
|
|
5132
5170
|
await fsPromises2.writeFile(
|
|
@@ -5141,6 +5179,7 @@ async function uploadAiBlameHandlerFromExtension(args) {
|
|
|
5141
5179
|
uploadArgs.model.push(args.model);
|
|
5142
5180
|
uploadArgs.toolName.push(args.tool);
|
|
5143
5181
|
uploadArgs.aiResponseAt.push(args.responseTime);
|
|
5182
|
+
uploadArgs.blameType.push(args.blameType || "CHAT" /* Chat */);
|
|
5144
5183
|
await uploadAiBlameHandler(uploadArgs, false);
|
|
5145
5184
|
});
|
|
5146
5185
|
});
|
|
@@ -5163,6 +5202,7 @@ async function uploadAiBlameHandler(args, exitOnError = true) {
|
|
|
5163
5202
|
const models = args.model || [];
|
|
5164
5203
|
const tools = args.toolName || args["tool-name"] || [];
|
|
5165
5204
|
const responseTimes = args.aiResponseAt || args["ai-response-at"] || [];
|
|
5205
|
+
const blameTypes = args.blameType || args["blame-type"] || [];
|
|
5166
5206
|
if (prompts.length !== inferences.length) {
|
|
5167
5207
|
const errorMsg = "prompt and inference must have the same number of entries";
|
|
5168
5208
|
console.error(chalk3.red(errorMsg));
|
|
@@ -5194,7 +5234,8 @@ async function uploadAiBlameHandler(args, exitOnError = true) {
|
|
|
5194
5234
|
inferenceFileName: path6.basename(inferencePath),
|
|
5195
5235
|
aiResponseAt: responseTimes[i] || nowIso,
|
|
5196
5236
|
model: models[i],
|
|
5197
|
-
toolName: tools[i]
|
|
5237
|
+
toolName: tools[i],
|
|
5238
|
+
blameType: blameTypes[i] || "CHAT" /* Chat */
|
|
5198
5239
|
});
|
|
5199
5240
|
}
|
|
5200
5241
|
const authenticatedClient = await getAuthenticatedGQLClientForIdeExtension();
|
|
@@ -5214,18 +5255,22 @@ async function uploadAiBlameHandler(args, exitOnError = true) {
|
|
|
5214
5255
|
const us = uploadSessions[i];
|
|
5215
5256
|
const promptPath = String(prompts[i]);
|
|
5216
5257
|
const inferencePath = String(inferences[i]);
|
|
5217
|
-
await
|
|
5218
|
-
|
|
5219
|
-
|
|
5220
|
-
|
|
5221
|
-
|
|
5222
|
-
|
|
5223
|
-
|
|
5224
|
-
|
|
5225
|
-
|
|
5226
|
-
|
|
5227
|
-
|
|
5228
|
-
|
|
5258
|
+
await Promise.all([
|
|
5259
|
+
// Prompt
|
|
5260
|
+
uploadFile({
|
|
5261
|
+
file: promptPath,
|
|
5262
|
+
url: us.prompt.url,
|
|
5263
|
+
uploadFields: JSON.parse(us.prompt.uploadFieldsJSON),
|
|
5264
|
+
uploadKey: us.prompt.uploadKey
|
|
5265
|
+
}),
|
|
5266
|
+
// Inference
|
|
5267
|
+
uploadFile({
|
|
5268
|
+
file: inferencePath,
|
|
5269
|
+
url: us.inference.url,
|
|
5270
|
+
uploadFields: JSON.parse(us.inference.uploadFieldsJSON),
|
|
5271
|
+
uploadKey: us.inference.uploadKey
|
|
5272
|
+
})
|
|
5273
|
+
]);
|
|
5229
5274
|
}
|
|
5230
5275
|
const finalizeSessions = uploadSessions.map((us, i) => {
|
|
5231
5276
|
const s = sessions[i];
|
|
@@ -5235,7 +5280,8 @@ async function uploadAiBlameHandler(args, exitOnError = true) {
|
|
|
5235
5280
|
inferenceKey: us.inference.uploadKey,
|
|
5236
5281
|
aiResponseAt: s.aiResponseAt,
|
|
5237
5282
|
model: s.model,
|
|
5238
|
-
toolName: s.toolName
|
|
5283
|
+
toolName: s.toolName,
|
|
5284
|
+
blameType: s.blameType
|
|
5239
5285
|
};
|
|
5240
5286
|
});
|
|
5241
5287
|
const finRes = await authenticatedClient.finalizeAIBlameInferencesUploadRaw({
|