@marktoflow/integrations 2.0.0-alpha.9 → 2.0.2

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 (349) hide show
  1. package/README.md +75 -1293
  2. package/dist/adapters/claude-agent-workflow.d.ts +4 -4
  3. package/dist/adapters/claude-agent.d.ts +18 -0
  4. package/dist/adapters/claude-agent.d.ts.map +1 -1
  5. package/dist/adapters/claude-agent.js +36 -0
  6. package/dist/adapters/claude-agent.js.map +1 -1
  7. package/dist/adapters/claude-code.d.ts +18 -0
  8. package/dist/adapters/claude-code.d.ts.map +1 -1
  9. package/dist/adapters/claude-code.js +33 -0
  10. package/dist/adapters/claude-code.js.map +1 -1
  11. package/dist/adapters/codex-types.d.ts +8 -8
  12. package/dist/adapters/codex-workflow.d.ts +2 -2
  13. package/dist/adapters/codex.d.ts +18 -0
  14. package/dist/adapters/codex.d.ts.map +1 -1
  15. package/dist/adapters/codex.js +26 -0
  16. package/dist/adapters/codex.js.map +1 -1
  17. package/dist/adapters/github-copilot-types.d.ts +42 -42
  18. package/dist/adapters/github-copilot-workflow.d.ts +4 -4
  19. package/dist/adapters/github-copilot.d.ts +18 -0
  20. package/dist/adapters/github-copilot.d.ts.map +1 -1
  21. package/dist/adapters/github-copilot.js +29 -0
  22. package/dist/adapters/github-copilot.js.map +1 -1
  23. package/dist/adapters/ollama-types.d.ts +746 -0
  24. package/dist/adapters/ollama-types.d.ts.map +1 -0
  25. package/dist/adapters/ollama-types.js +65 -0
  26. package/dist/adapters/ollama-types.js.map +1 -0
  27. package/dist/adapters/ollama.d.ts +157 -0
  28. package/dist/adapters/ollama.d.ts.map +1 -1
  29. package/dist/adapters/ollama.js +425 -3
  30. package/dist/adapters/ollama.js.map +1 -1
  31. package/dist/adapters/opencode.d.ts +18 -0
  32. package/dist/adapters/opencode.d.ts.map +1 -1
  33. package/dist/adapters/opencode.js +23 -0
  34. package/dist/adapters/opencode.js.map +1 -1
  35. package/dist/index.d.ts +24 -0
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +52 -6
  38. package/dist/index.js.map +1 -1
  39. package/dist/reliability/errors.d.ts +36 -0
  40. package/dist/reliability/errors.d.ts.map +1 -0
  41. package/dist/reliability/errors.js +151 -0
  42. package/dist/reliability/errors.js.map +1 -0
  43. package/dist/reliability/index.d.ts +10 -0
  44. package/dist/reliability/index.d.ts.map +1 -0
  45. package/dist/reliability/index.js +10 -0
  46. package/dist/reliability/index.js.map +1 -0
  47. package/dist/reliability/schemas/airtable.d.ts +7 -0
  48. package/dist/reliability/schemas/airtable.d.ts.map +1 -0
  49. package/dist/reliability/schemas/airtable.js +56 -0
  50. package/dist/reliability/schemas/airtable.js.map +1 -0
  51. package/dist/reliability/schemas/asana.d.ts +7 -0
  52. package/dist/reliability/schemas/asana.d.ts.map +1 -0
  53. package/dist/reliability/schemas/asana.js +45 -0
  54. package/dist/reliability/schemas/asana.js.map +1 -0
  55. package/dist/reliability/schemas/aws-s3.d.ts +7 -0
  56. package/dist/reliability/schemas/aws-s3.d.ts.map +1 -0
  57. package/dist/reliability/schemas/aws-s3.js +42 -0
  58. package/dist/reliability/schemas/aws-s3.js.map +1 -0
  59. package/dist/reliability/schemas/calendly.d.ts +6 -0
  60. package/dist/reliability/schemas/calendly.d.ts.map +1 -0
  61. package/dist/reliability/schemas/calendly.js +43 -0
  62. package/dist/reliability/schemas/calendly.js.map +1 -0
  63. package/dist/reliability/schemas/confluence.d.ts +7 -0
  64. package/dist/reliability/schemas/confluence.d.ts.map +1 -0
  65. package/dist/reliability/schemas/confluence.js +46 -0
  66. package/dist/reliability/schemas/confluence.js.map +1 -0
  67. package/dist/reliability/schemas/discord.d.ts +6 -0
  68. package/dist/reliability/schemas/discord.d.ts.map +1 -0
  69. package/dist/reliability/schemas/discord.js +40 -0
  70. package/dist/reliability/schemas/discord.js.map +1 -0
  71. package/dist/reliability/schemas/dropbox.d.ts +7 -0
  72. package/dist/reliability/schemas/dropbox.d.ts.map +1 -0
  73. package/dist/reliability/schemas/dropbox.js +47 -0
  74. package/dist/reliability/schemas/dropbox.js.map +1 -0
  75. package/dist/reliability/schemas/github.d.ts +9 -0
  76. package/dist/reliability/schemas/github.d.ts.map +1 -0
  77. package/dist/reliability/schemas/github.js +101 -0
  78. package/dist/reliability/schemas/github.js.map +1 -0
  79. package/dist/reliability/schemas/gitlab.d.ts +6 -0
  80. package/dist/reliability/schemas/gitlab.d.ts.map +1 -0
  81. package/dist/reliability/schemas/gitlab.js +102 -0
  82. package/dist/reliability/schemas/gitlab.js.map +1 -0
  83. package/dist/reliability/schemas/gmail.d.ts +9 -0
  84. package/dist/reliability/schemas/gmail.d.ts.map +1 -0
  85. package/dist/reliability/schemas/gmail.js +59 -0
  86. package/dist/reliability/schemas/gmail.js.map +1 -0
  87. package/dist/reliability/schemas/google-calendar.d.ts +7 -0
  88. package/dist/reliability/schemas/google-calendar.d.ts.map +1 -0
  89. package/dist/reliability/schemas/google-calendar.js +58 -0
  90. package/dist/reliability/schemas/google-calendar.js.map +1 -0
  91. package/dist/reliability/schemas/google-docs.d.ts +7 -0
  92. package/dist/reliability/schemas/google-docs.d.ts.map +1 -0
  93. package/dist/reliability/schemas/google-docs.js +39 -0
  94. package/dist/reliability/schemas/google-docs.js.map +1 -0
  95. package/dist/reliability/schemas/google-drive.d.ts +7 -0
  96. package/dist/reliability/schemas/google-drive.d.ts.map +1 -0
  97. package/dist/reliability/schemas/google-drive.js +56 -0
  98. package/dist/reliability/schemas/google-drive.js.map +1 -0
  99. package/dist/reliability/schemas/google-sheets.d.ts +7 -0
  100. package/dist/reliability/schemas/google-sheets.d.ts.map +1 -0
  101. package/dist/reliability/schemas/google-sheets.js +40 -0
  102. package/dist/reliability/schemas/google-sheets.js.map +1 -0
  103. package/dist/reliability/schemas/hubspot.d.ts +6 -0
  104. package/dist/reliability/schemas/hubspot.d.ts.map +1 -0
  105. package/dist/reliability/schemas/hubspot.js +92 -0
  106. package/dist/reliability/schemas/hubspot.js.map +1 -0
  107. package/dist/reliability/schemas/index.d.ts +45 -0
  108. package/dist/reliability/schemas/index.d.ts.map +1 -0
  109. package/dist/reliability/schemas/index.js +45 -0
  110. package/dist/reliability/schemas/index.js.map +1 -0
  111. package/dist/reliability/schemas/intercom.d.ts +6 -0
  112. package/dist/reliability/schemas/intercom.d.ts.map +1 -0
  113. package/dist/reliability/schemas/intercom.js +81 -0
  114. package/dist/reliability/schemas/intercom.js.map +1 -0
  115. package/dist/reliability/schemas/jira.d.ts +6 -0
  116. package/dist/reliability/schemas/jira.d.ts.map +1 -0
  117. package/dist/reliability/schemas/jira.js +50 -0
  118. package/dist/reliability/schemas/jira.js.map +1 -0
  119. package/dist/reliability/schemas/linear.d.ts +6 -0
  120. package/dist/reliability/schemas/linear.d.ts.map +1 -0
  121. package/dist/reliability/schemas/linear.js +39 -0
  122. package/dist/reliability/schemas/linear.js.map +1 -0
  123. package/dist/reliability/schemas/mailchimp.d.ts +7 -0
  124. package/dist/reliability/schemas/mailchimp.d.ts.map +1 -0
  125. package/dist/reliability/schemas/mailchimp.js +58 -0
  126. package/dist/reliability/schemas/mailchimp.js.map +1 -0
  127. package/dist/reliability/schemas/monday.d.ts +6 -0
  128. package/dist/reliability/schemas/monday.d.ts.map +1 -0
  129. package/dist/reliability/schemas/monday.js +52 -0
  130. package/dist/reliability/schemas/monday.js.map +1 -0
  131. package/dist/reliability/schemas/mysql.d.ts +7 -0
  132. package/dist/reliability/schemas/mysql.d.ts.map +1 -0
  133. package/dist/reliability/schemas/mysql.js +35 -0
  134. package/dist/reliability/schemas/mysql.js.map +1 -0
  135. package/dist/reliability/schemas/notion.d.ts +6 -0
  136. package/dist/reliability/schemas/notion.d.ts.map +1 -0
  137. package/dist/reliability/schemas/notion.js +63 -0
  138. package/dist/reliability/schemas/notion.js.map +1 -0
  139. package/dist/reliability/schemas/outlook.d.ts +7 -0
  140. package/dist/reliability/schemas/outlook.d.ts.map +1 -0
  141. package/dist/reliability/schemas/outlook.js +50 -0
  142. package/dist/reliability/schemas/outlook.js.map +1 -0
  143. package/dist/reliability/schemas/pagerduty.d.ts +6 -0
  144. package/dist/reliability/schemas/pagerduty.d.ts.map +1 -0
  145. package/dist/reliability/schemas/pagerduty.js +52 -0
  146. package/dist/reliability/schemas/pagerduty.js.map +1 -0
  147. package/dist/reliability/schemas/postgres.d.ts +7 -0
  148. package/dist/reliability/schemas/postgres.d.ts.map +1 -0
  149. package/dist/reliability/schemas/postgres.js +35 -0
  150. package/dist/reliability/schemas/postgres.js.map +1 -0
  151. package/dist/reliability/schemas/salesforce.d.ts +6 -0
  152. package/dist/reliability/schemas/salesforce.d.ts.map +1 -0
  153. package/dist/reliability/schemas/salesforce.js +35 -0
  154. package/dist/reliability/schemas/salesforce.js.map +1 -0
  155. package/dist/reliability/schemas/sendgrid.d.ts +7 -0
  156. package/dist/reliability/schemas/sendgrid.d.ts.map +1 -0
  157. package/dist/reliability/schemas/sendgrid.js +34 -0
  158. package/dist/reliability/schemas/sendgrid.js.map +1 -0
  159. package/dist/reliability/schemas/sentry.d.ts +6 -0
  160. package/dist/reliability/schemas/sentry.d.ts.map +1 -0
  161. package/dist/reliability/schemas/sentry.js +40 -0
  162. package/dist/reliability/schemas/sentry.js.map +1 -0
  163. package/dist/reliability/schemas/shopify.d.ts +7 -0
  164. package/dist/reliability/schemas/shopify.d.ts.map +1 -0
  165. package/dist/reliability/schemas/shopify.js +55 -0
  166. package/dist/reliability/schemas/shopify.js.map +1 -0
  167. package/dist/reliability/schemas/slack.d.ts +7 -0
  168. package/dist/reliability/schemas/slack.d.ts.map +1 -0
  169. package/dist/reliability/schemas/slack.js +66 -0
  170. package/dist/reliability/schemas/slack.js.map +1 -0
  171. package/dist/reliability/schemas/stripe.d.ts +7 -0
  172. package/dist/reliability/schemas/stripe.d.ts.map +1 -0
  173. package/dist/reliability/schemas/stripe.js +58 -0
  174. package/dist/reliability/schemas/stripe.js.map +1 -0
  175. package/dist/reliability/schemas/supabase.d.ts +7 -0
  176. package/dist/reliability/schemas/supabase.d.ts.map +1 -0
  177. package/dist/reliability/schemas/supabase.js +50 -0
  178. package/dist/reliability/schemas/supabase.js.map +1 -0
  179. package/dist/reliability/schemas/teams.d.ts +7 -0
  180. package/dist/reliability/schemas/teams.d.ts.map +1 -0
  181. package/dist/reliability/schemas/teams.js +44 -0
  182. package/dist/reliability/schemas/teams.js.map +1 -0
  183. package/dist/reliability/schemas/telegram.d.ts +7 -0
  184. package/dist/reliability/schemas/telegram.d.ts.map +1 -0
  185. package/dist/reliability/schemas/telegram.js +53 -0
  186. package/dist/reliability/schemas/telegram.js.map +1 -0
  187. package/dist/reliability/schemas/trello.d.ts +7 -0
  188. package/dist/reliability/schemas/trello.d.ts.map +1 -0
  189. package/dist/reliability/schemas/trello.js +51 -0
  190. package/dist/reliability/schemas/trello.js.map +1 -0
  191. package/dist/reliability/schemas/twilio.d.ts +7 -0
  192. package/dist/reliability/schemas/twilio.d.ts.map +1 -0
  193. package/dist/reliability/schemas/twilio.js +42 -0
  194. package/dist/reliability/schemas/twilio.js.map +1 -0
  195. package/dist/reliability/schemas/whatsapp.d.ts +7 -0
  196. package/dist/reliability/schemas/whatsapp.d.ts.map +1 -0
  197. package/dist/reliability/schemas/whatsapp.js +50 -0
  198. package/dist/reliability/schemas/whatsapp.js.map +1 -0
  199. package/dist/reliability/schemas/zendesk.d.ts +7 -0
  200. package/dist/reliability/schemas/zendesk.d.ts.map +1 -0
  201. package/dist/reliability/schemas/zendesk.js +53 -0
  202. package/dist/reliability/schemas/zendesk.js.map +1 -0
  203. package/dist/reliability/wrapper.d.ts +46 -0
  204. package/dist/reliability/wrapper.d.ts.map +1 -0
  205. package/dist/reliability/wrapper.js +174 -0
  206. package/dist/reliability/wrapper.js.map +1 -0
  207. package/dist/services/airtable.d.ts +3 -4
  208. package/dist/services/airtable.d.ts.map +1 -1
  209. package/dist/services/airtable.js +16 -24
  210. package/dist/services/airtable.js.map +1 -1
  211. package/dist/services/asana.d.ts.map +1 -1
  212. package/dist/services/asana.js +8 -2
  213. package/dist/services/asana.js.map +1 -1
  214. package/dist/services/aws-s3.d.ts.map +1 -1
  215. package/dist/services/aws-s3.js +8 -2
  216. package/dist/services/aws-s3.js.map +1 -1
  217. package/dist/services/base-client.d.ts +102 -0
  218. package/dist/services/base-client.d.ts.map +1 -0
  219. package/dist/services/base-client.js +219 -0
  220. package/dist/services/base-client.js.map +1 -0
  221. package/dist/services/calendly.d.ts +158 -0
  222. package/dist/services/calendly.d.ts.map +1 -0
  223. package/dist/services/calendly.js +118 -0
  224. package/dist/services/calendly.js.map +1 -0
  225. package/dist/services/confluence.d.ts +4 -7
  226. package/dist/services/confluence.d.ts.map +1 -1
  227. package/dist/services/confluence.js +19 -28
  228. package/dist/services/confluence.js.map +1 -1
  229. package/dist/services/discord.d.ts +2 -4
  230. package/dist/services/discord.d.ts.map +1 -1
  231. package/dist/services/discord.js +17 -25
  232. package/dist/services/discord.js.map +1 -1
  233. package/dist/services/dropbox.d.ts.map +1 -1
  234. package/dist/services/dropbox.js +8 -2
  235. package/dist/services/dropbox.js.map +1 -1
  236. package/dist/services/github.d.ts.map +1 -1
  237. package/dist/services/github.js +11 -5
  238. package/dist/services/github.js.map +1 -1
  239. package/dist/services/gitlab.d.ts +169 -0
  240. package/dist/services/gitlab.d.ts.map +1 -0
  241. package/dist/services/gitlab.js +164 -0
  242. package/dist/services/gitlab.js.map +1 -0
  243. package/dist/services/gmail.d.ts.map +1 -1
  244. package/dist/services/gmail.js +71 -4
  245. package/dist/services/gmail.js.map +1 -1
  246. package/dist/services/google-calendar.d.ts.map +1 -1
  247. package/dist/services/google-calendar.js +48 -4
  248. package/dist/services/google-calendar.js.map +1 -1
  249. package/dist/services/google-docs.d.ts.map +1 -1
  250. package/dist/services/google-docs.js +48 -4
  251. package/dist/services/google-docs.js.map +1 -1
  252. package/dist/services/google-drive.d.ts.map +1 -1
  253. package/dist/services/google-drive.js +48 -4
  254. package/dist/services/google-drive.js.map +1 -1
  255. package/dist/services/google-sheets.d.ts.map +1 -1
  256. package/dist/services/google-sheets.js +48 -4
  257. package/dist/services/google-sheets.js.map +1 -1
  258. package/dist/services/http.d.ts.map +1 -1
  259. package/dist/services/http.js +57 -1
  260. package/dist/services/http.js.map +1 -1
  261. package/dist/services/hubspot.d.ts +181 -0
  262. package/dist/services/hubspot.d.ts.map +1 -0
  263. package/dist/services/hubspot.js +171 -0
  264. package/dist/services/hubspot.js.map +1 -0
  265. package/dist/services/intercom.d.ts +186 -0
  266. package/dist/services/intercom.d.ts.map +1 -0
  267. package/dist/services/intercom.js +160 -0
  268. package/dist/services/intercom.js.map +1 -0
  269. package/dist/services/jira.d.ts.map +1 -1
  270. package/dist/services/jira.js +24 -2
  271. package/dist/services/jira.js.map +1 -1
  272. package/dist/services/linear.d.ts.map +1 -1
  273. package/dist/services/linear.js +10 -2
  274. package/dist/services/linear.js.map +1 -1
  275. package/dist/services/mailchimp.d.ts.map +1 -1
  276. package/dist/services/mailchimp.js +8 -2
  277. package/dist/services/mailchimp.js.map +1 -1
  278. package/dist/services/monday.d.ts +156 -0
  279. package/dist/services/monday.d.ts.map +1 -0
  280. package/dist/services/monday.js +256 -0
  281. package/dist/services/monday.js.map +1 -0
  282. package/dist/services/mysql.d.ts.map +1 -1
  283. package/dist/services/mysql.js +8 -2
  284. package/dist/services/mysql.js.map +1 -1
  285. package/dist/services/notion.d.ts +2 -3
  286. package/dist/services/notion.d.ts.map +1 -1
  287. package/dist/services/notion.js +17 -17
  288. package/dist/services/notion.js.map +1 -1
  289. package/dist/services/outlook.d.ts.map +1 -1
  290. package/dist/services/outlook.js +100 -6
  291. package/dist/services/outlook.js.map +1 -1
  292. package/dist/services/pagerduty.d.ts +128 -0
  293. package/dist/services/pagerduty.d.ts.map +1 -0
  294. package/dist/services/pagerduty.js +150 -0
  295. package/dist/services/pagerduty.js.map +1 -0
  296. package/dist/services/postgres.d.ts.map +1 -1
  297. package/dist/services/postgres.js +8 -2
  298. package/dist/services/postgres.js.map +1 -1
  299. package/dist/services/salesforce.d.ts +78 -0
  300. package/dist/services/salesforce.d.ts.map +1 -0
  301. package/dist/services/salesforce.js +86 -0
  302. package/dist/services/salesforce.js.map +1 -0
  303. package/dist/services/sendgrid.d.ts.map +1 -1
  304. package/dist/services/sendgrid.js +8 -2
  305. package/dist/services/sendgrid.js.map +1 -1
  306. package/dist/services/sentry.d.ts +129 -0
  307. package/dist/services/sentry.d.ts.map +1 -0
  308. package/dist/services/sentry.js +111 -0
  309. package/dist/services/sentry.js.map +1 -0
  310. package/dist/services/shopify.d.ts.map +1 -1
  311. package/dist/services/shopify.js +8 -2
  312. package/dist/services/shopify.js.map +1 -1
  313. package/dist/services/slack-socket.d.ts.map +1 -1
  314. package/dist/services/slack-socket.js +2 -0
  315. package/dist/services/slack-socket.js.map +1 -1
  316. package/dist/services/slack.d.ts.map +1 -1
  317. package/dist/services/slack.js +9 -1
  318. package/dist/services/slack.js.map +1 -1
  319. package/dist/services/stripe.d.ts.map +1 -1
  320. package/dist/services/stripe.js +8 -2
  321. package/dist/services/stripe.js.map +1 -1
  322. package/dist/services/supabase.d.ts +11 -4
  323. package/dist/services/supabase.d.ts.map +1 -1
  324. package/dist/services/supabase.js +33 -22
  325. package/dist/services/supabase.js.map +1 -1
  326. package/dist/services/teams.d.ts.map +1 -1
  327. package/dist/services/teams.js +43 -7
  328. package/dist/services/teams.js.map +1 -1
  329. package/dist/services/telegram.d.ts +6 -3
  330. package/dist/services/telegram.d.ts.map +1 -1
  331. package/dist/services/telegram.js +39 -34
  332. package/dist/services/telegram.js.map +1 -1
  333. package/dist/services/trello.d.ts.map +1 -1
  334. package/dist/services/trello.js +8 -2
  335. package/dist/services/trello.js.map +1 -1
  336. package/dist/services/twilio.d.ts.map +1 -1
  337. package/dist/services/twilio.js +8 -2
  338. package/dist/services/twilio.js.map +1 -1
  339. package/dist/services/whatsapp.d.ts.map +1 -1
  340. package/dist/services/whatsapp.js +8 -2
  341. package/dist/services/whatsapp.js.map +1 -1
  342. package/dist/services/zendesk.d.ts.map +1 -1
  343. package/dist/services/zendesk.js +8 -2
  344. package/dist/services/zendesk.js.map +1 -1
  345. package/dist/tools/script.d.ts +18 -0
  346. package/dist/tools/script.d.ts.map +1 -1
  347. package/dist/tools/script.js +116 -1
  348. package/dist/tools/script.js.map +1 -1
  349. package/package.json +19 -14
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Zod input schemas for Microsoft Teams API actions.
3
+ * Validates inputs BEFORE they reach the SDK to provide clear error messages.
4
+ */
5
+ import { z } from 'zod';
6
+ export const teamsSchemas = {
7
+ listTeams: z.object({}).optional().default({}),
8
+ listChannels: z.object({
9
+ teamId: z.string().min(1, 'teamId is required'),
10
+ }),
11
+ createChannel: z.object({
12
+ teamId: z.string().min(1, 'teamId is required'),
13
+ displayName: z.string().min(1, 'displayName is required'),
14
+ description: z.string().optional(),
15
+ }),
16
+ sendMessage: z.object({
17
+ teamId: z.string().min(1, 'teamId is required'),
18
+ channelId: z.string().min(1, 'channelId is required'),
19
+ content: z.string().min(1, 'content is required'),
20
+ }),
21
+ listMessages: z.object({
22
+ teamId: z.string().min(1, 'teamId is required'),
23
+ channelId: z.string().min(1, 'channelId is required'),
24
+ top: z.number().int().min(1).max(50).optional(),
25
+ }),
26
+ replyToMessage: z.object({
27
+ teamId: z.string().min(1, 'teamId is required'),
28
+ channelId: z.string().min(1, 'channelId is required'),
29
+ messageId: z.string().min(1, 'messageId is required'),
30
+ content: z.string().min(1, 'content is required'),
31
+ }),
32
+ listChats: z.object({}).optional().default({}),
33
+ sendChatMessage: z.object({
34
+ chatId: z.string().min(1, 'chatId is required'),
35
+ content: z.string().min(1, 'content is required'),
36
+ }),
37
+ createMeeting: z.object({
38
+ subject: z.string().min(1, 'subject is required'),
39
+ startDateTime: z.string().min(1, 'startDateTime is required'),
40
+ endDateTime: z.string().min(1, 'endDateTime is required'),
41
+ attendees: z.array(z.object({ emailAddress: z.object({ address: z.string().email() }) })).optional(),
42
+ }),
43
+ };
44
+ //# sourceMappingURL=teams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"teams.js","sourceRoot":"","sources":["../../../src/reliability/schemas/teams.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Zod input schemas for Telegram Bot API actions.
3
+ * Validates inputs BEFORE they reach the SDK to provide clear error messages.
4
+ */
5
+ import { z } from 'zod';
6
+ export declare const telegramSchemas: Record<string, z.ZodTypeAny>;
7
+ //# sourceMappingURL=telegram.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telegram.d.ts","sourceRoot":"","sources":["../../../src/reliability/schemas/telegram.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,CAuDxD,CAAC"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Zod input schemas for Telegram Bot API actions.
3
+ * Validates inputs BEFORE they reach the SDK to provide clear error messages.
4
+ */
5
+ import { z } from 'zod';
6
+ export const telegramSchemas = {
7
+ sendMessage: z.object({
8
+ chatId: z.union([z.string(), z.number()]).transform(String),
9
+ text: z.string().min(1, 'text is required'),
10
+ parseMode: z.enum(['HTML', 'Markdown', 'MarkdownV2']).optional(),
11
+ replyMarkup: z.record(z.unknown()).optional(),
12
+ }),
13
+ sendPhoto: z.object({
14
+ chatId: z.union([z.string(), z.number()]).transform(String),
15
+ photo: z.string().min(1, 'photo is required'),
16
+ caption: z.string().optional(),
17
+ }),
18
+ sendDocument: z.object({
19
+ chatId: z.union([z.string(), z.number()]).transform(String),
20
+ document: z.string().min(1, 'document is required'),
21
+ caption: z.string().optional(),
22
+ }),
23
+ editMessageText: z.object({
24
+ chatId: z.union([z.string(), z.number()]).transform(String),
25
+ messageId: z.union([z.string(), z.number()]).transform(String),
26
+ text: z.string().min(1, 'text is required'),
27
+ }),
28
+ deleteMessage: z.object({
29
+ chatId: z.union([z.string(), z.number()]).transform(String),
30
+ messageId: z.union([z.string(), z.number()]).transform(String),
31
+ }),
32
+ forwardMessage: z.object({
33
+ chatId: z.union([z.string(), z.number()]).transform(String),
34
+ fromChatId: z.union([z.string(), z.number()]).transform(String),
35
+ messageId: z.union([z.string(), z.number()]).transform(String),
36
+ }),
37
+ getUpdates: z.object({
38
+ offset: z.number().int().optional(),
39
+ limit: z.number().int().min(1).max(100).optional(),
40
+ timeout: z.number().int().optional(),
41
+ }).optional().default({}),
42
+ setWebhook: z.object({
43
+ url: z.string().url('url must be a valid URL'),
44
+ }),
45
+ getChat: z.object({
46
+ chatId: z.union([z.string(), z.number()]).transform(String),
47
+ }),
48
+ answerCallbackQuery: z.object({
49
+ callbackQueryId: z.string().min(1, 'callbackQueryId is required'),
50
+ text: z.string().optional(),
51
+ }),
52
+ };
53
+ //# sourceMappingURL=telegram.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telegram.js","sourceRoot":"","sources":["../../../src/reliability/schemas/telegram.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Zod input schemas for Trello API actions.
3
+ * Validates inputs BEFORE they reach the SDK to provide clear error messages.
4
+ */
5
+ import { z } from 'zod';
6
+ export declare const trelloSchemas: Record<string, z.ZodTypeAny>;
7
+ //# sourceMappingURL=trello.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trello.d.ts","sourceRoot":"","sources":["../../../src/reliability/schemas/trello.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,CAqDtD,CAAC"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Zod input schemas for Trello API actions.
3
+ * Validates inputs BEFORE they reach the SDK to provide clear error messages.
4
+ */
5
+ import { z } from 'zod';
6
+ export const trelloSchemas = {
7
+ getBoard: z.object({
8
+ boardId: z.string().min(1, 'boardId is required'),
9
+ }),
10
+ createBoard: z.object({
11
+ name: z.string().min(1, 'name is required'),
12
+ defaultLists: z.boolean().optional(),
13
+ desc: z.string().optional(),
14
+ }),
15
+ getListsOnBoard: z.object({
16
+ boardId: z.string().min(1, 'boardId is required'),
17
+ }),
18
+ createList: z.object({
19
+ name: z.string().min(1, 'name is required'),
20
+ idBoard: z.string().min(1, 'idBoard is required'),
21
+ }),
22
+ getCard: z.object({
23
+ cardId: z.string().min(1, 'cardId is required'),
24
+ }),
25
+ createCard: z.object({
26
+ name: z.string().min(1, 'name is required'),
27
+ idList: z.string().min(1, 'idList is required'),
28
+ desc: z.string().optional(),
29
+ due: z.string().optional(),
30
+ idMembers: z.array(z.string()).optional(),
31
+ }),
32
+ updateCard: z.object({
33
+ cardId: z.string().min(1, 'cardId is required'),
34
+ name: z.string().optional(),
35
+ desc: z.string().optional(),
36
+ due: z.string().optional(),
37
+ idList: z.string().optional(),
38
+ }),
39
+ deleteCard: z.object({
40
+ cardId: z.string().min(1, 'cardId is required'),
41
+ }),
42
+ addCommentToCard: z.object({
43
+ cardId: z.string().min(1, 'cardId is required'),
44
+ text: z.string().min(1, 'text is required'),
45
+ }),
46
+ addLabelToCard: z.object({
47
+ cardId: z.string().min(1, 'cardId is required'),
48
+ labelId: z.string().min(1, 'labelId is required'),
49
+ }),
50
+ };
51
+ //# sourceMappingURL=trello.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trello.js","sourceRoot":"","sources":["../../../src/reliability/schemas/trello.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Zod input schemas for Twilio API actions.
3
+ * Validates inputs BEFORE they reach the SDK to provide clear error messages.
4
+ */
5
+ import { z } from 'zod';
6
+ export declare const twilioSchemas: Record<string, z.ZodTypeAny>;
7
+ //# sourceMappingURL=twilio.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"twilio.d.ts","sourceRoot":"","sources":["../../../src/reliability/schemas/twilio.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,CA0CtD,CAAC"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Zod input schemas for Twilio API actions.
3
+ * Validates inputs BEFORE they reach the SDK to provide clear error messages.
4
+ */
5
+ import { z } from 'zod';
6
+ export const twilioSchemas = {
7
+ sendSMS: z.object({
8
+ to: z.string().min(1, 'to is required'),
9
+ from: z.string().min(1, 'from is required'),
10
+ body: z.string().min(1, 'body is required'),
11
+ }),
12
+ getMessage: z.object({
13
+ messageSid: z.string().min(1, 'messageSid is required'),
14
+ }),
15
+ listMessages: z.object({
16
+ to: z.string().optional(),
17
+ from: z.string().optional(),
18
+ limit: z.number().int().min(1).optional(),
19
+ }).optional().default({}),
20
+ makeCall: z.object({
21
+ to: z.string().min(1, 'to is required'),
22
+ from: z.string().min(1, 'from is required'),
23
+ url: z.string().url('url must be a valid URL'),
24
+ }),
25
+ getCall: z.object({
26
+ callSid: z.string().min(1, 'callSid is required'),
27
+ }),
28
+ sendWhatsApp: z.object({
29
+ to: z.string().min(1, 'to is required'),
30
+ from: z.string().min(1, 'from is required'),
31
+ body: z.string().min(1, 'body is required'),
32
+ }),
33
+ sendVerification: z.object({
34
+ to: z.string().min(1, 'to is required'),
35
+ channel: z.enum(['sms', 'call', 'email']),
36
+ }),
37
+ checkVerification: z.object({
38
+ to: z.string().min(1, 'to is required'),
39
+ code: z.string().min(1, 'code is required'),
40
+ }),
41
+ };
42
+ //# sourceMappingURL=twilio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"twilio.js","sourceRoot":"","sources":["../../../src/reliability/schemas/twilio.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,aAAa,GAAiC;IACzD,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,gBAAgB,CAAC;QACvC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,kBAAkB,CAAC;QAC3C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,kBAAkB,CAAC;KAC5C,CAAC;IAEF,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,wBAAwB,CAAC;KACxD,CAAC;IAEF,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC;QACrB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACzB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;KAC1C,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAEzB,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC;QACjB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,gBAAgB,CAAC;QACvC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,kBAAkB,CAAC;QAC3C,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,yBAAyB,CAAC;KAC/C,CAAC;IAEF,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,qBAAqB,CAAC;KAClD,CAAC;IAEF,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC;QACrB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,gBAAgB,CAAC;QACvC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,kBAAkB,CAAC;QAC3C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,kBAAkB,CAAC;KAC5C,CAAC;IAEF,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC;QACzB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,gBAAgB,CAAC;QACvC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;KAC1C,CAAC;IAEF,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC;QAC1B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,gBAAgB,CAAC;QACvC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,kBAAkB,CAAC;KAC5C,CAAC;CACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Zod input schemas for WhatsApp Cloud API actions.
3
+ * Validates inputs BEFORE they reach the SDK to provide clear error messages.
4
+ */
5
+ import { z } from 'zod';
6
+ export declare const whatsappSchemas: Record<string, z.ZodTypeAny>;
7
+ //# sourceMappingURL=whatsapp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whatsapp.d.ts","sourceRoot":"","sources":["../../../src/reliability/schemas/whatsapp.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,CAiDxD,CAAC"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Zod input schemas for WhatsApp Cloud API actions.
3
+ * Validates inputs BEFORE they reach the SDK to provide clear error messages.
4
+ */
5
+ import { z } from 'zod';
6
+ export const whatsappSchemas = {
7
+ sendText: z.object({
8
+ to: z.string().min(1, 'to is required'),
9
+ text: z.string().min(1, 'text is required'),
10
+ previewUrl: z.boolean().optional(),
11
+ }),
12
+ sendTemplate: z.object({
13
+ to: z.string().min(1, 'to is required'),
14
+ templateName: z.string().min(1, 'templateName is required'),
15
+ languageCode: z.string().min(1, 'languageCode is required'),
16
+ components: z.array(z.record(z.unknown())).optional(),
17
+ }),
18
+ sendImage: z.object({
19
+ to: z.string().min(1, 'to is required'),
20
+ mediaUrl: z.string().url('mediaUrl must be a valid URL').optional(),
21
+ mediaId: z.string().optional(),
22
+ caption: z.string().optional(),
23
+ }).refine(data => data.mediaUrl || data.mediaId, {
24
+ message: 'Either mediaUrl or mediaId is required',
25
+ }),
26
+ sendDocument: z.object({
27
+ to: z.string().min(1, 'to is required'),
28
+ mediaUrl: z.string().url('mediaUrl must be a valid URL').optional(),
29
+ mediaId: z.string().optional(),
30
+ filename: z.string().optional(),
31
+ caption: z.string().optional(),
32
+ }).refine(data => data.mediaUrl || data.mediaId, {
33
+ message: 'Either mediaUrl or mediaId is required',
34
+ }),
35
+ sendLocation: z.object({
36
+ to: z.string().min(1, 'to is required'),
37
+ latitude: z.number(),
38
+ longitude: z.number(),
39
+ name: z.string().optional(),
40
+ address: z.string().optional(),
41
+ }),
42
+ markAsRead: z.object({
43
+ messageId: z.string().min(1, 'messageId is required'),
44
+ }),
45
+ uploadMedia: z.object({
46
+ file: z.unknown(),
47
+ type: z.enum(['image', 'audio', 'video', 'document']),
48
+ }),
49
+ };
50
+ //# sourceMappingURL=whatsapp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whatsapp.js","sourceRoot":"","sources":["../../../src/reliability/schemas/whatsapp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Zod input schemas for Zendesk API actions.
3
+ * Validates inputs BEFORE they reach the SDK to provide clear error messages.
4
+ */
5
+ import { z } from 'zod';
6
+ export declare const zendeskSchemas: Record<string, z.ZodTypeAny>;
7
+ //# sourceMappingURL=zendesk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zendesk.d.ts","sourceRoot":"","sources":["../../../src/reliability/schemas/zendesk.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,CAuDvD,CAAC"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Zod input schemas for Zendesk API actions.
3
+ * Validates inputs BEFORE they reach the SDK to provide clear error messages.
4
+ */
5
+ import { z } from 'zod';
6
+ export const zendeskSchemas = {
7
+ listTickets: z.object({
8
+ page: z.number().int().min(1).optional(),
9
+ perPage: z.number().int().min(1).max(100).optional(),
10
+ }).optional().default({}),
11
+ getTicket: z.object({
12
+ ticketId: z.union([z.string(), z.number()]).transform(String),
13
+ }),
14
+ createTicket: z.object({
15
+ subject: z.string().min(1, 'subject is required'),
16
+ description: z.string().min(1, 'description is required'),
17
+ priority: z.enum(['low', 'normal', 'high', 'urgent']).optional(),
18
+ type: z.enum(['problem', 'incident', 'question', 'task']).optional(),
19
+ status: z.enum(['new', 'open', 'pending', 'hold', 'solved', 'closed']).optional(),
20
+ assigneeId: z.union([z.string(), z.number()]).optional(),
21
+ }),
22
+ updateTicket: z.object({
23
+ ticketId: z.union([z.string(), z.number()]).transform(String),
24
+ subject: z.string().optional(),
25
+ description: z.string().optional(),
26
+ status: z.enum(['new', 'open', 'pending', 'hold', 'solved', 'closed']).optional(),
27
+ priority: z.enum(['low', 'normal', 'high', 'urgent']).optional(),
28
+ }),
29
+ deleteTicket: z.object({
30
+ ticketId: z.union([z.string(), z.number()]).transform(String),
31
+ }),
32
+ addComment: z.object({
33
+ ticketId: z.union([z.string(), z.number()]).transform(String),
34
+ body: z.string().min(1, 'body is required'),
35
+ public: z.boolean().optional(),
36
+ }),
37
+ listUsers: z.object({
38
+ page: z.number().int().min(1).optional(),
39
+ perPage: z.number().int().min(1).max(100).optional(),
40
+ }).optional().default({}),
41
+ getUser: z.object({
42
+ userId: z.union([z.string(), z.number()]).transform(String),
43
+ }),
44
+ createUser: z.object({
45
+ name: z.string().min(1, 'name is required'),
46
+ email: z.string().email('email must be a valid email address'),
47
+ }),
48
+ search: z.object({
49
+ query: z.string().min(1, 'query is required'),
50
+ page: z.number().int().min(1).optional(),
51
+ }),
52
+ };
53
+ //# sourceMappingURL=zendesk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zendesk.js","sourceRoot":"","sources":["../../../src/reliability/schemas/zendesk.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,cAAc,GAAiC;IAC1D,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;QACxC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;KACrD,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAEzB,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC;QAClB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC;KAC9D,CAAC;IAEF,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC;QACrB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,qBAAqB,CAAC;QACjD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,yBAAyB,CAAC;QACzD,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;QAChE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;QACpE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;QACjF,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;KACzD,CAAC;IAEF,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC;QACrB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC;QAC7D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC9B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAClC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;QACjF,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;KACjE,CAAC;IAEF,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC;QACrB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC;KAC9D,CAAC;IAEF,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC;QAC7D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,kBAAkB,CAAC;QAC3C,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;KAC/B,CAAC;IAEF,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC;QAClB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;QACxC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;KACrD,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAEzB,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC;KAC5D,CAAC;IAEF,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,kBAAkB,CAAC;QAC3C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,qCAAqC,CAAC;KAC/D,CAAC;IAEF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,mBAAmB,CAAC;QAC7C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;KACzC,CAAC;CACH,CAAC"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Integration Reliability Wrapper
3
+ *
4
+ * Wraps raw SDK clients with:
5
+ * - Input validation via Zod schemas
6
+ * - Retry with exponential backoff (respects Retry-After)
7
+ * - Configurable timeout
8
+ * - Structured error normalization
9
+ * - Rate limit awareness
10
+ */
11
+ import { z } from 'zod';
12
+ export interface WrapperOptions {
13
+ /** Service name for error messages */
14
+ service: string;
15
+ /** Default timeout per action call in ms (default: 30000) */
16
+ timeout?: number;
17
+ /** HTTP status codes that trigger retry (default: [429, 500, 502, 503, 504]) */
18
+ retryOn?: number[];
19
+ /** Maximum retry attempts (default: 3) */
20
+ maxRetries?: number;
21
+ /** Initial retry delay in ms (default: 1000) */
22
+ initialRetryDelay?: number;
23
+ /** Maximum retry delay in ms (default: 30000) */
24
+ maxRetryDelay?: number;
25
+ /** Zod schemas for input validation per action */
26
+ inputSchemas?: Record<string, z.ZodTypeAny>;
27
+ }
28
+ export interface ActionCallOptions {
29
+ /** Override timeout for this call */
30
+ timeout?: number;
31
+ /** Override max retries for this call */
32
+ maxRetries?: number;
33
+ /** Skip input validation for this call */
34
+ skipValidation?: boolean;
35
+ }
36
+ /**
37
+ * Wrap an SDK client with reliability features.
38
+ *
39
+ * Returns a Proxy that intercepts method calls on the SDK,
40
+ * adding validation, retry, timeout, and error normalization.
41
+ *
42
+ * The wrapper is transparent — all original SDK properties and methods
43
+ * remain accessible. Only function calls get wrapped.
44
+ */
45
+ export declare function wrapIntegration<T extends object>(service: string, sdk: T, options?: Omit<WrapperOptions, 'service'>): T;
46
+ //# sourceMappingURL=wrapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrapper.d.ts","sourceRoot":"","sources":["../../src/reliability/wrapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,MAAM,WAAW,cAAc;IAC7B,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iDAAiD;IACjD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,iBAAiB;IAChC,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAgBD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,EAC9C,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,CAAC,EACN,OAAO,GAAE,IAAI,CAAC,cAAc,EAAE,SAAS,CAAM,GAC5C,CAAC,CAYH"}
@@ -0,0 +1,174 @@
1
+ /**
2
+ * Integration Reliability Wrapper
3
+ *
4
+ * Wraps raw SDK clients with:
5
+ * - Input validation via Zod schemas
6
+ * - Retry with exponential backoff (respects Retry-After)
7
+ * - Configurable timeout
8
+ * - Structured error normalization
9
+ * - Rate limit awareness
10
+ */
11
+ import { IntegrationRequestError, normalizeError } from './errors.js';
12
+ // ============================================================================
13
+ // Defaults
14
+ // ============================================================================
15
+ const DEFAULT_TIMEOUT = 30000;
16
+ const DEFAULT_MAX_RETRIES = 3;
17
+ const DEFAULT_INITIAL_RETRY_DELAY = 1000;
18
+ const DEFAULT_MAX_RETRY_DELAY = 30000;
19
+ const DEFAULT_RETRYABLE_CODES = [429, 500, 502, 503, 504];
20
+ // ============================================================================
21
+ // Wrapper Implementation
22
+ // ============================================================================
23
+ /**
24
+ * Wrap an SDK client with reliability features.
25
+ *
26
+ * Returns a Proxy that intercepts method calls on the SDK,
27
+ * adding validation, retry, timeout, and error normalization.
28
+ *
29
+ * The wrapper is transparent — all original SDK properties and methods
30
+ * remain accessible. Only function calls get wrapped.
31
+ */
32
+ export function wrapIntegration(service, sdk, options = {}) {
33
+ const opts = {
34
+ service,
35
+ timeout: options.timeout ?? DEFAULT_TIMEOUT,
36
+ retryOn: options.retryOn ?? DEFAULT_RETRYABLE_CODES,
37
+ maxRetries: options.maxRetries ?? DEFAULT_MAX_RETRIES,
38
+ initialRetryDelay: options.initialRetryDelay ?? DEFAULT_INITIAL_RETRY_DELAY,
39
+ maxRetryDelay: options.maxRetryDelay ?? DEFAULT_MAX_RETRY_DELAY,
40
+ inputSchemas: options.inputSchemas ?? {},
41
+ };
42
+ return createProxy(sdk, opts, '');
43
+ }
44
+ function createProxy(target, opts, path) {
45
+ return new Proxy(target, {
46
+ get(obj, prop, receiver) {
47
+ // Skip symbol properties and internal methods
48
+ if (typeof prop === 'symbol')
49
+ return Reflect.get(obj, prop, receiver);
50
+ // Avoid treating the proxy as a Thenable
51
+ if (prop === 'then')
52
+ return undefined;
53
+ const value = Reflect.get(obj, prop, receiver);
54
+ // Respect Proxy invariants: if the property is non-configurable,
55
+ // we must return the original value unchanged to avoid TypeError
56
+ const desc = Object.getOwnPropertyDescriptor(obj, prop);
57
+ if (desc && !desc.configurable) {
58
+ return value;
59
+ }
60
+ // If the value is a function, wrap it with reliability
61
+ if (typeof value === 'function') {
62
+ const actionPath = path ? `${path}.${prop}` : String(prop);
63
+ return createWrappedFunction(obj, value, opts, actionPath);
64
+ }
65
+ // If the value is an object (namespace like sdk.chat), proxy it too
66
+ if (value && typeof value === 'object' && !Array.isArray(value)) {
67
+ const nestedPath = path ? `${path}.${prop}` : String(prop);
68
+ try {
69
+ return createProxy(value, opts, nestedPath);
70
+ }
71
+ catch {
72
+ // If we can't proxy it (frozen, sealed, etc.), return as-is
73
+ return value;
74
+ }
75
+ }
76
+ return value;
77
+ },
78
+ });
79
+ }
80
+ function createWrappedFunction(thisArg, fn, opts, actionPath) {
81
+ return async (...args) => {
82
+ // 1. Input validation
83
+ const schema = opts.inputSchemas[actionPath];
84
+ if (schema && args.length > 0 && args[0] && typeof args[0] === 'object') {
85
+ const result = schema.safeParse(args[0]);
86
+ if (!result.success) {
87
+ throw new IntegrationRequestError({
88
+ service: opts.service,
89
+ action: actionPath,
90
+ message: `Input validation failed: ${result.error.issues.map((i) => `${i.path.join('.')}: ${i.message}`).join('; ')}`,
91
+ retryable: false,
92
+ });
93
+ }
94
+ }
95
+ // 2. Retry loop with timeout
96
+ let lastError;
97
+ const maxAttempts = opts.maxRetries + 1;
98
+ for (let attempt = 0; attempt < maxAttempts; attempt++) {
99
+ // Delay before retry (not on first attempt)
100
+ if (attempt > 0 && lastError) {
101
+ const delay = calculateDelay(attempt - 1, opts.initialRetryDelay, opts.maxRetryDelay, lastError.retryAfter);
102
+ await sleep(delay);
103
+ }
104
+ try {
105
+ const result = await withTimeout(fn.apply(thisArg, args), opts.timeout, opts.service, actionPath);
106
+ return result;
107
+ }
108
+ catch (error) {
109
+ lastError = normalizeError(opts.service, actionPath, error);
110
+ // Determine if this error should be retried:
111
+ // 1. If status code is in our retryOn list, always retry
112
+ // 2. If no status code, fall back to the retryable flag (network errors etc.)
113
+ const shouldRetry = lastError.statusCode
114
+ ? opts.retryOn.includes(lastError.statusCode)
115
+ : lastError.retryable;
116
+ if (!shouldRetry) {
117
+ throw lastError;
118
+ }
119
+ // Last attempt — throw
120
+ if (attempt === maxAttempts - 1) {
121
+ throw lastError;
122
+ }
123
+ }
124
+ }
125
+ // Should not reach here, but just in case
126
+ throw lastError ?? new IntegrationRequestError({
127
+ service: opts.service,
128
+ action: actionPath,
129
+ message: `Request failed after ${maxAttempts} attempts`,
130
+ retryable: false,
131
+ });
132
+ };
133
+ }
134
+ // ============================================================================
135
+ // Helpers
136
+ // ============================================================================
137
+ function sleep(ms) {
138
+ return new Promise((resolve) => setTimeout(resolve, ms));
139
+ }
140
+ function calculateDelay(attempt, initialDelay, maxDelay, retryAfterSeconds) {
141
+ // If server told us when to retry, respect it
142
+ if (retryAfterSeconds && retryAfterSeconds > 0) {
143
+ return Math.min(retryAfterSeconds * 1000, maxDelay);
144
+ }
145
+ // Exponential backoff with jitter
146
+ const exponential = initialDelay * Math.pow(2, attempt);
147
+ const capped = Math.min(exponential, maxDelay);
148
+ const jitter = capped * 0.25 * (Math.random() * 2 - 1);
149
+ return Math.max(0, capped + jitter);
150
+ }
151
+ async function withTimeout(promise, timeoutMs, service, action) {
152
+ // If the function returned a non-promise, just return it
153
+ if (!promise || typeof promise.then !== 'function') {
154
+ return promise;
155
+ }
156
+ return new Promise((resolve, reject) => {
157
+ const timer = setTimeout(() => {
158
+ reject(new IntegrationRequestError({
159
+ service,
160
+ action,
161
+ message: `Request timed out after ${timeoutMs}ms`,
162
+ retryable: true,
163
+ }));
164
+ }, timeoutMs);
165
+ promise.then((result) => {
166
+ clearTimeout(timer);
167
+ resolve(result);
168
+ }, (error) => {
169
+ clearTimeout(timer);
170
+ reject(error);
171
+ });
172
+ });
173
+ }
174
+ //# sourceMappingURL=wrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrapper.js","sourceRoot":"","sources":["../../src/reliability/wrapper.ts"],"names":[],"mappings":"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"}