@bubblelab/bubble-core 0.1.250 → 0.1.252

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.
Files changed (71) hide show
  1. package/dist/bubble-bundle.d.ts +130 -89
  2. package/dist/bubble-factory.d.ts.map +1 -1
  3. package/dist/bubble-factory.js +3 -0
  4. package/dist/bubble-factory.js.map +1 -1
  5. package/dist/bubbles/service-bubble/agi-inc.d.ts +20 -20
  6. package/dist/bubbles/service-bubble/ai-agent.d.ts +4 -4
  7. package/dist/bubbles/service-bubble/apify/apify.d.ts +4 -4
  8. package/dist/bubbles/service-bubble/ashby/ashby.d.ts +56 -56
  9. package/dist/bubbles/service-bubble/ashby/ashby.d.ts.map +1 -1
  10. package/dist/bubbles/service-bubble/ashby/ashby.js.map +1 -1
  11. package/dist/bubbles/service-bubble/ashby/ashby.schema.d.ts +385 -385
  12. package/dist/bubbles/service-bubble/ashby/ashby.schema.d.ts.map +1 -1
  13. package/dist/bubbles/service-bubble/ashby/ashby.schema.js +6 -2
  14. package/dist/bubbles/service-bubble/ashby/ashby.schema.js.map +1 -1
  15. package/dist/bubbles/service-bubble/assembled/assembled.d.ts +6 -6
  16. package/dist/bubbles/service-bubble/attio/attio.d.ts +2 -2
  17. package/dist/bubbles/service-bubble/browserbase/browserbase.d.ts +2 -2
  18. package/dist/bubbles/service-bubble/crustdata/crustdata.d.ts +78 -78
  19. package/dist/bubbles/service-bubble/firecrawl.d.ts +176 -176
  20. package/dist/bubbles/service-bubble/followupboss.d.ts +8 -8
  21. package/dist/bubbles/service-bubble/github.d.ts +60 -60
  22. package/dist/bubbles/service-bubble/gmail.d.ts +64 -64
  23. package/dist/bubbles/service-bubble/google-calendar.d.ts +6 -6
  24. package/dist/bubbles/service-bubble/google-drive.d.ts +8 -8
  25. package/dist/bubbles/service-bubble/hubspot/hubspot.d.ts +2 -2
  26. package/dist/bubbles/service-bubble/jira/jira.d.ts +57 -38
  27. package/dist/bubbles/service-bubble/jira/jira.d.ts.map +1 -1
  28. package/dist/bubbles/service-bubble/jira/jira.js +77 -13
  29. package/dist/bubbles/service-bubble/jira/jira.js.map +1 -1
  30. package/dist/bubbles/service-bubble/notion/notion.d.ts +376 -376
  31. package/dist/bubbles/service-bubble/notion/property-schemas.d.ts +8 -8
  32. package/dist/bubbles/service-bubble/posthog/posthog.d.ts +2 -2
  33. package/dist/bubbles/service-bubble/sendsafely/sendsafely.d.ts +4 -4
  34. package/dist/bubbles/service-bubble/slab/slab.d.ts +16 -16
  35. package/dist/bubbles/service-bubble/slack/slack.d.ts +102 -102
  36. package/dist/bubbles/service-bubble/snowflake/index.d.ts +4 -0
  37. package/dist/bubbles/service-bubble/snowflake/index.d.ts.map +1 -0
  38. package/dist/bubbles/service-bubble/snowflake/index.js +4 -0
  39. package/dist/bubbles/service-bubble/snowflake/index.js.map +1 -0
  40. package/dist/bubbles/service-bubble/snowflake/snowflake.d.ts +354 -0
  41. package/dist/bubbles/service-bubble/snowflake/snowflake.d.ts.map +1 -0
  42. package/dist/bubbles/service-bubble/snowflake/snowflake.js +285 -0
  43. package/dist/bubbles/service-bubble/snowflake/snowflake.js.map +1 -0
  44. package/dist/bubbles/service-bubble/snowflake/snowflake.schema.d.ts +321 -0
  45. package/dist/bubbles/service-bubble/snowflake/snowflake.schema.d.ts.map +1 -0
  46. package/dist/bubbles/service-bubble/snowflake/snowflake.schema.js +198 -0
  47. package/dist/bubbles/service-bubble/snowflake/snowflake.schema.js.map +1 -0
  48. package/dist/bubbles/service-bubble/snowflake/snowflake.utils.d.ts +44 -0
  49. package/dist/bubbles/service-bubble/snowflake/snowflake.utils.d.ts.map +1 -0
  50. package/dist/bubbles/service-bubble/snowflake/snowflake.utils.js +97 -0
  51. package/dist/bubbles/service-bubble/snowflake/snowflake.utils.js.map +1 -0
  52. package/dist/bubbles/service-bubble/stripe/stripe.d.ts +14 -14
  53. package/dist/bubbles/service-bubble/xero/xero.d.ts +2 -2
  54. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.d.ts +2 -2
  55. package/dist/bubbles/tool-bubble/app-rankings-tool.d.ts +8 -8
  56. package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.d.ts +4 -4
  57. package/dist/bubbles/tool-bubble/company-enrichment-tool.d.ts +10 -10
  58. package/dist/bubbles/tool-bubble/linkedin-tool.d.ts +12 -12
  59. package/dist/bubbles/tool-bubble/people-search-tool.d.ts +34 -34
  60. package/dist/bubbles/tool-bubble/reddit-scrape-tool.d.ts +10 -10
  61. package/dist/bubbles/tool-bubble/research-agent-tool.d.ts +4 -4
  62. package/dist/bubbles/tool-bubble/yc-scraper-tool.d.ts +4 -4
  63. package/dist/bubbles/workflow-bubble/pdf-ocr.workflow.d.ts +16 -16
  64. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.d.ts +2 -2
  65. package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts +10 -10
  66. package/dist/bubbles.json +516 -2
  67. package/dist/index.d.ts +3 -1
  68. package/dist/index.d.ts.map +1 -1
  69. package/dist/index.js +1 -0
  70. package/dist/index.js.map +1 -1
  71. package/package.json +2 -2
