@bubblelab/bubble-core 0.1.8 → 0.1.10

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 (224) hide show
  1. package/dist/bubble-bundle.d.ts +333 -1438
  2. package/dist/bubble-factory.d.ts.map +1 -1
  3. package/dist/bubble-factory.js +64 -28
  4. package/dist/bubble-factory.js.map +1 -1
  5. package/dist/bubble-flow/bubble-flow-class.d.ts +17 -1
  6. package/dist/bubble-flow/bubble-flow-class.d.ts.map +1 -1
  7. package/dist/bubble-flow/bubble-flow-class.js +16 -0
  8. package/dist/bubble-flow/bubble-flow-class.js.map +1 -1
  9. package/dist/bubble-flow/sample/data-analyst-flow.d.ts +1 -1
  10. package/dist/bubble-flow/sample/data-analyst-flow.d.ts.map +1 -1
  11. package/dist/bubble-flow/sample/error-ts.d.ts +1 -1
  12. package/dist/bubble-flow/sample/error-ts.d.ts.map +1 -1
  13. package/dist/bubble-flow/sample/sanitytest.d.ts +1 -1
  14. package/dist/bubble-flow/sample/sanitytest.d.ts.map +1 -1
  15. package/dist/bubble-flow/sample/simple-webhook-2.d.ts +1 -1
  16. package/dist/bubble-flow/sample/simple-webhook-2.d.ts.map +1 -1
  17. package/dist/bubble-flow/sample/simple-webhook.d.ts +1 -1
  18. package/dist/bubble-flow/sample/simple-webhook.d.ts.map +1 -1
  19. package/dist/bubble-flow/sample/simplified-data-analysis.flow.d.ts +1 -1
  20. package/dist/bubble-flow/sample/simplified-data-analysis.flow.d.ts.map +1 -1
  21. package/dist/bubble-flow/sample/slack-v0.1.d.ts +1 -1
  22. package/dist/bubble-flow/sample/slack-v0.1.d.ts.map +1 -1
  23. package/dist/bubble-flow/sample/slackagenttest.d.ts +1 -1
  24. package/dist/bubble-flow/sample/slackagenttest.d.ts.map +1 -1
  25. package/dist/bubbles/service-bubble/ai-agent.d.ts +115 -97
  26. package/dist/bubbles/service-bubble/ai-agent.d.ts.map +1 -1
  27. package/dist/bubbles/service-bubble/ai-agent.js +276 -96
  28. package/dist/bubbles/service-bubble/ai-agent.js.map +1 -1
  29. package/dist/bubbles/service-bubble/apify/actors/instagram-hashtag-scraper.d.ts +805 -0
  30. package/dist/bubbles/service-bubble/apify/actors/instagram-hashtag-scraper.d.ts.map +1 -0
  31. package/dist/bubbles/service-bubble/apify/actors/instagram-hashtag-scraper.js +131 -0
  32. package/dist/bubbles/service-bubble/apify/actors/instagram-hashtag-scraper.js.map +1 -0
  33. package/dist/bubbles/service-bubble/apify/actors/instagram-scraper.d.ts +485 -0
  34. package/dist/bubbles/service-bubble/apify/actors/instagram-scraper.d.ts.map +1 -0
  35. package/dist/bubbles/service-bubble/apify/actors/instagram-scraper.js +176 -0
  36. package/dist/bubbles/service-bubble/apify/actors/instagram-scraper.js.map +1 -0
  37. package/dist/bubbles/service-bubble/apify/actors/linkedin-posts-search.d.ts +302 -0
  38. package/dist/bubbles/service-bubble/apify/actors/linkedin-posts-search.d.ts.map +1 -0
  39. package/dist/bubbles/service-bubble/apify/actors/linkedin-posts-search.js +138 -0
  40. package/dist/bubbles/service-bubble/apify/actors/linkedin-posts-search.js.map +1 -0
  41. package/dist/bubbles/service-bubble/apify/actors/linkedin-profile-posts.d.ts +642 -0
  42. package/dist/bubbles/service-bubble/apify/actors/linkedin-profile-posts.d.ts.map +1 -0
  43. package/dist/bubbles/service-bubble/apify/actors/linkedin-profile-posts.js +123 -0
  44. package/dist/bubbles/service-bubble/apify/actors/linkedin-profile-posts.js.map +1 -0
  45. package/dist/bubbles/service-bubble/apify/actors/youtube-scraper.d.ts +184 -0
  46. package/dist/bubbles/service-bubble/apify/actors/youtube-scraper.d.ts.map +1 -0
  47. package/dist/bubbles/service-bubble/apify/actors/youtube-scraper.js +145 -0
  48. package/dist/bubbles/service-bubble/apify/actors/youtube-scraper.js.map +1 -0
  49. package/dist/bubbles/service-bubble/apify/actors/youtube-transcript-scraper.d.ts +52 -0
  50. package/dist/bubbles/service-bubble/apify/actors/youtube-transcript-scraper.d.ts.map +1 -0
  51. package/dist/bubbles/service-bubble/apify/actors/youtube-transcript-scraper.js +29 -0
  52. package/dist/bubbles/service-bubble/apify/actors/youtube-transcript-scraper.js.map +1 -0
  53. package/dist/bubbles/service-bubble/apify/apify-scraper.schema.d.ts +1999 -0
  54. package/dist/bubbles/service-bubble/apify/apify-scraper.schema.d.ts.map +1 -0
  55. package/dist/bubbles/service-bubble/apify/apify-scraper.schema.js +54 -0
  56. package/dist/bubbles/service-bubble/apify/apify-scraper.schema.js.map +1 -0
  57. package/dist/bubbles/service-bubble/apify/apify.d.ts +143 -0
  58. package/dist/bubbles/service-bubble/apify/apify.d.ts.map +1 -0
  59. package/dist/bubbles/service-bubble/apify/apify.js +276 -0
  60. package/dist/bubbles/service-bubble/apify/apify.js.map +1 -0
  61. package/dist/bubbles/service-bubble/apify/index.d.ts +6 -0
  62. package/dist/bubbles/service-bubble/apify/index.d.ts.map +1 -0
  63. package/dist/bubbles/service-bubble/apify/index.js +6 -0
  64. package/dist/bubbles/service-bubble/apify/index.js.map +1 -0
  65. package/dist/bubbles/service-bubble/apify/types.d.ts +7 -0
  66. package/dist/bubbles/service-bubble/apify/types.d.ts.map +1 -0
  67. package/dist/bubbles/service-bubble/apify/types.js +5 -0
  68. package/dist/bubbles/service-bubble/apify/types.js.map +1 -0
  69. package/dist/bubbles/service-bubble/gmail.d.ts +626 -132
  70. package/dist/bubbles/service-bubble/gmail.d.ts.map +1 -1
  71. package/dist/bubbles/service-bubble/gmail.js +435 -7
  72. package/dist/bubbles/service-bubble/gmail.js.map +1 -1
  73. package/dist/bubbles/service-bubble/google-calendar.d.ts +36 -36
  74. package/dist/bubbles/service-bubble/google-drive.d.ts +233 -4
  75. package/dist/bubbles/service-bubble/google-drive.d.ts.map +1 -1
  76. package/dist/bubbles/service-bubble/google-drive.js +65 -75
  77. package/dist/bubbles/service-bubble/google-drive.js.map +1 -1
  78. package/dist/bubbles/service-bubble/google-sheets.d.ts +52 -52
  79. package/dist/bubbles/service-bubble/hello-world.js +2 -2
  80. package/dist/bubbles/service-bubble/hello-world.js.map +1 -1
  81. package/dist/bubbles/service-bubble/http.d.ts +6 -6
  82. package/dist/bubbles/service-bubble/postgresql.d.ts +4 -4
  83. package/dist/bubbles/service-bubble/resend.d.ts +5 -5
  84. package/dist/bubbles/service-bubble/resend.d.ts.map +1 -1
  85. package/dist/bubbles/service-bubble/resend.js +16 -5
  86. package/dist/bubbles/service-bubble/resend.js.map +1 -1
  87. package/dist/bubbles/service-bubble/slack.d.ts +18 -18
  88. package/dist/bubbles/service-bubble/storage.d.ts +4 -4
  89. package/dist/bubbles/service-bubble/storage.d.ts.map +1 -1
  90. package/dist/bubbles/service-bubble/storage.js +16 -5
  91. package/dist/bubbles/service-bubble/storage.js.map +1 -1
  92. package/dist/bubbles/service-bubble/x-twitter.d.ts +814 -0
  93. package/dist/bubbles/service-bubble/x-twitter.d.ts.map +1 -0
  94. package/dist/bubbles/service-bubble/x-twitter.js +445 -0
  95. package/dist/bubbles/service-bubble/x-twitter.js.map +1 -0
  96. package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.d.ts +20 -20
  97. package/dist/bubbles/tool-bubble/chart-js-tool.d.ts +16 -16
  98. package/dist/bubbles/tool-bubble/get-bubble-details-tool.d.ts +14 -1
  99. package/dist/bubbles/tool-bubble/get-bubble-details-tool.d.ts.map +1 -1
  100. package/dist/bubbles/tool-bubble/get-bubble-details-tool.js +101 -47
  101. package/dist/bubbles/tool-bubble/get-bubble-details-tool.js.map +1 -1
  102. package/dist/bubbles/tool-bubble/instagram-tool.d.ts +435 -0
  103. package/dist/bubbles/tool-bubble/instagram-tool.d.ts.map +1 -0
  104. package/dist/bubbles/tool-bubble/instagram-tool.js +474 -0
  105. package/dist/bubbles/tool-bubble/instagram-tool.js.map +1 -0
  106. package/dist/bubbles/tool-bubble/linkedin-tool.d.ts +2136 -0
  107. package/dist/bubbles/tool-bubble/linkedin-tool.d.ts.map +1 -0
  108. package/dist/bubbles/tool-bubble/linkedin-tool.js +608 -0
  109. package/dist/bubbles/tool-bubble/linkedin-tool.js.map +1 -0
  110. package/dist/bubbles/tool-bubble/reddit-scrape-tool.d.ts +69 -64
  111. package/dist/bubbles/tool-bubble/reddit-scrape-tool.d.ts.map +1 -1
  112. package/dist/bubbles/tool-bubble/reddit-scrape-tool.js +97 -22
  113. package/dist/bubbles/tool-bubble/reddit-scrape-tool.js.map +1 -1
  114. package/dist/bubbles/tool-bubble/research-agent-tool.d.ts +6 -6
  115. package/dist/bubbles/tool-bubble/research-agent-tool.js +5 -5
  116. package/dist/bubbles/tool-bubble/research-agent-tool.js.map +1 -1
  117. package/dist/bubbles/tool-bubble/tool-template.d.ts +8 -8
  118. package/dist/bubbles/tool-bubble/web-crawl-tool.d.ts +14 -14
  119. package/dist/bubbles/tool-bubble/web-extract-tool.d.ts +4 -4
  120. package/dist/bubbles/tool-bubble/web-scrape-tool.d.ts +28 -28
  121. package/dist/bubbles/tool-bubble/web-scrape-tool.js +1 -1
  122. package/dist/bubbles/tool-bubble/web-scrape-tool.js.map +1 -1
  123. package/dist/bubbles/tool-bubble/web-search-tool.d.ts +5 -4
  124. package/dist/bubbles/tool-bubble/web-search-tool.d.ts.map +1 -1
  125. package/dist/bubbles/tool-bubble/web-search-tool.js +6 -2
  126. package/dist/bubbles/tool-bubble/web-search-tool.js.map +1 -1
  127. package/dist/bubbles/tool-bubble/youtube-tool.d.ts +394 -0
  128. package/dist/bubbles/tool-bubble/youtube-tool.d.ts.map +1 -0
  129. package/dist/bubbles/tool-bubble/youtube-tool.js +352 -0
  130. package/dist/bubbles/tool-bubble/youtube-tool.js.map +1 -0
  131. package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.d.ts +47 -36
  132. package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.d.ts.map +1 -1
  133. package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.js +96 -65
  134. package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.js.map +1 -1
  135. package/dist/bubbles/workflow-bubble/generate-document.workflow.d.ts +38 -38
  136. package/dist/bubbles/workflow-bubble/generate-document.workflow.js +1 -1
  137. package/dist/bubbles/workflow-bubble/generate-document.workflow.js.map +1 -1
  138. package/dist/bubbles/workflow-bubble/parse-document.workflow.d.ts +42 -42
  139. package/dist/bubbles/workflow-bubble/parse-document.workflow.js +1 -1
  140. package/dist/bubbles/workflow-bubble/parse-document.workflow.js.map +1 -1
  141. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts +22 -22
  142. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts.map +1 -1
  143. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.js +1 -4
  144. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.js.map +1 -1
  145. package/dist/bubbles/workflow-bubble/pdf-ocr.workflow.d.ts +60 -60
  146. package/dist/bubbles/workflow-bubble/pdf-ocr.workflow.d.ts.map +1 -1
  147. package/dist/bubbles/workflow-bubble/pdf-ocr.workflow.js +2 -2
  148. package/dist/bubbles/workflow-bubble/pdf-ocr.workflow.js.map +1 -1
  149. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.d.ts +20 -20
  150. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.js +1 -1
  151. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.js.map +1 -1
  152. package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts +66 -66
  153. package/dist/bubbles/workflow-bubble/slack-formatter-agent.js +1 -1
  154. package/dist/bubbles/workflow-bubble/slack-formatter-agent.js.map +1 -1
  155. package/dist/bubbles/workflow-bubble/slack-notifier.workflow.d.ts +18 -18
  156. package/dist/bubbles/workflow-bubble/slack-notifier.workflow.d.ts.map +1 -1
  157. package/dist/bubbles/workflow-bubble/slack-notifier.workflow.js +1 -2
  158. package/dist/bubbles/workflow-bubble/slack-notifier.workflow.js.map +1 -1
  159. package/dist/bubbles.json +489 -0
  160. package/dist/index.d.ts +16 -3
  161. package/dist/index.d.ts.map +1 -1
  162. package/dist/index.js +8 -1
  163. package/dist/index.js.map +1 -1
  164. package/dist/logging/BubbleLogger.d.ts +11 -0
  165. package/dist/logging/BubbleLogger.d.ts.map +1 -1
  166. package/dist/logging/BubbleLogger.js +87 -33
  167. package/dist/logging/BubbleLogger.js.map +1 -1
  168. package/dist/logging/StreamingBubbleLogger.d.ts.map +1 -1
  169. package/dist/logging/StreamingBubbleLogger.js +23 -16
  170. package/dist/logging/StreamingBubbleLogger.js.map +1 -1
  171. package/dist/test-gm.d.ts +10 -0
  172. package/dist/test-gm.d.ts.map +1 -0
  173. package/dist/test-gm.js +95 -0
  174. package/dist/test-gm.js.map +1 -0
  175. package/dist/types/available-tools.d.ts +1 -1
  176. package/dist/types/available-tools.d.ts.map +1 -1
  177. package/dist/types/available-tools.js +2 -0
  178. package/dist/types/available-tools.js.map +1 -1
  179. package/dist/types/base-bubble-class.d.ts +6 -1
  180. package/dist/types/base-bubble-class.d.ts.map +1 -1
  181. package/dist/types/base-bubble-class.js +47 -24
  182. package/dist/types/base-bubble-class.js.map +1 -1
  183. package/dist/types/bubble.d.ts +3 -13
  184. package/dist/types/bubble.d.ts.map +1 -1
  185. package/dist/types/bubble.js +1 -1
  186. package/dist/types/bubble.js.map +1 -1
  187. package/dist/types/service-bubble-class.d.ts +5 -5
  188. package/dist/types/service-bubble-class.d.ts.map +1 -1
  189. package/dist/types/service-bubble-class.js +6 -7
  190. package/dist/types/service-bubble-class.js.map +1 -1
  191. package/dist/types/tool-bubble-class.d.ts +1 -1
  192. package/dist/types/tool-bubble-class.d.ts.map +1 -1
  193. package/dist/types/tool-bubble-class.js +9 -3
  194. package/dist/types/tool-bubble-class.js.map +1 -1
  195. package/dist/types/workflow-bubble-class.d.ts +1 -1
  196. package/dist/types/workflow-bubble-class.d.ts.map +1 -1
  197. package/dist/utils/agent-formatter.d.ts +17 -0
  198. package/dist/utils/agent-formatter.d.ts.map +1 -0
  199. package/dist/utils/agent-formatter.js +139 -0
  200. package/dist/utils/agent-formatter.js.map +1 -0
  201. package/dist/utils/bubbleflow-validation.d.ts.map +1 -1
  202. package/dist/utils/bubbleflow-validation.js +89 -32
  203. package/dist/utils/bubbleflow-validation.js.map +1 -1
  204. package/dist/utils/error-sanitizer.d.ts +12 -0
  205. package/dist/utils/error-sanitizer.d.ts.map +1 -0
  206. package/dist/utils/error-sanitizer.js +77 -0
  207. package/dist/utils/error-sanitizer.js.map +1 -0
  208. package/dist/utils/json-parsing.d.ts +1 -0
  209. package/dist/utils/json-parsing.d.ts.map +1 -1
  210. package/dist/utils/json-parsing.js +205 -32
  211. package/dist/utils/json-parsing.js.map +1 -1
  212. package/package.json +6 -5
  213. package/dist/bubble-trigger/index.d.ts +0 -2
  214. package/dist/bubble-trigger/index.d.ts.map +0 -1
  215. package/dist/bubble-trigger/index.js +0 -2
  216. package/dist/bubble-trigger/index.js.map +0 -1
  217. package/dist/bubble-trigger/types.d.ts +0 -87
  218. package/dist/bubble-trigger/types.d.ts.map +0 -1
  219. package/dist/bubble-trigger/types.js +0 -14
  220. package/dist/bubble-trigger/types.js.map +0 -1
  221. package/dist/types/ai-models.d.ts +0 -4
  222. package/dist/types/ai-models.d.ts.map +0 -1
  223. package/dist/types/ai-models.js +0 -16
  224. package/dist/types/ai-models.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linkedin-tool.d.ts","sourceRoot":"","sources":["../../../src/bubbles/tool-bubble/linkedin-tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,608 @@
