mobbdev 1.4.11 → 1.4.15

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.
@@ -56,17 +56,17 @@ declare const PromptItemZ: z.ZodObject<{
56
56
  name: string;
57
57
  parameters: string;
58
58
  result: string;
59
+ mcpServer?: string | undefined;
59
60
  accepted?: boolean | undefined;
60
61
  rawArguments?: string | undefined;
61
- mcpServer?: string | undefined;
62
62
  mcpToolName?: string | undefined;
63
63
  }, {
64
64
  name: string;
65
65
  parameters: string;
66
66
  result: string;
67
+ mcpServer?: string | undefined;
67
68
  accepted?: boolean | undefined;
68
69
  rawArguments?: string | undefined;
69
- mcpServer?: string | undefined;
70
70
  mcpToolName?: string | undefined;
71
71
  }>>;
72
72
  }, "strip", z.ZodTypeAny, {
@@ -75,9 +75,9 @@ declare const PromptItemZ: z.ZodObject<{
75
75
  name: string;
76
76
  parameters: string;
77
77
  result: string;
78
+ mcpServer?: string | undefined;
78
79
  accepted?: boolean | undefined;
79
80
  rawArguments?: string | undefined;
80
- mcpServer?: string | undefined;
81
81
  mcpToolName?: string | undefined;
82
82
  } | undefined;
83
83
  date?: Date | undefined;
@@ -96,9 +96,9 @@ declare const PromptItemZ: z.ZodObject<{
96
96
  name: string;
97
97
  parameters: string;
98
98
  result: string;
99
+ mcpServer?: string | undefined;
99
100
  accepted?: boolean | undefined;
100
101
  rawArguments?: string | undefined;
101
- mcpServer?: string | undefined;
102
102
  mcpToolName?: string | undefined;
103
103
  } | undefined;
104
104
  date?: Date | undefined;
@@ -149,17 +149,17 @@ declare const PromptItemArrayZ: z.ZodArray<z.ZodObject<{
149
149
  name: string;
150
150
  parameters: string;
151
151
  result: string;
152
+ mcpServer?: string | undefined;
152
153
  accepted?: boolean | undefined;
153
154
  rawArguments?: string | undefined;
154
- mcpServer?: string | undefined;
155
155
  mcpToolName?: string | undefined;
156
156
  }, {
157
157
  name: string;
158
158
  parameters: string;
159
159
  result: string;
160
+ mcpServer?: string | undefined;
160
161
  accepted?: boolean | undefined;
161
162
  rawArguments?: string | undefined;
162
- mcpServer?: string | undefined;
163
163
  mcpToolName?: string | undefined;
164
164
  }>>;
165
165
  }, "strip", z.ZodTypeAny, {
@@ -168,9 +168,9 @@ declare const PromptItemArrayZ: z.ZodArray<z.ZodObject<{
168
168
  name: string;
169
169
  parameters: string;
170
170
  result: string;
171
+ mcpServer?: string | undefined;
171
172
  accepted?: boolean | undefined;
172
173
  rawArguments?: string | undefined;
173
- mcpServer?: string | undefined;
174
174
  mcpToolName?: string | undefined;
175
175
  } | undefined;
176
176
  date?: Date | undefined;
@@ -189,9 +189,9 @@ declare const PromptItemArrayZ: z.ZodArray<z.ZodObject<{
189
189
  name: string;
190
190
  parameters: string;
191
191
  result: string;
192
+ mcpServer?: string | undefined;
192
193
  accepted?: boolean | undefined;
193
194
  rawArguments?: string | undefined;
194
- mcpServer?: string | undefined;
195
195
  mcpToolName?: string | undefined;
196
196
  } | undefined;
197
197
  date?: Date | undefined;
@@ -109,6 +109,9 @@ function getSdk(client, withWrapper = defaultWrapper) {
109
109
  autoPrAnalysis(variables, requestHeaders, signal) {
110
110
  return withWrapper((wrappedRequestHeaders) => client.request({ document: AutoPrAnalysisDocument, variables, requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders }, signal }), "autoPrAnalysis", "mutation", variables);
111
111
  },
112
+ getFixWithAnswers(variables, requestHeaders, signal) {
113
+ return withWrapper((wrappedRequestHeaders) => client.request({ document: GetFixWithAnswersDocument, variables, requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders }, signal }), "getFixWithAnswers", "query", variables);
114
+ },
112
115
  GetFixReportsByRepoUrl(variables, requestHeaders, signal) {
113
116
  return withWrapper((wrappedRequestHeaders) => client.request({ document: GetFixReportsByRepoUrlDocument, variables, requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders }, signal }), "GetFixReportsByRepoUrl", "query", variables);