@@ -123,12 +123,12 @@ declare const GoogleCalendarParamsSchema: z.ZodDiscriminatedUnion<"operation", [
123
123
  dateTime?: string | undefined;
124
124
  };
125
125
  operation: "create_event";
126
+ calendar_id: string;
126
127
  end: {
127
128
  date?: string | undefined;
128
129
  timeZone?: string | undefined;
129
130
  dateTime?: string | undefined;
130
131
  };
131
- calendar_id: string;
132
132
  conference: boolean;
133
133
  description?: string | undefined;
134
134
  credentials?: Partial<Record<CredentialType, string>> | undefined;
@@ -155,13 +155,13 @@ declare const GoogleCalendarParamsSchema: z.ZodDiscriminatedUnion<"operation", [
155
155
  description?: string | undefined;
156
156
  credentials?: Partial<Record<CredentialType, string>> | undefined;
157
157
  location?: string | undefined;
158
+ calendar_id?: string | undefined;
158
159
  attendees?: {
159
160
  email: string;
160
161
  optional?: boolean | undefined;
161
162
  displayName?: string | undefined;
162
163
  responseStatus?: "needsAction" | "declined" | "tentative" | "accepted" | undefined;
163
164
  }[] | undefined;
164
- calendar_id?: string | undefined;
165
165
  conference?: boolean | undefined;
166
166
  }>, z.ZodObject<{
167
167
  operation: z.ZodLiteral<"update_event">;
@@ -249,6 +249,7 @@ declare const GoogleCalendarParamsSchema: z.ZodDiscriminatedUnion<"operation", [
249
249
  dateTime?: string | undefined;
250
250
  } | undefined;
251
251
  location?: string | undefined;
252
+ calendar_id?: string | undefined;
252
253
  end?: {
253
254
  date?: string | undefined;
254
255
  timeZone?: string | undefined;
@@ -260,7 +261,6 @@ declare const GoogleCalendarParamsSchema: z.ZodDiscriminatedUnion<"operation", [
260
261
  displayName?: string | undefined;
261
262
  responseStatus?: "needsAction" | "declined" | "tentative" | "accepted" | undefined;
262
263
  }[] | undefined;
263
- calendar_id?: string | undefined;
264
264
  }>, z.ZodObject<{
265
265
  operation: z.ZodLiteral<"delete_event">;
266
266
  calendar_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
@@ -2206,12 +2206,12 @@ export declare class GoogleCalendarBubble<T extends GoogleCalendarParams = Googl
2206
2206
  dateTime?: string | undefined;
2207
2207
  };
2208
2208
  operation: "create_event";
2209
+ calendar_id: string;
2209
2210
  end: {
2210
2211
  date?: string | undefined;
2211
2212
  timeZone?: string | undefined;
2212
2213
  dateTime?: string | undefined;
2213
2214
  };
2214
- calendar_id: string;
2215
2215
  conference: boolean;
2216
2216
  description?: string | undefined;
2217
2217
  credentials?: Partial<Record<CredentialType, string>> | undefined;
@@ -2238,13 +2238,13 @@ export declare class GoogleCalendarBubble<T extends GoogleCalendarParams = Googl
2238
2238
  description?: string | undefined;
2239
2239
  credentials?: Partial<Record<CredentialType, string>> | undefined;
2240
2240
  location?: string | undefined;
2241
+ calendar_id?: string | undefined;
2241
2242
  attendees?: {
2242
2243
  email: string;
2243
2244
  optional?: boolean | undefined;
2244
2245
  displayName?: string | undefined;
2245
2246
  responseStatus?: "needsAction" | "declined" | "tentative" | "accepted" | undefined;
2246
2247
  }[] | undefined;
2247
- calendar_id?: string | undefined;
2248
2248
  conference?: boolean | undefined;
2249
2249
  }>, z.ZodObject<{
2250
2250
  operation: z.ZodLiteral<"update_event">;
@@ -2332,6 +2332,7 @@ export declare class GoogleCalendarBubble<T extends GoogleCalendarParams = Googl
2332
2332
  dateTime?: string | undefined;
2333
2333
  } | undefined;
2334
2334
  location?: string | undefined;
2335
+ calendar_id?: string | undefined;
2335
2336
  end?: {
2336
2337
  date?: string | undefined;
2337
2338
  timeZone?: string | undefined;
@@ -2343,7 +2344,6 @@ export declare class GoogleCalendarBubble<T extends GoogleCalendarParams = Googl
2343
2344
  displayName?: string | undefined;
2344
2345
  responseStatus?: "needsAction" | "declined" | "tentative" | "accepted" | undefined;
2345
2346
  }[] | undefined;
