@bubblelab/bubble-core 0.1.221 → 0.1.224

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 (186) hide show
  1. package/dist/bubble-bundle.d.ts +241 -202
  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/bubble-trigger/index.d.ts +2 -0
  6. package/dist/bubble-trigger/index.d.ts.map +1 -0
  7. package/dist/bubble-trigger/index.js +2 -0
  8. package/dist/bubble-trigger/index.js.map +1 -0
  9. package/dist/bubble-trigger/types.d.ts +87 -0
  10. package/dist/bubble-trigger/types.d.ts.map +1 -0
  11. package/dist/bubble-trigger/types.js +14 -0
  12. package/dist/bubble-trigger/types.js.map +1 -0
  13. package/dist/bubbles/service-bubble/agi-inc.d.ts +80 -80
  14. package/dist/bubbles/service-bubble/ai-agent.d.ts +74 -74
  15. package/dist/bubbles/service-bubble/airtable.d.ts +102 -102
  16. package/dist/bubbles/service-bubble/apify/actors/google-maps-scraper.d.ts +2 -2
  17. package/dist/bubbles/service-bubble/apify/actors/instagram-hashtag-scraper.d.ts +6 -6
  18. package/dist/bubbles/service-bubble/apify/actors/instagram-scraper.d.ts +20 -20
  19. package/dist/bubbles/service-bubble/apify/actors/linkedin-posts-search.d.ts +26 -26
  20. package/dist/bubbles/service-bubble/apify/actors/linkedin-profile-detail.d.ts +90 -90
  21. package/dist/bubbles/service-bubble/apify/actors/linkedin-profile-posts.d.ts +70 -70
  22. package/dist/bubbles/service-bubble/apify/actors/tiktok-scraper.d.ts +16 -16
  23. package/dist/bubbles/service-bubble/apify/actors/twitter-scraper.d.ts +37 -37
  24. package/dist/bubbles/service-bubble/apify/actors/youtube-scraper.d.ts +16 -16
  25. package/dist/bubbles/service-bubble/apify/apify-scraper.schema.d.ts +243 -243
  26. package/dist/bubbles/service-bubble/apify/apify.d.ts +30 -30
  27. package/dist/bubbles/service-bubble/ashby/ashby.d.ts +64 -64
  28. package/dist/bubbles/service-bubble/ashby/ashby.schema.d.ts +86 -86
  29. package/dist/bubbles/service-bubble/assembled/assembled.d.ts +42 -42
  30. package/dist/bubbles/service-bubble/assembled/assembled.schema.d.ts +42 -42
  31. package/dist/bubbles/service-bubble/attio/attio.d.ts +34 -34
  32. package/dist/bubbles/service-bubble/attio/attio.schema.d.ts +34 -34
  33. package/dist/bubbles/service-bubble/browserbase/browserbase.d.ts +31 -31
  34. package/dist/bubbles/service-bubble/browserbase/browserbase.schema.d.ts +33 -33
  35. package/dist/bubbles/service-bubble/confluence/confluence.d.ts +24 -24
  36. package/dist/bubbles/service-bubble/confluence/confluence.schema.d.ts +24 -24
  37. package/dist/bubbles/service-bubble/crustdata/crustdata.d.ts +126 -126
  38. package/dist/bubbles/service-bubble/crustdata/crustdata.schema.d.ts +158 -158
  39. package/dist/bubbles/service-bubble/eleven-labs.d.ts +28 -28
  40. package/dist/bubbles/service-bubble/firecrawl.d.ts +834 -834
  41. package/dist/bubbles/service-bubble/followupboss.d.ts +144 -144
  42. package/dist/bubbles/service-bubble/fullenrich/fullenrich.d.ts +68 -68
  43. package/dist/bubbles/service-bubble/fullenrich/fullenrich.schema.d.ts +108 -108
  44. package/dist/bubbles/service-bubble/github.d.ts +144 -144
  45. package/dist/bubbles/service-bubble/gmail.d.ts +240 -240
  46. package/dist/bubbles/service-bubble/google-calendar.d.ts +138 -138
  47. package/dist/bubbles/service-bubble/google-drive.d.ts +52 -52
  48. package/dist/bubbles/service-bubble/google-sheets/google-sheets.d.ts +44 -44
  49. package/dist/bubbles/service-bubble/google-sheets/google-sheets.schema.d.ts +48 -48
  50. package/dist/bubbles/service-bubble/google-sheets.d.ts +1811 -0
  51. package/dist/bubbles/service-bubble/google-sheets.d.ts.map +1 -0
  52. package/dist/bubbles/service-bubble/google-sheets.js +904 -0
  53. package/dist/bubbles/service-bubble/google-sheets.js.map +1 -0
  54. package/dist/bubbles/service-bubble/hello-world.d.ts +8 -8
  55. package/dist/bubbles/service-bubble/http.d.ts +18 -18
  56. package/dist/bubbles/service-bubble/hubspot/hubspot.d.ts +8 -8
  57. package/dist/bubbles/service-bubble/hubspot/hubspot.schema.d.ts +8 -8
  58. package/dist/bubbles/service-bubble/insforge-db.d.ts +16 -16
  59. package/dist/bubbles/service-bubble/jira/jira.d.ts +60 -60
  60. package/dist/bubbles/service-bubble/jira/jira.schema.d.ts +62 -62
  61. package/dist/bubbles/service-bubble/linear/linear.d.ts +32 -32
  62. package/dist/bubbles/service-bubble/linear/linear.schema.d.ts +32 -32
  63. package/dist/bubbles/service-bubble/notion/notion.d.ts +682 -682
  64. package/dist/bubbles/service-bubble/notion/property-schemas.d.ts +16 -16
  65. package/dist/bubbles/service-bubble/postgresql.d.ts +16 -16
  66. package/dist/bubbles/service-bubble/posthog/posthog.d.ts +24 -24
  67. package/dist/bubbles/service-bubble/posthog/posthog.schema.d.ts +30 -30
  68. package/dist/bubbles/service-bubble/pylon/index.d.ts +3 -0
  69. package/dist/bubbles/service-bubble/pylon/index.d.ts.map +1 -0
  70. package/dist/bubbles/service-bubble/pylon/index.js +3 -0
  71. package/dist/bubbles/service-bubble/pylon/index.js.map +1 -0
  72. package/dist/bubbles/service-bubble/pylon/pylon.d.ts +435 -0
  73. package/dist/bubbles/service-bubble/pylon/pylon.d.ts.map +1 -0
  74. package/dist/bubbles/service-bubble/pylon/pylon.js +375 -0
  75. package/dist/bubbles/service-bubble/pylon/pylon.js.map +1 -0
  76. package/dist/bubbles/service-bubble/pylon/pylon.schema.d.ts +408 -0
  77. package/dist/bubbles/service-bubble/pylon/pylon.schema.d.ts.map +1 -0
  78. package/dist/bubbles/service-bubble/pylon/pylon.schema.js +249 -0
  79. package/dist/bubbles/service-bubble/pylon/pylon.schema.js.map +1 -0
  80. package/dist/bubbles/service-bubble/ramp/ramp.d.ts +28 -28
  81. package/dist/bubbles/service-bubble/ramp/ramp.schema.d.ts +28 -28
  82. package/dist/bubbles/service-bubble/resend.d.ts +28 -28
  83. package/dist/bubbles/service-bubble/s3/s3.d.ts +10 -10
  84. package/dist/bubbles/service-bubble/s3/s3.schema.d.ts +10 -10
  85. package/dist/bubbles/service-bubble/sendsafely/sendsafely.d.ts +10 -10
  86. package/dist/bubbles/service-bubble/sendsafely/sendsafely.schema.d.ts +12 -12
  87. package/dist/bubbles/service-bubble/slab/index.d.ts +3 -0
  88. package/dist/bubbles/service-bubble/slab/index.d.ts.map +1 -0
  89. package/dist/bubbles/service-bubble/slab/index.js +3 -0
  90. package/dist/bubbles/service-bubble/slab/index.js.map +1 -0
  91. package/dist/bubbles/service-bubble/slab/slab.d.ts +617 -0
  92. package/dist/bubbles/service-bubble/slab/slab.d.ts.map +1 -0
  93. package/dist/bubbles/service-bubble/slab/slab.js +379 -0
  94. package/dist/bubbles/service-bubble/slab/slab.js.map +1 -0
  95. package/dist/bubbles/service-bubble/slab/slab.schema.d.ts +703 -0
  96. package/dist/bubbles/service-bubble/slab/slab.schema.d.ts.map +1 -0
  97. package/dist/bubbles/service-bubble/slab/slab.schema.js +226 -0
  98. package/dist/bubbles/service-bubble/slab/slab.schema.js.map +1 -0
  99. package/dist/bubbles/service-bubble/slack/slack.d.ts +558 -558
  100. package/dist/bubbles/service-bubble/slack.d.ts +5869 -0
  101. package/dist/bubbles/service-bubble/slack.d.ts.map +1 -0
  102. package/dist/bubbles/service-bubble/slack.js +1536 -0
  103. package/dist/bubbles/service-bubble/slack.js.map +1 -0
  104. package/dist/bubbles/service-bubble/storage.d.ts +20 -20
  105. package/dist/bubbles/service-bubble/stripe/stripe.d.ts +157 -157
  106. package/dist/bubbles/service-bubble/stripe/stripe.schema.d.ts +183 -183
  107. package/dist/bubbles/service-bubble/telegram.d.ts +1561 -1561
  108. package/dist/bubbles/service-bubble/xero/xero.d.ts +30 -30
  109. package/dist/bubbles/service-bubble/xero/xero.schema.d.ts +30 -30
  110. package/dist/bubbles/service-bubble/zendesk/zendesk.d.ts +93 -93
  111. package/dist/bubbles/service-bubble/zendesk/zendesk.schema.d.ts +93 -93
  112. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.d.ts +19 -19
  113. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.schema.d.ts +21 -21
  114. package/dist/bubbles/tool-bubble/browser-tools/_shared/schema.d.ts +2 -2
  115. package/dist/bubbles/tool-bubble/browser-tools/linkedin-accept-invitations/schema.d.ts +2 -2
  116. package/dist/bubbles/tool-bubble/browser-tools/linkedin-accept-invitations/tool.d.ts +2 -2
  117. package/dist/bubbles/tool-bubble/browser-tools/linkedin-connection/schema.d.ts +2 -2
  118. package/dist/bubbles/tool-bubble/browser-tools/linkedin-connection/tool.d.ts +2 -2
  119. package/dist/bubbles/tool-bubble/browser-tools/linkedin-received-invitations/schema.d.ts +2 -2
  120. package/dist/bubbles/tool-bubble/browser-tools/linkedin-received-invitations/tool.d.ts +2 -2
  121. package/dist/bubbles/tool-bubble/browser-tools/linkedin-sent-invitations/schema.d.ts +2 -2
  122. package/dist/bubbles/tool-bubble/browser-tools/linkedin-sent-invitations/tool.d.ts +2 -2
  123. package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.d.ts +20 -20
  124. package/dist/bubbles/tool-bubble/chart-js-tool.d.ts +26 -26
  125. package/dist/bubbles/tool-bubble/code-edit-tool.d.ts +4 -4
  126. package/dist/bubbles/tool-bubble/company-enrichment-tool.d.ts +62 -62
  127. package/dist/bubbles/tool-bubble/get-bubble-details-tool.d.ts +4 -4
  128. package/dist/bubbles/tool-bubble/get-trigger-detail-tool.d.ts +4 -4
  129. package/dist/bubbles/tool-bubble/google-maps-tool.d.ts +4 -4
  130. package/dist/bubbles/tool-bubble/instagram-tool.d.ts +14 -14
  131. package/dist/bubbles/tool-bubble/linkedin-connection-tool/index.d.ts +3 -0
  132. package/dist/bubbles/tool-bubble/linkedin-connection-tool/index.d.ts.map +1 -0
  133. package/dist/bubbles/tool-bubble/linkedin-connection-tool/index.js +3 -0
  134. package/dist/bubbles/tool-bubble/linkedin-connection-tool/index.js.map +1 -0
  135. package/dist/bubbles/tool-bubble/linkedin-connection-tool/linkedin-connection-tool.d.ts +160 -0
  136. package/dist/bubbles/tool-bubble/linkedin-connection-tool/linkedin-connection-tool.d.ts.map +1 -0
  137. package/dist/bubbles/tool-bubble/linkedin-connection-tool/linkedin-connection-tool.js +706 -0
  138. package/dist/bubbles/tool-bubble/linkedin-connection-tool/linkedin-connection-tool.js.map +1 -0
  139. package/dist/bubbles/tool-bubble/linkedin-connection-tool/linkedin-connection-tool.schema.d.ts +93 -0
  140. package/dist/bubbles/tool-bubble/linkedin-connection-tool/linkedin-connection-tool.schema.d.ts.map +1 -0
  141. package/dist/bubbles/tool-bubble/linkedin-connection-tool/linkedin-connection-tool.schema.js +50 -0
  142. package/dist/bubbles/tool-bubble/linkedin-connection-tool/linkedin-connection-tool.schema.js.map +1 -0
  143. package/dist/bubbles/tool-bubble/linkedin-tool.d.ts +567 -567
  144. package/dist/bubbles/tool-bubble/list-airtable-bases-tool.d.ts +4 -4
  145. package/dist/bubbles/tool-bubble/list-airtable-tables-tool.d.ts +4 -4
  146. package/dist/bubbles/tool-bubble/list-bubbles-tool.d.ts +4 -4
  147. package/dist/bubbles/tool-bubble/list-capabilities-tool.d.ts +4 -4
  148. package/dist/bubbles/tool-bubble/people-search-tool.d.ts +58 -58
  149. package/dist/bubbles/tool-bubble/reddit-scrape-tool.d.ts +32 -32
  150. package/dist/bubbles/tool-bubble/research-agent-tool.d.ts +4 -4
  151. package/dist/bubbles/tool-bubble/sql-query-tool.d.ts +8 -8
  152. package/dist/bubbles/tool-bubble/tiktok-tool.d.ts +88 -88
  153. package/dist/bubbles/tool-bubble/tool-template.d.ts +4 -4
  154. package/dist/bubbles/tool-bubble/twitter-tool.d.ts +188 -188
  155. package/dist/bubbles/tool-bubble/web-crawl-tool.d.ts +22 -22
  156. package/dist/bubbles/tool-bubble/web-extract-tool.d.ts +8 -8
  157. package/dist/bubbles/tool-bubble/web-scrape-tool.d.ts +8 -8
  158. package/dist/bubbles/tool-bubble/web-search-tool.d.ts +8 -8
  159. package/dist/bubbles/tool-bubble/yc-scraper-tool.d.ts +26 -26
  160. package/dist/bubbles/tool-bubble/youtube-tool.d.ts +38 -38
  161. package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.d.ts +114 -0
  162. package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.d.ts.map +1 -0
  163. package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.js +777 -0
  164. package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.js.map +1 -0
  165. package/dist/bubbles/workflow-bubble/database-analyzer.workflow.d.ts +4 -4
  166. package/dist/bubbles/workflow-bubble/generate-document.workflow.d.ts +40 -40
  167. package/dist/bubbles/workflow-bubble/parse-document.workflow.d.ts +8 -8
  168. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts +72 -72
  169. package/dist/bubbles/workflow-bubble/pdf-ocr.workflow.d.ts +32 -32
  170. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.d.ts +32 -32
  171. package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts +104 -104
  172. package/dist/bubbles/workflow-bubble/slack-notifier.workflow.d.ts +8 -8
  173. package/dist/bubbles.json +697 -2
  174. package/dist/index.d.ts +2 -0
  175. package/dist/index.d.ts.map +1 -1
  176. package/dist/index.js +1 -0
  177. package/dist/index.js.map +1 -1
  178. package/dist/types/ai-models.d.ts +4 -0
  179. package/dist/types/ai-models.d.ts.map +1 -0
  180. package/dist/types/ai-models.js +16 -0
  181. package/dist/types/ai-models.js.map +1 -0
  182. package/dist/utils/param-helper.d.ts +2 -0
  183. package/dist/utils/param-helper.d.ts.map +1 -0
  184. package/dist/utils/param-helper.js +5 -0
  185. package/dist/utils/param-helper.js.map +1 -0
  186. package/package.json +2 -2