1
+ import { z } from 'zod';
2
+ import { ToolBubble } from '../../types/tool-bubble-class.js';
3
+ import { CredentialType } from '@bubblelab/shared-schemas';
4
+ import { ApifyBubble } from '../service-bubble/apify/apify.js';
5
+ // Unified LinkedIn data types (service-agnostic)
6
+ const LinkedInAuthorSchema = z.object({
7
+ firstName: z.string().nullable().describe('Author first name'),
8
+ lastName: z.string().nullable().describe('Author last name'),
9
+ headline: z.string().nullable().describe('Author headline/title'),
10
+ username: z.string().nullable().describe('Author username'),
11
+ profileUrl: z.string().nullable().describe('Author profile URL'),
12
+ profilePicture: z.string().nullable().describe('Author profile picture URL'),
13
+ });
14
+ const LinkedInStatsSchema = z.object({
15
+ totalReactions: z.number().nullable().describe('Total number of reactions'),
16
+ like: z.number().nullable().describe('Number of likes'),
17
+ support: z.number().nullable().describe('Number of support reactions'),
18
+ love: z.number().nullable().describe('Number of love reactions'),
19
+ insight: z.number().nullable().describe('Number of insight reactions'),
20
+ celebrate: z.number().nullable().describe('Number of celebrate reactions'),
21
+ funny: z.number().nullable().describe('Number of funny reactions'),
22
+ comments: z.number().nullable().describe('Number of comments'),
23
+ reposts: z.number().nullable().describe('Number of reposts'),
24
+ });
25
+ const LinkedInMediaSchema = z.object({
26
+ type: z.string().nullable().describe('Media type (image, video, images)'),
27
+ url: z.string().nullable().describe('Media URL'),
28
+ thumbnail: z.string().nullable().describe('Media thumbnail URL'),
29
+ images: z
30
+ .array(z.object({
31
+ url: z.string().nullable(),
32
+ width: z.number().nullable(),
33
+ height: z.number().nullable(),
34
+ }))
35
+ .nullable()
36
+ .describe('Array of images for multi-image posts'),
37
+ });
38
+ const LinkedInPostedAtSchema = z.object({
39
+ date: z.string().nullable().describe('Post date (formatted string)'),
40
+ relative: z
41
+ .string()
42
+ .nullable()
43
+ .describe('Relative time (e.g., "2 days ago")'),
44
+ timestamp: z.number().nullable().describe('Unix timestamp in milliseconds'),
45
+ });
46
+ const LinkedInPostSchema = z.object({
47
+ urn: z.string().nullable().describe('Post URN'),
48
+ fullUrn: z.string().nullable().describe('Full URN with prefix'),
49
+ postedAt: LinkedInPostedAtSchema.nullable().describe('When post was created'),
50
+ text: z.string().nullable().describe('Post text content'),
51
+ url: z.string().nullable().describe('Post URL'),
52
+ postType: z.string().nullable().describe('Post type (regular, quote, etc)'),
53
+ author: LinkedInAuthorSchema.nullable().describe('Post author information'),
54
+ stats: LinkedInStatsSchema.nullable().describe('Post engagement statistics'),
55
+ media: LinkedInMediaSchema.nullable().describe('Post media content'),
56
+ article: z
57
+ .object({
58
+ url: z.string().nullable(),
59
+ title: z.string().nullable(),
60
+ subtitle: z.string().nullable(),
61
+ thumbnail: z.string().nullable(),
62
+ })
63
+ .nullable()
64
+ .describe('Shared article information'),
65
+ document: z
66
+ .object({
67
+ title: z.string().nullable(),
68
+ pageCount: z.number().nullable(),
69
+ url: z.string().nullable(),
70
+ thumbnail: z.string().nullable(),
71
+ })
72
+ .nullable()
73
+ .describe('Shared document information'),
74
+ resharedPost: z
75
+ .object({
76
+ urn: z.string().nullable(),
77
+ postedAt: LinkedInPostedAtSchema.nullable(),
78
+ text: z.string().nullable(),
79
+ url: z.string().nullable(),
80
+ postType: z.string().nullable(),
81
+ author: LinkedInAuthorSchema.nullable(),
82
+ stats: LinkedInStatsSchema.nullable(),
83
+ media: LinkedInMediaSchema.nullable(),
84
+ })
85
+ .nullable()
86
+ .describe('Original post that was reshared'),
87
+ });
88
+ // Gemini-compatible single object schema with optional fields
89
+ const LinkedInToolParamsSchema = z.object({
90
+ operation: z
91
+ .enum(['scrapePosts', 'searchPosts'])
92
+ .describe('Operation to perform: scrapePosts for user profiles, searchPosts for keyword search'),
93
+ // Profile scraping fields (optional)
94
+ username: z
95
+ .string()
96
+ .optional()
97
+ .describe('LinkedIn username (for scrapePosts operation). Examples: "satyanadella", "billgates"'),
98
+ // Search fields (optional)
99
+ keyword: z
100
+ .string()
101
+ .optional()
102
+ .describe('Keyword or phrase to search for (for searchPosts operation). Examples: "AI", "hiring", "n8n"'),
103
+ sortBy: z
104
+ .enum(['relevance', 'date_posted'])
105
+ .default('relevance')
106
+ .optional()
107
+ .describe('Sort results by relevance or date posted (for searchPosts operation, default: relevance)'),
108
+ dateFilter: z
109
+ .enum(['', 'past-24h', 'past-week', 'past-month'])
110
+ .default('')
111
+ .optional()
112
+ .describe('Filter posts by date range (for searchPosts operation, default: no filter)'),
113
+ // Common fields
114
+ limit: z
115
+ .number()
116
+ .min(1)
117
+ .max(100)
118
+ .default(50)
119
+ .optional()
120
+ .describe('Maximum number of posts to fetch (default: 50 for search, 100 for profiles)'),
121
+ pageNumber: z
122
+ .number()
123
+ .min(1)
124
+ .default(1)
125
+ .optional()
126
+ .describe('Page number for pagination (default: 1)'),
127
+ credentials: z
128
+ .record(z.nativeEnum(CredentialType), z.string())
129
+ .optional()
130
+ .describe('Required credentials (auto-injected)'),
131
+ });
132
+ // Gemini-compatible single result schema
133
+ const LinkedInToolResultSchema = z.object({
134
+ operation: z
135
+ .enum(['scrapePosts', 'searchPosts'])
136
+ .describe('Operation that was performed'),
137
+ // Posts data (always present)
138
+ posts: z.array(LinkedInPostSchema).describe('Array of LinkedIn posts'),
139
+ // Profile data (only for scrapePosts operation)
140
+ username: z
141
+ .string()
142
+ .optional()
143
+ .describe('LinkedIn username that was scraped (only for scrapePosts operation)'),
144
+ paginationToken: z
145
+ .string()
146
+ .nullable()
147
+ .optional()
148
+ .describe('Token for fetching next page of results (only for scrapePosts operation)'),
149
+ // Search data (only for searchPosts operation)
150
+ keyword: z
151
+ .string()
152
+ .optional()
153
+ .describe('Search keyword that was used (only for searchPosts operation)'),
154
+ totalResults: z
155
+ .number()
156
+ .nullable()
157
+ .optional()
158
+ .describe('Total results available (only for searchPosts operation)'),
159
+ hasNextPage: z
160
+ .boolean()
161
+ .nullable()
162
+ .optional()
163
+ .describe('Whether there are more results (only for searchPosts operation)'),
164
+ // Common fields
165
+ totalPosts: z.number().describe('Total number of posts found'),
166
+ success: z.boolean().describe('Whether the operation was successful'),
167
+ error: z.string().describe('Error message if operation failed'),
168
+ });
169
+ /**
170
+ * LinkedIn scraping tool with multiple operations
171
+ *
172
+ * This tool provides a simple interface for scraping LinkedIn data.
173
+ *
174
+ * Operations:
175
+ * 1. scrapePosts - Scrape posts from a specific LinkedIn profile
176
+ * 2. searchPosts - Search for LinkedIn posts by keyword
177
+ *
178
+ * Features:
179
+ * - Get complete post metadata (text, engagement stats, media, etc.)
180
+ * - Support for all post types (regular, quotes, articles, documents)
181
+ * - Pagination support
182
+ * - Date filtering for search
183
+ */
184
+ export class LinkedInTool extends ToolBubble {
185
+ // Required static metadata
186
+ static bubbleName = 'linkedin-tool';
187
+ static schema = LinkedInToolParamsSchema;
188
+ static resultSchema = LinkedInToolResultSchema;
189
+ static shortDescription = 'Scrape LinkedIn posts by profile or search by keyword. Get engagement metrics, media, and complete metadata.';
190
+ static longDescription = `
191
+ Universal LinkedIn scraping tool for extracting posts and activity data.
192
+
193
+ **OPERATIONS:**
194
+ 1. **scrapePosts**: Scrape posts from a LinkedIn profile
195
+ - Get posts from specific users
196
+ - Extract author information and post metadata
197
+ - Track reactions, comments, and reposts
198
+ - Support for articles, documents, and reshared content
199
+
200
+ 2. **searchPosts**: Search LinkedIn posts by keyword
201
+ - Find posts across all of LinkedIn by keyword
202
+ - Filter by date (past 24h, week, month)
203
+ - Sort by relevance or date
204
+ - Perfect for monitoring topics, trends, and mentions
205
+
206
+ **WHEN TO USE THIS TOOL:**
207
+ - **LinkedIn profile research** - analyze someone's LinkedIn activity
208
+ - **Content strategy** - research what content performs well
209
+ - **Influencer analysis** - track thought leaders and their engagement
210
+ - **Competitive intelligence** - monitor competitor LinkedIn presence
211
+ - **Lead generation** - identify active LinkedIn users in your space
212
+ - **Social listening** - track discussions and trends on LinkedIn
213
+
214
+ **DO NOT USE research-agent-tool or web-scrape-tool for LinkedIn** - This tool is specifically optimized for LinkedIn and provides:
215
+ - Clean, structured post data ready for analysis
216
+ - Complete engagement metrics (reactions, comments, reposts)
217
+ - Support for all LinkedIn post types
218
+ - Automatic pagination handling
219
+ - Rate limiting and reliability
220
+
221
+ **Simple Interface:**
222
+ Just provide a LinkedIn username to get back all their recent posts with complete metadata.
223
+ The tool automatically handles:
224
+ - Authentication with Apify
225
+ - Data transformation to unified format
226
+ - Error handling and retries
227
+ - Pagination token management
228
+
229
+ **What you get:**
230
+ - Post text and metadata (URN, URL, type, timestamp)
231
+ - Complete engagement statistics (likes, comments, reposts, all reaction types)
232
+ - Author information (name, headline, profile URL, picture)
233
+ - Media content (images, videos, documents, articles)
234
+ - Reshared post data (for quote posts)
235
+
236
+ **Use cases:**
237
+ - Influencer and thought leader tracking
238
+ - Content performance analysis
239
+ - Competitive research on LinkedIn
240
+ - Lead generation and prospecting
241
+ - Brand monitoring and reputation management
242
+ - Recruitment and talent sourcing
243
+ - Partnership and collaboration discovery
244
+
245
+ The tool uses Apify's LinkedIn scraper behind the scenes while maintaining a clean, consistent interface.
246
+ `;
247
+ static alias = 'li';
248
+ static type = 'tool';
249
+ constructor(params = {
250
+ operation: 'scrapePosts',
251
+ username: 'satyanadella',
252
+ limit: 100,
253
+ }, context) {
254
+ super(params, context);
255
+ }
256
+ async performAction() {
257
+ const credentials = this.params?.credentials;
258
+ if (!credentials || !credentials[CredentialType.APIFY_CRED]) {
259
+ return this.createErrorResult('LinkedIn scraping requires authentication. Please configure APIFY_CRED.');
260
+ }
261
+ try {
262
+ const { operation } = this.params;
263
+ // Validate required fields based on operation
264
+ if (operation === 'scrapePosts' &&
265
+ (!this.params.username || this.params.username.length === 0)) {
266
+ return this.createErrorResult('Username is required for scrapePosts operation');
267
+ }
268
+ if (operation === 'searchPosts' &&
269
+ (!this.params.keyword || this.params.keyword.length === 0)) {
270
+ return this.createErrorResult('Keyword is required for searchPosts operation');
271
+ }
272
+ const result = await (async () => {
273
+ switch (operation) {
274
+ case 'scrapePosts':
275
+ return await this.handleScrapePosts(this.params);
276
+ case 'searchPosts':
277
+ return await this.handleSearchPosts(this.params);
278
+ default:
279
+ throw new Error(`Unsupported operation: ${operation}`);
280
+ }
281
+ })();
282
+ return result;
283
+ }
284
+ catch (error) {
285
+ return this.createErrorResult(error instanceof Error ? error.message : 'Unknown error occurred');
286
+ }
287
+ }
288
+ /**
289
+ * Create an error result
290
+ */
291
+ createErrorResult(errorMessage) {
292
+ const { operation } = this.params;
293
+ return {
294
+ operation: operation || 'scrapePosts',
295
+ posts: [],
296
+ username: operation === 'scrapePosts' ? this.params.username || '' : undefined,
297
+ paginationToken: operation === 'scrapePosts' ? null : undefined,
298
+ keyword: operation === 'searchPosts' ? this.params.keyword || '' : undefined,
299
+ totalResults: operation === 'searchPosts' ? null : undefined,
300
+ hasNextPage: operation === 'searchPosts' ? null : undefined,
301
+ totalPosts: 0,
302
+ success: false,
303
+ error: errorMessage,
304
+ };
305
+ }
306
+ /**
307
+ * Handle scrapePosts operation
308
+ */
309
+ async handleScrapePosts(params) {
310
+ // Use Apify service to scrape LinkedIn posts
311
+ const linkedinPostScraper = new ApifyBubble({
312
+ actorId: 'apimaestro/linkedin-profile-posts',
313
+ input: {
314
+ username: params.username,
315
+ limit: params.limit || 100,
316
+ page_number: params.pageNumber || 1,
317
+ },
318
+ waitForFinish: true,
319
+ timeout: 180000, // 3 minutes
320
+ credentials: params.credentials,
321
+ }, this.context);
322
+ const apifyResult = await linkedinPostScraper.action();
323
+ if (!apifyResult.data.success) {
324
+ return {
325
+ operation: 'scrapePosts',
326
+ posts: [],
327
+ username: params.username,
328
+ paginationToken: null,
329
+ totalPosts: 0,
330
+ success: false,
331
+ error: apifyResult.data.error ||
332
+ 'Failed to scrape LinkedIn posts. Please try again.',
333
+ };
334
+ }
335
+ const items = apifyResult.data.items || [];
336
+ // The actor returns posts directly in the items array
337
+ if (items.length === 0) {
338
+ return {
339
+ operation: 'scrapePosts',
340
+ posts: [],
341
+ username: params.username,
342
+ paginationToken: null,
343
+ totalPosts: 0,
344
+ success: false,
345
+ error: 'No posts found. The profile may be private or have no public posts.',
346
+ };
347
+ }
348
+ // Transform posts to unified format - items ARE the posts
349
+ const posts = this.transformPosts(items);
350
+ return {
351
+ operation: 'scrapePosts',
352
+ posts,
353
+ username: params.username,
354
+ paginationToken: null,
355
+ totalPosts: posts.length,
356
+ success: true,
357
+ error: '',
358
+ };
359
+ }
360
+ /**
361
+ * Transform LinkedIn posts from Apify format to unified format
362
+ */
363
+ transformPosts(posts) {
364
+ return posts.map((post) => ({
365
+ urn: post.urn?.activity_urn ||
366
+ post.urn?.share_urn ||
367
+ post.urn?.ugcPost_urn ||
368
+ null,
369
+ fullUrn: post.full_urn || null,
370
+ postedAt: post.posted_at
371
+ ? {
372
+ date: post.posted_at.date || null,
373
+ relative: post.posted_at.relative || null,
374
+ timestamp: post.posted_at.timestamp || null,
375
+ }
376
+ : null,
377
+ text: post.text || null,
378
+ url: post.url || null,
379
+ postType: post.post_type || null,
380
+ author: post.author
381
+ ? {
382
+ firstName: post.author.first_name || null,
383
+ lastName: post.author.last_name || null,
384
+ headline: post.author.headline || null,
385
+ username: post.author.username || null,
386
+ profileUrl: post.author.profile_url || null,
387
+ profilePicture: post.author.profile_picture || null,
388
+ }
389
+ : null,
390
+ stats: post.stats
391
+ ? {
392
+ totalReactions: post.stats.total_reactions || null,
393
+ like: post.stats.like || null,
394
+ support: post.stats.support || null,
395
+ love: post.stats.love || null,
396
+ insight: post.stats.insight || null,
397
+ celebrate: post.stats.celebrate || null,
398
+ funny: post.stats.funny || null,
399
+ comments: post.stats.comments || null,
400
+ reposts: post.stats.reposts || null,
401
+ }
402
+ : null,
403
+ media: post.media
404
+ ? {
405
+ type: post.media.type || null,
406
+ url: post.media.url || null,
407
+ thumbnail: post.media.thumbnail || null,
408
+ images: post.media.images
409
+ ? post.media.images.map((img) => ({
410
+ url: img.url || null,
411
+ width: img.width || null,
412
+ height: img.height || null,
413
+ }))
414
+ : null,
415
+ }
416
+ : null,
417
+ article: post.article
418
+ ? {
419
+ url: post.article.url || null,
420
+ title: post.article.title || null,
421
+ subtitle: post.article.subtitle || null,
422
+ thumbnail: post.article.thumbnail || null,
423
+ }
424
+ : null,
425
+ document: post.document
426
+ ? {
427
+ title: post.document.title || null,
428
+ pageCount: post.document.page_count || null,
429
+ url: post.document.url || null,
430
+ thumbnail: post.document.thumbnail || null,
431
+ }
432
+ : null,
433
+ resharedPost: post.reshared_post
434
+ ? {
435
+ urn: typeof post.reshared_post.urn === 'object'
436
+ ? post.reshared_post.urn?.activity_urn ||
437
+ post.reshared_post.urn?.ugcPost_urn ||
438
+ null
439
+ : post.reshared_post.urn || null,
440
+ postedAt: post.reshared_post.posted_at
441
+ ? {
442
+ date: post.reshared_post.posted_at.date || null,
443
+ relative: post.reshared_post.posted_at.relative || null,
444
+ timestamp: post.reshared_post.posted_at.timestamp || null,
445
+ }
446
+ : null,
447
+ text: post.reshared_post.text || null,
448
+ url: post.reshared_post.url || null,
449
+ postType: post.reshared_post.post_type || null,
450
+ author: post.reshared_post.author
451
+ ? {
452
+ firstName: post.reshared_post.author.first_name || null,
453
+ lastName: post.reshared_post.author.last_name || null,
454
+ headline: post.reshared_post.author.headline || null,
455
+ username: post.reshared_post.author.username || null,
456
+ profileUrl: post.reshared_post.author.profile_url || null,
457
+ profilePicture: post.reshared_post.author.profile_picture || null,
458
+ }
459
+ : null,
460
+ stats: post.reshared_post.stats
461
+ ? {
462
+ totalReactions: post.reshared_post.stats.total_reactions || null,
463
+ like: post.reshared_post.stats.like || null,
464
+ support: post.reshared_post.stats.support || null,
465
+ love: post.reshared_post.stats.love || null,
466
+ insight: post.reshared_post.stats.insight || null,
467
+ celebrate: post.reshared_post.stats.celebrate || null,
468
+ funny: post.reshared_post.stats.funny || null,
469
+ comments: post.reshared_post.stats.comments || null,
470
+ reposts: post.reshared_post.stats.reposts || null,
471
+ }
472
+ : null,
473
+ media: post.reshared_post.media
474
+ ? {
475
+ type: post.reshared_post.media.type || null,
476
+ url: post.reshared_post.media.url || null,
477
+ thumbnail: post.reshared_post.media.thumbnail || null,
478
+ images: null, // Reshared posts don't include multi-image data
479
+ }
480
+ : null,
481
+ }
482
+ : null,
483
+ }));
484
+ }
485
+ /**
486
+ * Handle searchPosts operation
487
+ */
488
+ async handleSearchPosts(params) {
489
+ // Use Apify service to search LinkedIn posts
490
+ const linkedinPostSearcher = new ApifyBubble({
491
+ actorId: 'apimaestro/linkedin-posts-search-scraper-no-cookies',
492
+ input: {
493
+ keyword: params.keyword,
494
+ sort_type: params.sortBy || 'relevance',
495
+ date_filter: params.dateFilter || '',
496
+ page_number: params.pageNumber || 1,
497
+ limit: params.limit || 50,
498
+ },
499
+ waitForFinish: true,
500
+ timeout: 180000,
501
+ credentials: params.credentials,
502
+ }, this.context);
503
+ const apifyResult = await linkedinPostSearcher.action();
504
+ if (!apifyResult.data.success) {
505
+ return {
506
+ operation: 'searchPosts',
507
+ posts: [],
508
+ keyword: params.keyword,
509
+ totalResults: null,
510
+ hasNextPage: null,
511
+ totalPosts: 0,
512
+ success: false,
513
+ error: apifyResult.data.error ||
514
+ 'Failed to search LinkedIn posts. Please try again.',
515
+ };
516
+ }
517
+ const items = apifyResult.data.items || [];
518
+ if (items.length === 0) {
519
+ return {
520
+ operation: 'searchPosts',
521
+ posts: [],
522
+ keyword: params.keyword,
523
+ totalResults: 0,
524
+ hasNextPage: false,
525
+ totalPosts: 0,
526
+ success: true,
527
+ error: '',
528
+ };
529
+ }
530
+ // Transform search results to unified format
531
+ const posts = this.transformSearchResults(items);
532
+ // Get metadata from first item (all items have the same metadata)
533
+ const metadata = items[0].metadata;
534
+ return {
535
+ operation: 'searchPosts',
536
+ posts,
537
+ keyword: params.keyword,
538
+ totalResults: metadata?.total_count || null,
539
+ hasNextPage: metadata?.has_next_page || null,
540
+ totalPosts: posts.length,
541
+ success: true,
542
+ error: '',
543
+ };
544
+ }
545
+ /**
546
+ * Transform search results to unified post format
547
+ */
548
+ transformSearchResults(items) {
549
+ return items.map((item) => ({
550
+ urn: item.activity_id || null,
551
+ fullUrn: item.full_urn || null,
552
+ postedAt: item.posted_at
553
+ ? {
554
+ date: item.posted_at.date || null,
555
+ relative: item.posted_at.display_text || null,
556
+ timestamp: item.posted_at.timestamp || null,
557
+ }
558
+ : null,
559
+ text: item.text || null,
560
+ url: item.post_url || null,
561
+ postType: item.is_reshare ? 'repost' : 'regular',
562
+ author: item.author
563
+ ? {
564
+ firstName: item.author.name?.split(' ')[0] || null,
565
+ lastName: item.author.name?.split(' ')[1] || null,
566
+ headline: item.author.headline || null,
567
+ username: item.author.profile_id || null,
568
+ profileUrl: item.author.profile_url || null,
569
+ profilePicture: item.author.image_url || null,
570
+ }
571
+ : null,
572
+ stats: item.stats
573
+ ? {
574
+ totalReactions: item.stats.total_reactions || null,
575
+ like: this.getReactionCount(item.stats.reactions, 'LIKE'),
576
+ support: this.getReactionCount(item.stats.reactions, 'EMPATHY'),
577
+ love: this.getReactionCount(item.stats.reactions || [], 'LOVE'),
578
+ insight: this.getReactionCount(item.stats.reactions || [], 'INTEREST'),
579
+ celebrate: this.getReactionCount(item.stats.reactions || [], 'PRAISE'),
580
+ funny: this.getReactionCount(item.stats.reactions || [], 'FUNNY'),
581
+ comments: item.stats.comments || null,
582
+ reposts: item.stats.shares || null,
583
+ }
584
+ : null,
585
+ media: null, // Search results don't include detailed media info
586
+ article: item.content?.type === 'article' && item.content.article
587
+ ? {
588
+ url: item.content.article.url || null,
589
+ title: item.content.article.title || null,
590
+ subtitle: item.content.article.subtitle || null,
591
+ thumbnail: item.content.article.thumbnail || null,
592
+ }
593
+ : null,
594
+ document: null, // Search results don't include document info
595
+ resharedPost: null, // Search results don't include nested reshare details
596
+ }));
597
+ }
598
+ /**
599
+ * Helper to get reaction count by type from reactions array
600
+ */
601
+ getReactionCount(reactions, type) {
602
+ if (!reactions || !reactions.length)
603
+ return null;
604
+ const reaction = reactions.find((r) => r.type === type);
605
+ return reaction ? reaction.count || null : null;
606
+ }
607
+ }
608
+ //# sourceMappingURL=linkedin-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linkedin-tool.js","sourceRoot":"","sources":["../../../src/bubbles/tool-bubble/linkedin-tool.ts"],"names":[],"mappings":"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"}