2346
- calendar_id?: string | undefined;
2347
2347
  }>, z.ZodObject<{
2348
2348
  operation: z.ZodLiteral<"delete_event">;
2349
2349
  calendar_id: z.ZodDefault<z.ZodOptional<z.ZodString>>;
@@ -15,15 +15,15 @@ declare const GoogleDriveParamsSchema: z.ZodDiscriminatedUnion<"operation", [z.Z
15
15
  content: string;
16
16
  operation: "upload_file";
17
17
  convert_to_google_docs: boolean;
18
- credentials?: Partial<Record<CredentialType, string>> | undefined;
19
18
  mimeType?: string | undefined;
19
+ credentials?: Partial<Record<CredentialType, string>> | undefined;
20
20
  parent_folder_id?: string | undefined;
21
21
  }, {
22
22
  name: string;
23
23
  content: string;
24
24
  operation: "upload_file";
25
- credentials?: Partial<Record<CredentialType, string>> | undefined;
26
25
  mimeType?: string | undefined;
26
+ credentials?: Partial<Record<CredentialType, string>> | undefined;
27
27
  parent_folder_id?: string | undefined;
28
28
  convert_to_google_docs?: boolean | undefined;
29
29
  }>, z.ZodObject<{
@@ -358,15 +358,15 @@ declare const GoogleDriveResultSchema: z.ZodDiscriminatedUnion<"operation", [z.Z
358
358
  error: string;
359
359
  success: boolean;
360
360
  operation: "download_file";
361
- mimeType?: string | undefined;
362
361
  content?: string | undefined;
362
+ mimeType?: string | undefined;
363
363
  filename?: string | undefined;
364
364
  }, {
365
365
  error: string;
366
366
  success: boolean;
367
367
  operation: "download_file";
368
- mimeType?: string | undefined;
369
368
  content?: string | undefined;
369
+ mimeType?: string | undefined;
370
370
  filename?: string | undefined;
371
371
  }>, z.ZodObject<{
372
372
  operation: z.ZodLiteral<"list_files">;
@@ -932,15 +932,15 @@ export declare class GoogleDriveBubble<T extends GoogleDriveParams = GoogleDrive
932
932
  content: string;
933
933
  operation: "upload_file";
934
934
  convert_to_google_docs: boolean;
935
- credentials?: Partial<Record<CredentialType, string>> | undefined;
936
935
  mimeType?: string | undefined;
936
+ credentials?: Partial<Record<CredentialType, string>> | undefined;
937
937
  parent_folder_id?: string | undefined;
938
938
  }, {
939
939
  name: string;
940
940
  content: string;
941
941
  operation: "upload_file";
942
- credentials?: Partial<Record<CredentialType, string>> | undefined;
943
942
  mimeType?: string | undefined;
943
+ credentials?: Partial<Record<CredentialType, string>> | undefined;
944
944
  parent_folder_id?: string | undefined;
945
945
  convert_to_google_docs?: boolean | undefined;
946
946
  }>, z.ZodObject<{
@@ -1275,15 +1275,15 @@ export declare class GoogleDriveBubble<T extends GoogleDriveParams = GoogleDrive
1275
1275
  error: string;
1276
1276
  success: boolean;
1277
1277
  operation: "download_file";
1278
- mimeType?: string | undefined;
1279
1278
  content?: string | undefined;
1279
+ mimeType?: string | undefined;
1280
1280
  filename?: string | undefined;
1281
1281
  }, {
1282
1282
  error: string;
1283
1283
  success: boolean;
1284
1284
  operation: "download_file";
1285
- mimeType?: string | undefined;
1286
1285
  content?: string | undefined;
1286
+ mimeType?: string | undefined;
1287
1287
  filename?: string | undefined;
1288
1288
  }>, z.ZodObject<{
1289
1289
  operation: z.ZodLiteral<"list_files">;
@@ -516,13 +516,13 @@ export declare class HubSpotBubble<T extends HubSpotParamsInput = HubSpotParamsI
516
516
  }, "strip", import("zod").ZodTypeAny, {
517
517
  operation: "list_owners";
518
518
  limit: number;
519
- credentials?: Partial<Record<CredentialType, string>> | undefined;
520
519
  email?: string | undefined;
520
+ credentials?: Partial<Record<CredentialType, string>> | undefined;
521
521
  after?: string | undefined;
522
522
  }, {
523
523
  operation: "list_owners";
524
- credentials?: Partial<Record<CredentialType, string>> | undefined;
525
524
  email?: string | undefined;
525
+ credentials?: Partial<Record<CredentialType, string>> | undefined;
526
526
  limit?: number | undefined;
527
527
  after?: string | undefined;
528
528
  }>, import("zod").ZodObject<{
@@ -71,13 +71,13 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
71
71
  operation: "get";
72
72
  credentials?: Partial<Record<CredentialType, string>> | undefined;
73
73
  fields?: string[] | undefined;
74
- expand?: ("comments" | "changelog" | "transitions")[] | undefined;
74
+ expand?: ("comments" | "transitions" | "changelog")[] | undefined;
75
75
  }, {
76
76
  key: string;
77
77
  operation: "get";
78
78
  credentials?: Partial<Record<CredentialType, string>> | undefined;
79
79
  fields?: string[] | undefined;
80
- expand?: ("comments" | "changelog" | "transitions")[] | undefined;
80
+ expand?: ("comments" | "transitions" | "changelog")[] | undefined;
81
81
  }>, import("zod").ZodObject<{
82
82
  operation: import("zod").ZodLiteral<"create">;
83
83
  project: import("zod").ZodString;
@@ -1431,8 +1431,8 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
1431
1431
  }, import("zod").ZodTypeAny, "passthrough">>, "many">>;
1432
1432
  changelog: import("zod").ZodOptional<import("zod").ZodUnknown>;
1433
1433
  }, "strip", import("zod").ZodTypeAny, {
1434
- id?: string | undefined;
1435
1434
  key?: string | undefined;
1435
+ id?: string | undefined;
1436
1436
  fields?: import("zod").objectOutputType<{
1437
1437
  summary: import("zod").ZodOptional<import("zod").ZodString>;
1438
1438
  description: import("zod").ZodOptional<import("zod").ZodUnknown>;
@@ -1770,7 +1770,8 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
1770
1770
  total: import("zod").ZodOptional<import("zod").ZodNumber>;
1771
1771
  }, import("zod").ZodTypeAny, "passthrough">>>;
1772
1772
  }, import("zod").ZodTypeAny, "passthrough"> | undefined;
1773
- changelog?: unknown;
1773
+ expand?: string | undefined;
1774
+ self?: string | undefined;
1774
1775
  transitions?: import("zod").objectOutputType<{
1775
1776
  id: import("zod").ZodString;
1776
1777
  name: import("zod").ZodString;
@@ -1815,11 +1816,10 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
1815
1816
  }, import("zod").ZodTypeAny, "passthrough">>>;
1816
1817
  }, import("zod").ZodTypeAny, "passthrough">>>;