@@ -0,0 +1,375 @@
1
+ import { ServiceBubble } from '../../../types/service-bubble-class.js';
2
+ import { CredentialType } from '@bubblelab/shared-schemas';
3
+ import { PylonParamsSchema, PylonResultSchema, } from './pylon.schema.js';
4
+ const PYLON_API_BASE = 'https://api.usepylon.com';
5
+ export class PylonBubble extends ServiceBubble {
6
+ static type = 'service';
7
+ static service = 'pylon';
8
+ static authType = 'apikey';
9
+ static bubbleName = 'pylon';
10
+ static schema = PylonParamsSchema;
11
+ static resultSchema = PylonResultSchema;
12
+ static shortDescription = 'Pylon B2B support platform for managing issues, messages, accounts, and contacts';
13
+ static longDescription = `
14
+ Pylon is a B2B customer support platform that tracks customer issues across
15
+ multiple channels (Slack, Email, Microsoft Teams, Chat Widget).
16
+
17
+ Supported operations:
18
+ - Issues: Create, list, get, and update support issues
19
+ - Messages: Send replies and list messages on issues
20
+ - Accounts: Create, list, and update customer accounts
21
+ - Contacts: List contacts
22
+
23
+ Features:
24
+ - Tagging and custom field support
25
+ - Priority and state management for issues
26
+ - Internal notes via private messages
27
+ - Cursor-based pagination
28
+ `;
29
+ static alias = 'pylon';
30
+ constructor(params = {
31
+ operation: 'list_issues',
32
+ }, context) {
33
+ super(params, context);
34
+ }
35
+ async testCredential() {
36
+ const credential = this.chooseCredential();
37
+ if (!credential) {
38
+ throw new Error('Pylon API key is required');
39
+ }
40
+ try {
41
+ const response = await fetch(`${PYLON_API_BASE}/me`, {
42
+ method: 'GET',
43
+ headers: {
44
+ Authorization: `Bearer ${credential}`,
45
+ },
46
+ });
47
+ return response.ok;
48
+ }
49
+ catch {
50
+ return false;
51
+ }
52
+ }
53
+ chooseCredential() {
54
+ const { credentials } = this.params;
55
+ if (!credentials || typeof credentials !== 'object') {
56
+ throw new Error('No Pylon credentials provided');
57
+ }
58
+ return credentials[CredentialType.PYLON_API_KEY];
59
+ }
60
+ async makeApiRequest(endpoint, method = 'GET', body, queryParams) {
61
+ const credential = this.chooseCredential();
62
+ if (!credential) {
63
+ throw new Error('Pylon API key is required');
64
+ }
65
+ let url = `${PYLON_API_BASE}${endpoint}`;
66
+ if (queryParams && Object.keys(queryParams).length > 0) {
67
+ const params = new URLSearchParams(queryParams);
68
+ url += `?${params.toString()}`;
69
+ }
70
+ const headers = {
71
+ Authorization: `Bearer ${credential}`,
72
+ 'Content-Type': 'application/json',
73
+ };
74
+ const response = await fetch(url, {
75
+ method,
76
+ headers,
77
+ ...(body ? { body: JSON.stringify(body) } : {}),
78
+ });
79
+ const data = (await response.json());
80
+ return { ok: response.ok, status: response.status, data };
81
+ }
82
+ async performAction(context) {
83
+ void context;
84
+ const { operation } = this.params;
85
+ try {
86
+ const params = this.params;
87
+ const result = await (async () => {
88
+ switch (operation) {
89
+ case 'create_issue':
90
+ return await this.createIssue(params);
91
+ case 'list_issues':
92
+ return await this.listIssues(params);
93
+ case 'get_issue':
94
+ return await this.getIssue(params);
95
+ case 'update_issue':
96
+ return await this.updateIssue(params);
97
+ case 'send_message':
98
+ return await this.sendMessage(params);
99
+ case 'list_messages':
100
+ return await this.listMessages(params);
101
+ case 'create_account':
102
+ return await this.createAccount(params);
103
+ case 'list_accounts':
104
+ return await this.listAccounts(params);
105
+ case 'update_account':
106
+ return await this.updateAccount(params);
107
+ case 'list_contacts':
108
+ return await this.listContacts(params);
109
+ default:
110
+ throw new Error(`Unknown operation: ${operation}`);
111
+ }
112
+ })();
113
+ return result;
114
+ }
115
+ catch (error) {
116
+ return {
117
+ operation,
118
+ success: false,
119
+ error: error instanceof Error ? error.message : 'Unknown error occurred',
120
+ };
121
+ }
122
+ }
123
+ // ─── Issue Operations ────────────────────────────────────────────────────
124
+ async createIssue(params) {
125
+ const body = {
126
+ title: params.title,
127
+ };
128
+ if (params.body_html)
129
+ body.body_html = params.body_html;
130
+ if (params.assignee_id)
131
+ body.assignee_id = params.assignee_id;
132
+ if (params.priority)
133
+ body.priority = params.priority;
134
+ if (params.tags)
135
+ body.tags = params.tags;
136
+ if (params.account_id)
137
+ body.account_id = params.account_id;
138
+ if (params.requester_email)
139
+ body.requester_email = params.requester_email;
140
+ const { ok, data } = await this.makeApiRequest('/issues', 'POST', body);
141
+ if (!ok) {
142
+ const errors = data.errors || [];
143
+ return {
144
+ operation: 'create_issue',
145
+ success: false,
146
+ error: errors.join(', ') || 'Failed to create issue',
147
+ };
148
+ }
149
+ return {
150
+ operation: 'create_issue',
151
+ success: true,
152
+ issue_id: data.data?.id || data.id || '',
153
+ error: '',
154
+ };
155
+ }
156
+ async listIssues(params) {
157
+ const query = {};
158
+ if (params.limit)
159
+ query.limit = String(params.limit);
160
+ if (params.cursor)
161
+ query.cursor = params.cursor;
162
+ if (params.state)
163
+ query.state = params.state;
164
+ const { ok, data } = await this.makeApiRequest('/issues', 'GET', undefined, query);
165
+ if (!ok) {
166
+ const errors = data.errors || [];
167
+ return {
168
+ operation: 'list_issues',
169
+ success: false,
170
+ error: errors.join(', ') || 'Failed to list issues',
171
+ };
172
+ }
173
+ return {
174
+ operation: 'list_issues',
175
+ success: true,
176
+ issues: data.data || [],
177
+ cursor: data.cursor,
178
+ error: '',
179
+ };
180
+ }
181
+ async getIssue(params) {
182
+ const { ok, data } = await this.makeApiRequest(`/issues/${encodeURIComponent(params.issue_id)}`);
183
+ if (!ok) {
184
+ const errors = data.errors || [];
185
+ return {
186
+ operation: 'get_issue',
187
+ success: false,
188
+ error: errors.join(', ') || 'Failed to get issue',
189
+ };
190
+ }
191
+ return {
192
+ operation: 'get_issue',
193
+ success: true,
194
+ issue: data.data || data,
195
+ error: '',
196
+ };
197
+ }
198
+ async updateIssue(params) {
199
+ const body = {};
200
+ if (params.title !== undefined)
201
+ body.title = params.title;
202
+ if (params.state !== undefined)
203
+ body.state = params.state;
204
+ if (params.priority !== undefined)
205
+ body.priority = params.priority;
206
+ if (params.assignee_id !== undefined)
207
+ body.assignee_id = params.assignee_id;
208
+ if (params.tags !== undefined)
209
+ body.tags = params.tags;
210
+ if (params.tags_apply_mode !== undefined)
211
+ body.tags_apply_mode = params.tags_apply_mode;
212
+ const { ok, data } = await this.makeApiRequest(`/issues/${encodeURIComponent(params.issue_id)}`, 'PATCH', body);
213
+ if (!ok) {
214
+ const errors = data.errors || [];
215
+ return {
216
+ operation: 'update_issue',
217
+ success: false,
218
+ error: errors.join(', ') || 'Failed to update issue',
219
+ };
220
+ }
221
+ return {
222
+ operation: 'update_issue',
223
+ success: true,
224
+ error: '',
225
+ };
226
+ }
227
+ // ─── Message Operations ──────────────────────────────────────────────────
228
+ async sendMessage(params) {
229
+ const body = {
230
+ body_html: params.body_html,
231
+ };
232
+ if (params.is_private !== undefined)
233
+ body.is_private = params.is_private;
234
+ const { ok, data } = await this.makeApiRequest(`/issues/${encodeURIComponent(params.issue_id)}/messages`, 'POST', body);
235
+ if (!ok) {
236
+ const errors = data.errors || [];
237
+ return {
238
+ operation: 'send_message',
239
+ success: false,
240
+ error: errors.join(', ') || 'Failed to send message',
241
+ };
242
+ }
243
+ return {
244
+ operation: 'send_message',
245
+ success: true,
246
+ message_id: data.data?.id || '',
247
+ error: '',
248
+ };
249
+ }
250
+ async listMessages(params) {
251
+ const query = {};
252
+ if (params.limit)
253
+ query.limit = String(params.limit);
254
+ if (params.cursor)
255
+ query.cursor = params.cursor;
256
+ const { ok, data } = await this.makeApiRequest(`/issues/${encodeURIComponent(params.issue_id)}/messages`, 'GET', undefined, query);
257
+ if (!ok) {
258
+ const errors = data.errors || [];
259
+ return {
260
+ operation: 'list_messages',
261
+ success: false,
262
+ error: errors.join(', ') || 'Failed to list messages',
263
+ };
264
+ }
265
+ return {
266
+ operation: 'list_messages',
267
+ success: true,
268
+ messages: data.data || [],
269
+ cursor: data.cursor,
270
+ error: '',
271
+ };
272
+ }
273
+ // ─── Account Operations ──────────────────────────────────────────────────
274
+ async createAccount(params) {
275
+ const body = {
276
+ name: params.name,
277
+ };
278
+ if (params.owner_id)
279
+ body.owner_id = params.owner_id;
280
+ if (params.tags)
281
+ body.tags = params.tags;
282
+ if (params.custom_fields)
283
+ body.custom_fields = params.custom_fields;
284
+ const { ok, data } = await this.makeApiRequest('/accounts', 'POST', body);
285
+ if (!ok) {
286
+ const errors = data.errors || [];
287
+ return {
288
+ operation: 'create_account',
289
+ success: false,
290
+ error: errors.join(', ') || 'Failed to create account',
291
+ };
292
+ }
293
+ return {
294
+ operation: 'create_account',
295
+ success: true,
296
+ account_id: data.data?.id || data.id || '',
297
+ error: '',
298
+ };
299
+ }
300
+ async listAccounts(params) {
301
+ const query = {};
302
+ if (params.limit)
303
+ query.limit = String(params.limit);
304
+ if (params.cursor)
305
+ query.cursor = params.cursor;
306
+ const { ok, data } = await this.makeApiRequest('/accounts', 'GET', undefined, query);
307
+ if (!ok) {
308
+ const errors = data.errors || [];
309
+ return {
310
+ operation: 'list_accounts',
311
+ success: false,
312
+ error: errors.join(', ') || 'Failed to list accounts',
313
+ };
314
+ }
315
+ return {
316
+ operation: 'list_accounts',
317
+ success: true,
318
+ accounts: data.data || [],
319
+ cursor: data.cursor,
320
+ error: '',
321
+ };
322
+ }
323
+ async updateAccount(params) {
324
+ const body = {};
325
+ if (params.name !== undefined)
326
+ body.name = params.name;
327
+ if (params.owner_id !== undefined)
328
+ body.owner_id = params.owner_id;
329
+ if (params.tags !== undefined)
330
+ body.tags = params.tags;
331
+ if (params.tags_apply_mode !== undefined)
332
+ body.tags_apply_mode = params.tags_apply_mode;
333
+ if (params.custom_fields !== undefined)
334
+ body.custom_fields = params.custom_fields;
335
+ const { ok, data } = await this.makeApiRequest(`/accounts/${encodeURIComponent(params.account_id)}`, 'PATCH', body);
336
+ if (!ok) {
337
+ const errors = data.errors || [];
338
+ return {
339
+ operation: 'update_account',
340
+ success: false,
341
+ error: errors.join(', ') || 'Failed to update account',
342
+ };
343
+ }
344
+ return {
345
+ operation: 'update_account',
346
+ success: true,
347
+ error: '',
348
+ };
349
+ }
350
+ // ─── Contact Operations ──────────────────────────────────────────────────
351
+ async listContacts(params) {
352
+ const query = {};
353
+ if (params.limit)
354
+ query.limit = String(params.limit);
355
+ if (params.cursor)
356
+ query.cursor = params.cursor;
357
+ const { ok, data } = await this.makeApiRequest('/contacts', 'GET', undefined, query);
358
+ if (!ok) {
359
+ const errors = data.errors || [];
360
+ return {
361
+ operation: 'list_contacts',
362
+ success: false,
363
+ error: errors.join(', ') || 'Failed to list contacts',
364
+ };
365
+ }
366
+ return {
367
+ operation: 'list_contacts',
368
+ success: true,
369
+ contacts: data.data || [],
370
+ cursor: data.cursor,
371
+ error: '',
372
+ };
373
+ }
374
+ }
375
+ //# sourceMappingURL=pylon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pylon.js","sourceRoot":"","sources":["../../../../src/bubbles/service-bubble/pylon/pylon.ts"],"names":[],"mappings":"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"}