114
117
  },
@@ -138,7 +141,7 @@ function getSdk(client, withWrapper = defaultWrapper) {
138
141
  }
139
142
  };
140
143
  }
141
- var AiBlameInferenceType, FixQuestionInputType, Language, ManifestAction, Effort_To_Apply_Fix_Enum, Fix_Rating_Tag_Enum, Fix_Report_State_Enum, Fix_State_Enum, IssueLanguage_Enum, IssueType_Enum, Pr_Status_Enum, Project_Role_Type_Enum, Vulnerability_Report_Issue_Category_Enum, Vulnerability_Report_Issue_State_Enum, Vulnerability_Report_Issue_Tag_Enum, Vulnerability_Report_Vendor_Enum, Vulnerability_Severity_Enum, FixDetailsFragmentDoc, FixReportSummaryFieldsFragmentDoc, MeDocument, GetLastOrgAndNamedProjectDocument, GetLastOrgDocument, GetEncryptedApiTokenDocument, FixReportStateDocument, GetVulnerabilityReportPathsDocument, GetAnalysisSubscriptionDocument, GetAnalysisDocument, GetFixesDocument, GetVulByNodesMetadataDocument, GetFalsePositiveDocument, UpdateScmTokenDocument, UploadS3BucketInfoDocument, GetTracyDiffUploadUrlDocument, AnalyzeCommitForExtensionAiBlameDocument, GetAiBlameInferenceDocument, GetAiBlameAttributionPromptDocument, GetPromptSummaryDocument, UploadAiBlameInferencesInitDocument, FinalizeAiBlameInferencesUploadDocument, UploadTracyRecordsDocument, GetTracyRawDataUploadUrlDocument, DigestVulnerabilityReportDocument, SubmitVulnerabilityReportDocument, CreateCommunityUserDocument, CreateCliLoginDocument, PerformCliLoginDocument, SetQuarantineEnabledDocument, CreateProjectDocument, ValidateRepoUrlDocument, GitReferenceDocument, AutoPrAnalysisDocument, GetFixReportsByRepoUrlDocument, GetReportFixesDocument, GetLatestReportByRepoUrlDocument, UpdateDownloadedFixDataDocument, GetUserMvsAutoFixDocument, StreamBlameAiAnalysisRequestsDocument, StreamCommitBlameRequestsDocument, ScanSkillDocument, SkillVerdictsByMd5Document, defaultWrapper;
144
+ var AiBlameInferenceType, FixQuestionInputType, Language, ManifestAction, Effort_To_Apply_Fix_Enum, Fix_Rating_Tag_Enum, Fix_Report_State_Enum, Fix_State_Enum, IssueLanguage_Enum, IssueType_Enum, Pr_Status_Enum, Project_Role_Type_Enum, Vulnerability_Report_Issue_Category_Enum, Vulnerability_Report_Issue_State_Enum, Vulnerability_Report_Issue_Tag_Enum, Vulnerability_Report_Vendor_Enum, Vulnerability_Severity_Enum, FixDetailsFragmentDoc, FixReportSummaryFieldsFragmentDoc, MeDocument, GetLastOrgAndNamedProjectDocument, GetLastOrgDocument, GetEncryptedApiTokenDocument, FixReportStateDocument, GetVulnerabilityReportPathsDocument, GetAnalysisSubscriptionDocument, GetAnalysisDocument, GetFixesDocument, GetVulByNodesMetadataDocument, GetFalsePositiveDocument, UpdateScmTokenDocument, UploadS3BucketInfoDocument, GetTracyDiffUploadUrlDocument, AnalyzeCommitForExtensionAiBlameDocument, GetAiBlameInferenceDocument, GetAiBlameAttributionPromptDocument, GetPromptSummaryDocument, UploadAiBlameInferencesInitDocument, FinalizeAiBlameInferencesUploadDocument, UploadTracyRecordsDocument, GetTracyRawDataUploadUrlDocument, DigestVulnerabilityReportDocument, SubmitVulnerabilityReportDocument, CreateCommunityUserDocument, CreateCliLoginDocument, PerformCliLoginDocument, SetQuarantineEnabledDocument, CreateProjectDocument, ValidateRepoUrlDocument, GitReferenceDocument, AutoPrAnalysisDocument, GetFixWithAnswersDocument, GetFixReportsByRepoUrlDocument, GetReportFixesDocument, GetLatestReportByRepoUrlDocument, UpdateDownloadedFixDataDocument, GetUserMvsAutoFixDocument, StreamBlameAiAnalysisRequestsDocument, StreamCommitBlameRequestsDocument, ScanSkillDocument, SkillVerdictsByMd5Document, defaultWrapper;
142
145
  var init_client_generates = __esm({
143
146
  "src/features/analysis/scm/generates/client_generates.ts"() {
144
147
  "use strict";
@@ -312,6 +315,7 @@ var init_client_generates = __esm({
312
315
  IssueType_Enum2["NoReturnInFinally"] = "NO_RETURN_IN_FINALLY";
313
316
  IssueType_Enum2["NoVar"] = "NO_VAR";
314
317
  IssueType_Enum2["NullDereference"] = "NULL_DEREFERENCE";
318
+ IssueType_Enum2["OftenMisusedBooleanGetBoolean"] = "OFTEN_MISUSED_BOOLEAN_GET_BOOLEAN";
315
319
  IssueType_Enum2["OpenRedirect"] = "OPEN_REDIRECT";
316
320
  IssueType_Enum2["OverlyBroadCatch"] = "OVERLY_BROAD_CATCH";
317
321
  IssueType_Enum2["OverlyLargeRange"] = "OVERLY_LARGE_RANGE";
@@ -442,6 +446,7 @@ var init_client_generates = __esm({
442
446
  id
443
447
  confidence
444
448
  safeIssueType
449
+ safeIssueLanguage
445
450
  severityText
446
451
  gitBlameLogin
447
452
  severityValue
@@ -465,7 +470,17 @@ var init_client_generates = __esm({
465
470
  patch
466
471
  patchOriginalEncodingBase64
467
472
  questions {
473
+ key
468
474
  name
475
+ defaultValue
476
+ value
477
+ inputType
478
+ options
479
+ index
480
+ extraContext {
481
+ key
482
+ value
483
+ }
469
484
  }
470
485
  extraContext {
471
486
  extraContext {
@@ -1022,7 +1037,7 @@ var init_client_generates = __esm({
1022
1037
  }
1023
1038
  `;
1024
1039
  DigestVulnerabilityReportDocument = `
1025
- mutation DigestVulnerabilityReport($vulnerabilityReportFileName: String, $fixReportId: String!, $projectId: String!, $scanSource: String!, $repoUrl: String, $reference: String, $sha: String) {
1040
+ mutation DigestVulnerabilityReport($vulnerabilityReportFileName: String, $fixReportId: String!, $projectId: String!, $scanSource: String!, $repoUrl: String, $reference: String, $sha: String, $baselineCommit: String) {
1026
1041
  digestVulnerabilityReport(
1027
1042
  fixReportId: $fixReportId
1028
1043
  vulnerabilityReportFileName: $vulnerabilityReportFileName
@@ -1031,6 +1046,7 @@ var init_client_generates = __esm({
1031
1046
  repoUrl: $repoUrl
1032
1047
  reference: $reference
1033
1048
  sha: $sha
1049
+ baselineCommit: $baselineCommit
1034
1050
  ) {
1035
1051
  __typename
1036
1052
  ... on VulnerabilityReport {
@@ -1182,6 +1198,37 @@ var init_client_generates = __esm({
1182
1198
  error
1183
1199
  }
1184
1200
  }
1201
+ }
1202
+ `;
1203
+ GetFixWithAnswersDocument = `
1204
+ query getFixWithAnswers($fixId: uuid!, $userInput: [QuestionAnswer!]!) {
1205
+ fixData: getFix(fixId: $fixId, userInput: $userInput, loadAnswers: false) {
1206
+ __typename
1207
+ ... on FixData {
1208
+ patch
1209
+ patchOriginalEncodingBase64
1210
+ questions {
1211
+ key
1212
+ name
1213
+ defaultValue
1214
+ value
1215
+ inputType
1216
+ options
1217
+ index
1218
+ extraContext {
1219
+ key
1220
+ value
1221
+ }
1222
+ }
1223
+ extraContext {
1224
+ extraContext {
1225
+ key
1226
+ value
1227
+ }
1228
+ fixDescription
1229
+ }
1230
+ }
1231
+ }
1185
1232
  }
1186
1233
  `;
1187
1234
  GetFixReportsByRepoUrlDocument = `
@@ -1216,14 +1263,14 @@ var init_client_generates = __esm({
1216
1263
  GetLatestReportByRepoUrlDocument = `
1217
1264
  query GetLatestReportByRepoUrl($repoUrl: String!, $filters: fix_bool_exp = {}, $limit: Int!, $offset: Int!, $currentUserEmail: String!) {
1218
1265
  fixReport(
1219
- where: {_and: [{repo: {originalUrl: {_eq: $repoUrl}}}, {state: {_eq: Finished}}, {vulnerabilityReport: {scanSource: {_neq: MCP}}}]}
1266
+ where: {_and: [{repo: {originalUrl: {_ilike: $repoUrl}}}, {state: {_eq: Finished}}, {vulnerabilityReport: {scanSource: {_neq: MCP}}}]}
1220
1267
  order_by: {createdOn: desc}
1221
1268
  limit: 1
1222
1269
  ) {
1223
1270
  ...FixReportSummaryFields
1224
1271
  }
1225
1272
  expiredReport: fixReport(
1226
- where: {_and: [{repo: {originalUrl: {_eq: $repoUrl}}}, {state: {_eq: Expired}}, {vulnerabilityReport: {scanSource: {_neq: MCP}}}]}
1273
+ where: {_and: [{repo: {originalUrl: {_ilike: $repoUrl}}}, {state: {_eq: Expired}}, {vulnerabilityReport: {scanSource: {_neq: MCP}}}]}
1227
1274
  order_by: {createdOn: desc}
1228
1275
  limit: 1
1229
1276
  ) {
@@ -1531,7 +1578,7 @@ var init_analysis = __esm({
1531
1578
 
1532
1579
  // src/features/analysis/scm/shared/src/types/issue.ts
1533
1580
  import { z as z4 } from "zod";
1534
- var MAX_SOURCE_CODE_FILE_SIZE_IN_BYTES, VulnerabilityReportIssueRatingZ, VulnerabilityReportIssueSharedStateZ, BaseIssuePartsZ, FalsePositivePartsZ, IssuePartsWithFixZ, IssuePartsFpZ, GeneralIssueZ, IssuePartsZ, GetIssueIndexesZ, GetIssueScreenDataZ, IssueBucketZ, mapBucketTypeToCategory;
1581
+ var MAX_SOURCE_CODE_FILE_SIZE_IN_BYTES, VulnerabilityReportIssueRatingZ, VulnerabilityReportIssueSharedStateZ, BaseIssuePartsZ, FalsePositivePartsZ, UnfixablePartsZ, IssuePartsWithFixZ, IssuePartsFpZ, GeneralIssueZ, IssuePartsZ, GetIssueIndexesZ, GetIssueScreenDataZ, IssueBucketZ, mapBucketTypeToCategory;
1535
1582
  var init_issue = __esm({
1536
1583
  "src/features/analysis/scm/shared/src/types/issue.ts"() {
1537
1584
  "use strict";
@@ -1613,12 +1660,17 @@ var init_issue = __esm({
1613
1660
  return { codeDiff };
1614
1661
  })
1615
1662
  }).nullish(),
1616
- sharedState: VulnerabilityReportIssueSharedStateZ
1663
+ sharedState: VulnerabilityReportIssueSharedStateZ,
1664
+ unfixableId: z4.string().uuid().nullish()
1617
1665
  });
1618
1666
  FalsePositivePartsZ = z4.object({
1619
1667
  extraContext: z4.array(z4.object({ key: z4.string(), value: z4.string() })),
1620
1668
  fixDescription: z4.string()
1621
1669
  });
1670
+ UnfixablePartsZ = z4.object({
1671
+ extraContext: z4.array(z4.object({ key: z4.string(), value: z4.string() })),
1672
+ fixDescription: z4.string()
1673
+ });
1622
1674
  IssuePartsWithFixZ = BaseIssuePartsZ.merge(
1623
1675
  z4.object({
1624
1676
  category: z4.literal("Irrelevant" /* Irrelevant */),
@@ -1640,7 +1692,8 @@ var init_issue = __esm({
1640
1692
  z4.literal("Fixable" /* Fixable */),
1641
1693
  z4.literal("Filtered" /* Filtered */),
1642
1694
  z4.literal("Pending" /* Pending */)
1643
- ])
1695
+ ]),
1696
+ getUnfixable: UnfixablePartsZ.nullish()
1644
1697
  })
1645
1698
  );
1646
1699
  IssuePartsZ = z4.union([
@@ -1830,7 +1883,8 @@ var init_getIssueType = __esm({
1830
1883
  ["MISSING_X_FRAME_OPTIONS" /* MissingXFrameOptions */]: "Missing X-Frame-Options Header",
1831
1884
  ["IMPROPER_VALIDATION_OF_ARRAY_INDEX" /* ImproperValidationOfArrayIndex */]: "Improper Validation of Array Index",
1832
1885
  ["INCORRECT_INTEGER_CONVERSION" /* IncorrectIntegerConversion */]: "Incorrect Integer Conversion",
1833
- ["IMPROPER_CERTIFICATE_VALIDATION" /* ImproperCertificateValidation */]: "Improper Certificate Validation"
1886
+ ["IMPROPER_CERTIFICATE_VALIDATION" /* ImproperCertificateValidation */]: "Improper Certificate Validation",
1887
+ ["OFTEN_MISUSED_BOOLEAN_GET_BOOLEAN" /* OftenMisusedBooleanGetBoolean */]: "Often Misused: Boolean.getBoolean()"
1834
1888
  };
1835
1889
  issueTypeZ = z5.nativeEnum(IssueType_Enum);
1836
1890
  getIssueTypeFriendlyString = (issueType) => {
@@ -4384,6 +4438,18 @@ if (!semver.satisfies(process.version, packageJson.engines.node)) {
4384
4438
 
4385
4439
  // src/utils/gitUtils.ts
4386
4440
  import simpleGit from "simple-git";
4441
+ var tag = (sink) => (data, msg) => {
4442
+ if (msg) {
4443
+ const sanitizedMsg = String(msg).replace(/\n|\r/g, "");
4444
+ sink(`[GIT] ${sanitizedMsg}`, data);
4445
+ } else {
4446
+ sink("[GIT]", data);
4447
+ }
4448
+ };
4449
+ var defaultLogger = {
4450
+ debug: tag(console.log),
4451
+ warn: tag(console.warn)
4452
+ };
4387
4453
 
4388
4454
  // src/utils/index.ts
4389
4455
  var sleep = (ms = 2e3) => new Promise((r) => setTimeout(r, ms));
@@ -5037,7 +5103,8 @@ var fixDetailsData = {
5037
5103
  ["MISSING_X_FRAME_OPTIONS" /* MissingXFrameOptions */]: void 0,
5038
5104
  ["IMPROPER_VALIDATION_OF_ARRAY_INDEX" /* ImproperValidationOfArrayIndex */]: void 0,
5039
5105
  ["INCORRECT_INTEGER_CONVERSION" /* IncorrectIntegerConversion */]: void 0,
5040
- ["IMPROPER_CERTIFICATE_VALIDATION" /* ImproperCertificateValidation */]: void 0
5106
+ ["IMPROPER_CERTIFICATE_VALIDATION" /* ImproperCertificateValidation */]: void 0,
5107
+ ["OFTEN_MISUSED_BOOLEAN_GET_BOOLEAN" /* OftenMisusedBooleanGetBoolean */]: void 0
5041
5108
  };
5042
5109
 
5043
5110
  // src/features/analysis/scm/shared/src/commitDescriptionMarkup.ts
@@ -7174,7 +7241,8 @@ var GQLClient = class {
7174
7241
  repoUrl,
7175
7242
  reference,
7176
7243
  sha,
7177
- shouldScan
7244
+ shouldScan,
7245
+ baselineCommit
7178
7246
  }) {
7179
7247
  const res = await this._clientSdk.DigestVulnerabilityReport({
7180
7248
  fixReportId,
@@ -7183,7 +7251,8 @@ var GQLClient = class {
7183
7251
  scanSource,
7184
7252
  repoUrl,
7185
7253
  reference,
7186
- sha
7254
+ sha,
7255
+ baselineCommit
7187
7256
  });
7188
7257
  if (res.digestVulnerabilityReport.__typename !== "VulnerabilityReport") {
7189
7258
  throw new Error("Digesting vulnerability report failed");
@@ -7437,8 +7506,16 @@ var ADO_PAT_PATTERN = {
7437
7506
  severity: "high",
7438
7507
  validator: (match) => match.length >= 52 && match.length <= 100
7439
7508
  };
7509
+ var DATADOG_APP_KEY_PATTERN = {
7510
+ type: "DATADOG_APP_KEY",
7511
+ regex: /\bddapp_[a-zA-Z0-9]{30,}\b/g,
7512
+ priority: 95,
7513
+ placeholder: "[DATADOG_APP_KEY_{n}]",
7514
+ description: "Datadog Application Key",
7515
+ severity: "high"
7516
+ };
7440
7517
  var openRedaction = new OpenRedaction({
7441
- customPatterns: [ADO_PAT_PATTERN],
7518
+ customPatterns: [ADO_PAT_PATTERN, DATADOG_APP_KEY_PATTERN],
7442
7519
  patterns: [
7443
7520
  // Core Personal Data
7444
7521
  // Removed EMAIL - causes false positives in code/test snippets (e.g. --author="Eve Author <eve@example.com>")
@@ -8092,7 +8169,7 @@ function getStableComputerName() {
8092
8169
  }
8093
8170
 
8094
8171
  // src/args/commands/upload_ai_blame.ts
8095
- var defaultLogger = {
8172
+ var defaultLogger2 = {
8096
8173
  info: (msg, data) => {
8097
8174
  if (data !== void 0) {
8098
8175
  console.log(msg, data);
@@ -8309,7 +8386,7 @@ async function uploadAiBlameHandler(options) {
8309
8386
  exitOnError = true,
8310
8387
  apiUrl,
8311
8388
  webAppUrl,
8312
- logger = defaultLogger
8389
+ logger = defaultLogger2
8313
8390
  } = options;
8314
8391
  const prompts = args.prompt || [];
8315
8392
  const inferences = args.inference || [];