1817
1818
  }, import("zod").ZodTypeAny, "passthrough">[] | undefined;
1818
- expand?: string | undefined;
1819
- self?: string | undefined;
1819
+ changelog?: unknown;
1820
1820
  }, {
1821
- id?: string | undefined;
1822
1821
  key?: string | undefined;
1822
+ id?: string | undefined;
1823
1823
  fields?: import("zod").objectInputType<{
1824
1824
  summary: import("zod").ZodOptional<import("zod").ZodString>;
1825
1825
  description: import("zod").ZodOptional<import("zod").ZodUnknown>;
@@ -2157,7 +2157,8 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
2157
2157
  total: import("zod").ZodOptional<import("zod").ZodNumber>;
2158
2158
  }, import("zod").ZodTypeAny, "passthrough">>>;
2159
2159
  }, import("zod").ZodTypeAny, "passthrough"> | undefined;
2160
- changelog?: unknown;
2160
+ expand?: string | undefined;
2161
+ self?: string | undefined;
2161
2162
  transitions?: import("zod").objectInputType<{
2162
2163
  id: import("zod").ZodString;
2163
2164
  name: import("zod").ZodString;
@@ -2202,8 +2203,7 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
2202
2203
  }, import("zod").ZodTypeAny, "passthrough">>>;
2203
2204
  }, import("zod").ZodTypeAny, "passthrough">>>;
2204
2205
  }, import("zod").ZodTypeAny, "passthrough">[] | undefined;
2205
- expand?: string | undefined;
2206
- self?: string | undefined;
2206
+ changelog?: unknown;
2207
2207
  }>, "many">>;
2208
2208
  total: import("zod").ZodOptional<import("zod").ZodNumber>;
2209
2209
  offset: import("zod").ZodOptional<import("zod").ZodNumber>;
@@ -2214,8 +2214,8 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
2214
2214
  success: boolean;
2215
2215
  operation: "search";
2216
2216
  issues?: {
2217
- id?: string | undefined;
2218
2217
  key?: string | undefined;
2218
+ id?: string | undefined;
2219
2219
  fields?: import("zod").objectOutputType<{
2220
2220
  summary: import("zod").ZodOptional<import("zod").ZodString>;
2221
2221
  description: import("zod").ZodOptional<import("zod").ZodUnknown>;
@@ -2553,7 +2553,8 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
2553
2553
  total: import("zod").ZodOptional<import("zod").ZodNumber>;
2554
2554
  }, import("zod").ZodTypeAny, "passthrough">>>;
2555
2555
  }, import("zod").ZodTypeAny, "passthrough"> | undefined;
2556
- changelog?: unknown;
2556
+ expand?: string | undefined;
2557
+ self?: string | undefined;
2557
2558
  transitions?: import("zod").objectOutputType<{
2558
2559
  id: import("zod").ZodString;
2559
2560
  name: import("zod").ZodString;
@@ -2598,8 +2599,7 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
2598
2599
  }, import("zod").ZodTypeAny, "passthrough">>>;
2599
2600
  }, import("zod").ZodTypeAny, "passthrough">>>;
2600
2601
  }, import("zod").ZodTypeAny, "passthrough">[] | undefined;
2601
- expand?: string | undefined;
2602
- self?: string | undefined;
2602
+ changelog?: unknown;
2603
2603
  }[] | undefined;
2604
2604
  limit?: number | undefined;
2605
2605
  offset?: number | undefined;
@@ -2609,8 +2609,8 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
2609
2609
  success: boolean;
2610
2610
  operation: "search";
2611
2611
  issues?: {
2612
- id?: string | undefined;
2613
2612
  key?: string | undefined;
2613
+ id?: string | undefined;
2614
2614
  fields?: import("zod").objectInputType<{
2615
2615
  summary: import("zod").ZodOptional<import("zod").ZodString>;
2616
2616
  description: import("zod").ZodOptional<import("zod").ZodUnknown>;
@@ -2948,7 +2948,8 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
2948
2948
  total: import("zod").ZodOptional<import("zod").ZodNumber>;
2949
2949
  }, import("zod").ZodTypeAny, "passthrough">>>;
2950
2950
  }, import("zod").ZodTypeAny, "passthrough"> | undefined;
2951
- changelog?: unknown;
2951
+ expand?: string | undefined;
2952
+ self?: string | undefined;
2952
2953
  transitions?: import("zod").objectInputType<{
2953
2954
  id: import("zod").ZodString;
2954
2955
  name: import("zod").ZodString;
@@ -2993,8 +2994,7 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
2993
2994
  }, import("zod").ZodTypeAny, "passthrough">>>;
2994
2995
  }, import("zod").ZodTypeAny, "passthrough">>>;
2995
2996
  }, import("zod").ZodTypeAny, "passthrough">[] | undefined;
2996
- expand?: string | undefined;
2997
- self?: string | undefined;
2997
+ changelog?: unknown;
2998
2998
  }[] | undefined;
2999
2999
  limit?: number | undefined;
3000
3000
  offset?: number | undefined;
@@ -4148,8 +4148,8 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
4148
4148
  }, import("zod").ZodTypeAny, "passthrough">>, "many">>;
4149
4149
  changelog: import("zod").ZodOptional<import("zod").ZodUnknown>;
4150
4150
  }, "strip", import("zod").ZodTypeAny, {
4151
- id?: string | undefined;
4152
4151
  key?: string | undefined;
4152
+ id?: string | undefined;
4153
4153
  fields?: import("zod").objectOutputType<{
4154
4154
  summary: import("zod").ZodOptional<import("zod").ZodString>;
4155
4155
  description: import("zod").ZodOptional<import("zod").ZodUnknown>;
@@ -4487,7 +4487,8 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
4487
4487
  total: import("zod").ZodOptional<import("zod").ZodNumber>;
4488
4488
  }, import("zod").ZodTypeAny, "passthrough">>>;
4489
4489
  }, import("zod").ZodTypeAny, "passthrough"> | undefined;
4490
- changelog?: unknown;
4490
+ expand?: string | undefined;
4491
+ self?: string | undefined;
4491
4492
  transitions?: import("zod").objectOutputType<{
4492
4493
  id: import("zod").ZodString;
4493
4494
  name: import("zod").ZodString;
@@ -4532,11 +4533,10 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
4532
4533
  }, import("zod").ZodTypeAny, "passthrough">>>;
4533
4534
  }, import("zod").ZodTypeAny, "passthrough">>>;
4534
4535
  }, import("zod").ZodTypeAny, "passthrough">[] | undefined;
4535
- expand?: string | undefined;
4536
- self?: string | undefined;
4536
+ changelog?: unknown;
4537
4537
  }, {
4538
- id?: string | undefined;
4539
4538
  key?: string | undefined;
4539
+ id?: string | undefined;
4540
4540
  fields?: import("zod").objectInputType<{
4541
4541
  summary: import("zod").ZodOptional<import("zod").ZodString>;
4542
4542
  description: import("zod").ZodOptional<import("zod").ZodUnknown>;
@@ -4874,7 +4874,8 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
4874
4874
  total: import("zod").ZodOptional<import("zod").ZodNumber>;
4875
4875
  }, import("zod").ZodTypeAny, "passthrough">>>;
4876
4876
  }, import("zod").ZodTypeAny, "passthrough"> | undefined;
4877
- changelog?: unknown;
4877
+ expand?: string | undefined;
4878
+ self?: string | undefined;
4878
4879
  transitions?: import("zod").objectInputType<{
4879
4880
  id: import("zod").ZodString;
4880
4881
  name: import("zod").ZodString;
@@ -4919,8 +4920,7 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
4919
4920
  }, import("zod").ZodTypeAny, "passthrough">>>;
4920
4921
  }, import("zod").ZodTypeAny, "passthrough">>>;
4921
4922
  }, import("zod").ZodTypeAny, "passthrough">[] | undefined;
4922
- expand?: string | undefined;
4923
- self?: string | undefined;
4923
+ changelog?: unknown;
4924
4924
  }>>;
4925
4925
  error: import("zod").ZodString;
4926
4926
  }, "strip", import("zod").ZodTypeAny, {
@@ -4928,8 +4928,8 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
4928
4928
  success: boolean;
4929
4929
  operation: "get";
4930
4930
  issue?: {
4931
- id?: string | undefined;
4932
4931
  key?: string | undefined;
4932
+ id?: string | undefined;
4933
4933
  fields?: import("zod").objectOutputType<{
4934
4934
  summary: import("zod").ZodOptional<import("zod").ZodString>;
4935
4935
  description: import("zod").ZodOptional<import("zod").ZodUnknown>;
@@ -5267,7 +5267,8 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
5267
5267
  total: import("zod").ZodOptional<import("zod").ZodNumber>;
5268
5268
  }, import("zod").ZodTypeAny, "passthrough">>>;
5269
5269
  }, import("zod").ZodTypeAny, "passthrough"> | undefined;
5270
- changelog?: unknown;
5270
+ expand?: string | undefined;
5271
+ self?: string | undefined;
5271
5272
  transitions?: import("zod").objectOutputType<{
5272
5273
  id: import("zod").ZodString;
5273
5274
  name: import("zod").ZodString;
@@ -5312,16 +5313,15 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
5312
5313
  }, import("zod").ZodTypeAny, "passthrough">>>;
5313
5314
  }, import("zod").ZodTypeAny, "passthrough">>>;
5314
5315
  }, import("zod").ZodTypeAny, "passthrough">[] | undefined;
5315
- expand?: string | undefined;
5316
- self?: string | undefined;
5316
+ changelog?: unknown;
5317
5317
  } | undefined;
5318
5318
  }, {
5319
5319
  error: string;
5320
5320
  success: boolean;
5321
5321
  operation: "get";
5322
5322
  issue?: {
5323
- id?: string | undefined;
5324
5323
  key?: string | undefined;
5324
+ id?: string | undefined;
5325
5325
  fields?: import("zod").objectInputType<{
5326
5326
  summary: import("zod").ZodOptional<import("zod").ZodString>;
5327
5327
  description: import("zod").ZodOptional<import("zod").ZodUnknown>;
@@ -5659,7 +5659,8 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
5659
5659
  total: import("zod").ZodOptional<import("zod").ZodNumber>;
5660
5660
  }, import("zod").ZodTypeAny, "passthrough">>>;
5661
5661
  }, import("zod").ZodTypeAny, "passthrough"> | undefined;
5662
- changelog?: unknown;
5662
+ expand?: string | undefined;
5663
+ self?: string | undefined;
5663
5664
  transitions?: import("zod").objectInputType<{
5664
5665
  id: import("zod").ZodString;
5665
5666
  name: import("zod").ZodString;
@@ -5704,8 +5705,7 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
5704
5705
  }, import("zod").ZodTypeAny, "passthrough">>>;
5705
5706
  }, import("zod").ZodTypeAny, "passthrough">>>;
5706
5707
  }, import("zod").ZodTypeAny, "passthrough">[] | undefined;
5707
- expand?: string | undefined;
5708
- self?: string | undefined;
5708
+ changelog?: unknown;
5709
5709
  } | undefined;
5710
5710
  }>, import("zod").ZodObject<{
5711
5711
  operation: import("zod").ZodLiteral<"create">;
@@ -5715,12 +5715,12 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
5715
5715
  key: import("zod").ZodString;
5716
5716
  self: import("zod").ZodOptional<import("zod").ZodString>;
5717
5717
  }, "strip", import("zod").ZodTypeAny, {
5718
- id: string;
5719
5718
  key: string;
5719
+ id: string;
5720
5720
  self?: string | undefined;
5721
5721
  }, {
5722
- id: string;
5723
5722
  key: string;
5723
+ id: string;
5724
5724
  self?: string | undefined;
5725
5725
  }>>;
5726
5726
  error: import("zod").ZodString;
@@ -5729,8 +5729,8 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
5729
5729
  success: boolean;
5730
5730
  operation: "create";
5731
5731
  issue?: {
5732
- id: string;
5733
5732
  key: string;
5733
+ id: string;
5734
5734
  self?: string | undefined;
5735
5735
  } | undefined;
5736
5736
  }, {
@@ -5738,8 +5738,8 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
5738
5738
  success: boolean;
5739
5739
  operation: "create";
5740
5740
  issue?: {
5741
- id: string;
5742
5741
  key: string;
5742
+ id: string;
5743
5743
  self?: string | undefined;
5744
5744
  } | undefined;
5745
5745
  }>, import("zod").ZodObject<{
@@ -6442,7 +6442,26 @@ export declare class JiraBubble<T extends JiraParamsInput = JiraParamsInput> ext
6442
6442
  * @returns The resolved accountId
6443
6443
  * @throws Error if assignee is an email but no user is found
6444
6444
  */
6445
+ /**
6446
+ * Check whether a string looks like a Jira accountId.
6447
+ * Account IDs are typically long alphanumeric strings like
6448
+ * "712020:66367503-6f4e-473d-953e-f63339075775" or "5f3b2c1a8e9d4f0012345678".
6449
+ */
6450
+ private isAccountId;
6451
+ /**
6452
+ * Resolve an assignee string (display name, email, or accountId) to a Jira accountId.
6453
+ * - If it looks like an accountId already, return as-is
6454
+ * - If it contains '@', search by email
6455
+ * - Otherwise, search by display name
6456
+ */
6445
6457
  private resolveAssigneeAccountId;
6458
+ /**
6459
+ * Pre-process a JQL string to resolve display names in assignee/reporter clauses
6460
+ * to account IDs. Jira Cloud GDPR changes require accountIds in JQL.
6461
+ *
6462
+ * Handles: assignee = "Display Name", reporter = "Display Name"
6463
+ */
6464
+ private resolveJqlUserReferences;
6446
6465
  protected performAction(context?: BubbleContext): Promise<Extract<JiraResult, {
6447
6466
  operation: T['operation'];
6448
6467
  }>>;
@@ -1 +1 @@
1
- {"version":3,"file":"jira.d.ts","sourceRoot":"","sources":["../../../../src/bubbles/service-bubble/jira/jira.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EACL,cAAc,EAEf,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAIL,KAAK,eAAe,EACpB,KAAK,UAAU,EAahB,MAAM,kBAAkB,CAAC;AAS1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,UAAU,CACrB,CAAC,SAAS,eAAe,GAAG,eAAe,CAC3C,SAAQ,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,EAAE;IAAE,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,CAAA;CAAE,CAAC,CAAC;IAC5E,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAG,SAAS,CAAU;IAC1C,MAAM,CAAC,QAAQ,CAAC,OAAO,UAAU;IACjC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAG,OAAO,CAAU;IAC5C,MAAM,CAAC,QAAQ,CAAC,UAAU,UAAU;IACpC,MAAM,CAAC,QAAQ,CAAC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAAoB;IAC1C,MAAM,CAAC,QAAQ,CAAC,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAAoB;IAChD,MAAM,CAAC,QAAQ,CAAC,gBAAgB,gEAC+B;IAC/D,MAAM,CAAC,QAAQ,CAAC,eAAe,2qCA2B7B;IACF,MAAM,CAAC,QAAQ,CAAC,KAAK,UAAU;gBAEnB,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,aAAa;IAIjC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAc/C;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;YAqCV,kBAAkB;IAsDhC;;;;;;;;OAQG;YACW,wBAAwB;cAyDtB,aAAa,CAC3B,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE;QAAE,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,CAAA;KAAE,CAAC,CAAC;YA6DhD,MAAM;YAiGN,GAAG;YAoEH,MAAM;YA6EN,MAAM;YA6GN,UAAU;YA4EV,eAAe;YAyBf,YAAY;YA6BZ,cAAc;YAkCd,eAAe;YA2Ff,UAAU;YA4BV,WAAW;IA4CzB,SAAS,CAAC,gBAAgB,IAAI,MAAM,GAAG,SAAS;CAYjD"}
1
+ {"version":3,"file":"jira.d.ts","sourceRoot":"","sources":["../../../../src/bubbles/service-bubble/jira/jira.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EACL,cAAc,EAEf,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAIL,KAAK,eAAe,EACpB,KAAK,UAAU,EAahB,MAAM,kBAAkB,CAAC;AAS1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,UAAU,CACrB,CAAC,SAAS,eAAe,GAAG,eAAe,CAC3C,SAAQ,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,EAAE;IAAE,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,CAAA;CAAE,CAAC,CAAC;IAC5E,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAG,SAAS,CAAU;IAC1C,MAAM,CAAC,QAAQ,CAAC,OAAO,UAAU;IACjC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAG,OAAO,CAAU;IAC5C,MAAM,CAAC,QAAQ,CAAC,UAAU,UAAU;IACpC,MAAM,CAAC,QAAQ,CAAC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAAoB;IAC1C,MAAM,CAAC,QAAQ,CAAC,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAAoB;IAChD,MAAM,CAAC,QAAQ,CAAC,gBAAgB,gEAC+B;IAC/D,MAAM,CAAC,QAAQ,CAAC,eAAe,2qCA2B7B;IACF,MAAM,CAAC,QAAQ,CAAC,KAAK,UAAU;gBAEnB,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,aAAa;IAIjC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAc/C;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;YAqCV,kBAAkB;IAsDhC;;;;;;;;OAQG;IACH;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAInB;;;;;OAKG;YACW,wBAAwB;IA0EtC;;;;;OAKG;YACW,wBAAwB;cAqCtB,aAAa,CAC3B,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE;QAAE,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,CAAA;KAAE,CAAC,CAAC;YA6DhD,MAAM;YAoGN,GAAG;YAoEH,MAAM;YA6EN,MAAM;YA6GN,UAAU;YA4EV,eAAe;YAyBf,YAAY;YA6BZ,cAAc;YAkCd,eAAe;YA2Ff,UAAU;YA4BV,WAAW;IA4CzB,SAAS,CAAC,gBAAgB,IAAI,MAAM,GAAG,SAAS;CAYjD"}
@@ -155,39 +155,101 @@ export class JiraBubble extends ServiceBubble {
155
155
  * @returns The resolved accountId
156
156
  * @throws Error if assignee is an email but no user is found
157
157
  */
158
+ /**
159
+ * Check whether a string looks like a Jira accountId.
160
+ * Account IDs are typically long alphanumeric strings like
161
+ * "712020:66367503-6f4e-473d-953e-f63339075775" or "5f3b2c1a8e9d4f0012345678".
162
+ */
163
+ isAccountId(value) {
164
+ return /^[0-9a-f]{24}$/.test(value) || /^\d+:[0-9a-f-]+$/.test(value);
165
+ }
166
+ /**
167
+ * Resolve an assignee string (display name, email, or accountId) to a Jira accountId.
168
+ * - If it looks like an accountId already, return as-is
169
+ * - If it contains '@', search by email
170
+ * - Otherwise, search by display name
171
+ */
158
172
  async resolveAssigneeAccountId(assignee) {
159
- // If it doesn't contain '@', assume it's already an accountId
160
- if (!assignee.includes('@')) {
173
+ // Special values that Jira handles natively
174
+ if (assignee === 'currentUser()')
175
+ return assignee;
176
+ // If it already looks like an accountId, return as-is
177
+ if (this.isAccountId(assignee)) {
161
178
  return assignee;
162
179
  }
163
- // It's an email, look up the user
180
+ // Search Jira for the user (works for both email and display name)
164
181
  const queryParams = new URLSearchParams({
165
182
  query: assignee,
166
183
  });
167
184
  try {
168
185
  const response = await this.makeJiraApiRequest(`/rest/api/3/user/search?${queryParams.toString()}`, 'GET');
169
- // Jira user search API returns an array directly
170
- // Handle both array response and object-wrapped response
171
186
  const usersArray = Array.isArray(response)
172
187
  ? response
173
188
  : response.values;
174
189
  if (!Array.isArray(usersArray) || usersArray.length === 0) {
175
- throw new Error(`No user found with email "${assignee}". Please verify the email address or use an accountId instead.`);
190
+ throw new Error(`No user found matching "${assignee}". Please verify the name, email, or use an accountId instead.`);
176
191
  }
177
192
  const users = usersArray;
178
- // Find exact email match (case-insensitive)
179
- const matchingUser = users.find((user) => user.emailAddress?.toLowerCase() === assignee.toLowerCase());
180
- if (!matchingUser || !matchingUser.accountId) {
181
- throw new Error(`No user found with email "${assignee}". Please verify the email address or use an accountId instead.`);
193
+ // Try exact email match first (case-insensitive)
194
+ if (assignee.includes('@')) {
195
+ const emailMatch = users.find((user) => user.emailAddress?.toLowerCase() === assignee.toLowerCase());
196
+ if (emailMatch?.accountId)
197
+ return emailMatch.accountId;
182
198
  }
183
- return matchingUser.accountId;
199
+ // Try exact display name match (case-insensitive)
200
+ const nameMatch = users.find((user) => user.displayName?.toLowerCase() === assignee.toLowerCase());
201
+ if (nameMatch?.accountId)
202
+ return nameMatch.accountId;
203
+ // Fall back to first result if only one user returned
204
+ if (users.length === 1 && users[0].accountId) {
205
+ return users[0].accountId;
206
+ }
207
+ // Multiple ambiguous results
208
+ const userList = users
209
+ .slice(0, 5)
210
+ .map((u) => `"${u.displayName}" (${u.emailAddress ?? u.accountId})`)
211
+ .join(', ');
212
+ throw new Error(`Multiple users match "${assignee}": ${userList}. Please use a more specific name, email, or accountId.`);
184
213
  }
185
214
  catch (error) {
186
215
  if (error instanceof Error) {
187
216
  throw error;
188
217
  }
189
- throw new Error(`Failed to lookup user with email "${assignee}": ${String(error)}`);
218
+ throw new Error(`Failed to lookup user "${assignee}": ${String(error)}`);
219
+ }
220
+ }
221
+ /**
222
+ * Pre-process a JQL string to resolve display names in assignee/reporter clauses
223
+ * to account IDs. Jira Cloud GDPR changes require accountIds in JQL.
224
+ *
225
+ * Handles: assignee = "Display Name", reporter = "Display Name"
226
+ */
227
+ async resolveJqlUserReferences(jql) {
228
+ // Match patterns like: assignee = "Some Name" or reporter = "Some Name"
229
+ // Also handles: assignee = 'Some Name' (single quotes)
230
+ const userFieldPattern = /\b(assignee|reporter)\s*=\s*["']([^"']+)["']/gi;
231
+ let resolvedJql = jql;
232
+ const matches = [...jql.matchAll(userFieldPattern)];
233
+ for (const match of matches) {
234
+ const [fullMatch, field, value] = match;
235
+ // Skip special JQL functions and values that look like accountIds
236
+ if (value === 'currentUser()' ||
237
+ value === 'EMPTY' ||
238
+ value === 'empty' ||
239
+ this.isAccountId(value)) {
240
+ continue;
241
+ }
242
+ try {
243
+ const accountId = await this.resolveAssigneeAccountId(value);
244
+ if (accountId !== value) {
245
+ resolvedJql = resolvedJql.replace(fullMatch, `${field} = "${accountId}"`);
246
+ }
247
+ }
248
+ catch {
249
+ // If resolution fails, leave the original JQL — Jira will return its own error
250
+ }
190
251
  }
252
+ return resolvedJql;
191
253
  }
192
254
  async performAction(context) {
193
255
  void context;
@@ -236,7 +298,9 @@ export class JiraBubble extends ServiceBubble {
236
298
  // CORE OPERATION 1: search
237
299
  // -------------------------------------------------------------------------
238
300
  async search(params) {
239
- const { jql, limit, offset, fields } = params;
301
+ const { jql: rawJql, limit, offset, fields } = params;
302
+ // Resolve display names in assignee/reporter to accountIds (Jira Cloud GDPR)
303
+ const jql = await this.resolveJqlUserReferences(rawJql);
240
304
  const queryParams = new URLSearchParams({
241
305
  jql,
242
306
  startAt: String(offset ?? 0),