@arbium/enterprise-agent-connect 0.0.0-stage → 0.1.2-dev.d2aa5ca

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 (319) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +264 -2
  3. package/dist/connectors/dell-techdirect/connector.json +39 -0
  4. package/dist/connectors/dell-techdirect/index.d.ts +8 -0
  5. package/dist/connectors/dell-techdirect/index.js +7 -0
  6. package/dist/connectors/dell-techdirect/index.js.map +1 -0
  7. package/dist/connectors/dell-techdirect/tools.d.ts +2 -0
  8. package/dist/connectors/dell-techdirect/tools.js +49 -0
  9. package/dist/connectors/dell-techdirect/tools.js.map +1 -0
  10. package/dist/connectors/dell-techdirect/vendor.d.ts +6 -0
  11. package/dist/connectors/dell-techdirect/vendor.js +57 -0
  12. package/dist/connectors/dell-techdirect/vendor.js.map +1 -0
  13. package/dist/connectors/dynamics-365/connector.json +213 -0
  14. package/dist/connectors/dynamics-365/index.d.ts +11 -0
  15. package/dist/connectors/dynamics-365/index.js +10 -0
  16. package/dist/connectors/dynamics-365/index.js.map +1 -0
  17. package/dist/connectors/dynamics-365/tools.d.ts +35 -0
  18. package/dist/connectors/dynamics-365/tools.js +806 -0
  19. package/dist/connectors/dynamics-365/tools.js.map +1 -0
  20. package/dist/connectors/dynamics-365/vendor.d.ts +9 -0
  21. package/dist/connectors/dynamics-365/vendor.js +110 -0
  22. package/dist/connectors/dynamics-365/vendor.js.map +1 -0
  23. package/dist/connectors/entra/connector.json +85 -0
  24. package/dist/connectors/entra/index.d.ts +2 -0
  25. package/dist/connectors/entra/index.js +4 -0
  26. package/dist/connectors/entra/index.js.map +1 -0
  27. package/dist/connectors/entra/tools.d.ts +14 -0
  28. package/dist/connectors/entra/tools.js +262 -0
  29. package/dist/connectors/entra/tools.js.map +1 -0
  30. package/dist/connectors/fedex/connector.json +118 -0
  31. package/dist/connectors/fedex/index.d.ts +8 -0
  32. package/dist/connectors/fedex/index.js +7 -0
  33. package/dist/connectors/fedex/index.js.map +1 -0
  34. package/dist/connectors/fedex/tools.d.ts +3 -0
  35. package/dist/connectors/fedex/tools.js +152 -0
  36. package/dist/connectors/fedex/tools.js.map +1 -0
  37. package/dist/connectors/fedex/vendor.d.ts +7 -0
  38. package/dist/connectors/fedex/vendor.js +98 -0
  39. package/dist/connectors/fedex/vendor.js.map +1 -0
  40. package/dist/connectors/gong/connector.json +127 -0
  41. package/dist/connectors/gong/index.d.ts +8 -0
  42. package/dist/connectors/gong/index.js +7 -0
  43. package/dist/connectors/gong/index.js.map +1 -0
  44. package/dist/connectors/gong/tools.d.ts +8 -0
  45. package/dist/connectors/gong/tools.js +424 -0
  46. package/dist/connectors/gong/tools.js.map +1 -0
  47. package/dist/connectors/gong/vendor.d.ts +4 -0
  48. package/dist/connectors/gong/vendor.js +97 -0
  49. package/dist/connectors/gong/vendor.js.map +1 -0
  50. package/dist/connectors/http/index.d.ts +38 -0
  51. package/dist/connectors/http/index.js +322 -0
  52. package/dist/connectors/http/index.js.map +1 -0
  53. package/dist/connectors/intune/connector.json +106 -0
  54. package/dist/connectors/intune/index.d.ts +2 -0
  55. package/dist/connectors/intune/index.js +4 -0
  56. package/dist/connectors/intune/index.js.map +1 -0
  57. package/dist/connectors/intune/tools.d.ts +12 -0
  58. package/dist/connectors/intune/tools.js +416 -0
  59. package/dist/connectors/intune/tools.js.map +1 -0
  60. package/dist/connectors/jamf/connector.json +182 -0
  61. package/dist/connectors/jamf/index.d.ts +8 -0
  62. package/dist/connectors/jamf/index.js +7 -0
  63. package/dist/connectors/jamf/index.js.map +1 -0
  64. package/dist/connectors/jamf/tools.d.ts +7 -0
  65. package/dist/connectors/jamf/tools.js +659 -0
  66. package/dist/connectors/jamf/tools.js.map +1 -0
  67. package/dist/connectors/jamf/vendor.d.ts +5 -0
  68. package/dist/connectors/jamf/vendor.js +66 -0
  69. package/dist/connectors/jamf/vendor.js.map +1 -0
  70. package/dist/connectors/jira/connector.json +272 -0
  71. package/dist/connectors/jira/index.d.ts +8 -0
  72. package/dist/connectors/jira/index.js +7 -0
  73. package/dist/connectors/jira/index.js.map +1 -0
  74. package/dist/connectors/jira/jql.d.ts +4 -0
  75. package/dist/connectors/jira/jql.js +67 -0
  76. package/dist/connectors/jira/jql.js.map +1 -0
  77. package/dist/connectors/jira/tools.d.ts +3 -0
  78. package/dist/connectors/jira/tools.js +464 -0
  79. package/dist/connectors/jira/tools.js.map +1 -0
  80. package/dist/connectors/jira/vendor.d.ts +3 -0
  81. package/dist/connectors/jira/vendor.js +94 -0
  82. package/dist/connectors/jira/vendor.js.map +1 -0
  83. package/dist/connectors/microsoft/client.d.ts +58 -0
  84. package/dist/connectors/microsoft/client.js +434 -0
  85. package/dist/connectors/microsoft/client.js.map +1 -0
  86. package/dist/connectors/microsoft/provider.json +118 -0
  87. package/dist/connectors/netsuite/connector.json +315 -0
  88. package/dist/connectors/netsuite/index.d.ts +8 -0
  89. package/dist/connectors/netsuite/index.js +7 -0
  90. package/dist/connectors/netsuite/index.js.map +1 -0
  91. package/dist/connectors/netsuite/tools.d.ts +24 -0
  92. package/dist/connectors/netsuite/tools.js +447 -0
  93. package/dist/connectors/netsuite/tools.js.map +1 -0
  94. package/dist/connectors/netsuite/vendor.d.ts +26 -0
  95. package/dist/connectors/netsuite/vendor.js +248 -0
  96. package/dist/connectors/netsuite/vendor.js.map +1 -0
  97. package/dist/connectors/odata/index.d.ts +36 -0
  98. package/dist/connectors/odata/index.js +460 -0
  99. package/dist/connectors/odata/index.js.map +1 -0
  100. package/dist/connectors/okta/connector.json +193 -0
  101. package/dist/connectors/okta/index.d.ts +8 -0
  102. package/dist/connectors/okta/index.js +7 -0
  103. package/dist/connectors/okta/index.js.map +1 -0
  104. package/dist/connectors/okta/tools.d.ts +6 -0
  105. package/dist/connectors/okta/tools.js +429 -0
  106. package/dist/connectors/okta/tools.js.map +1 -0
  107. package/dist/connectors/okta/vendor.d.ts +14 -0
  108. package/dist/connectors/okta/vendor.js +203 -0
  109. package/dist/connectors/okta/vendor.js.map +1 -0
  110. package/dist/connectors/outlook-calendar/connector.json +136 -0
  111. package/dist/connectors/outlook-calendar/index.d.ts +2 -0
  112. package/dist/connectors/outlook-calendar/index.js +4 -0
  113. package/dist/connectors/outlook-calendar/index.js.map +1 -0
  114. package/dist/connectors/outlook-calendar/tools.d.ts +65 -0
  115. package/dist/connectors/outlook-calendar/tools.js +398 -0
  116. package/dist/connectors/outlook-calendar/tools.js.map +1 -0
  117. package/dist/connectors/outlook-mail/connector.json +154 -0
  118. package/dist/connectors/outlook-mail/index.d.ts +2 -0
  119. package/dist/connectors/outlook-mail/index.js +4 -0
  120. package/dist/connectors/outlook-mail/index.js.map +1 -0
  121. package/dist/connectors/outlook-mail/tools.d.ts +8 -0
  122. package/dist/connectors/outlook-mail/tools.js +236 -0
  123. package/dist/connectors/outlook-mail/tools.js.map +1 -0
  124. package/dist/connectors/salesforce/connector.json +122 -0
  125. package/dist/connectors/salesforce/index.d.ts +8 -0
  126. package/dist/connectors/salesforce/index.js +7 -0
  127. package/dist/connectors/salesforce/index.js.map +1 -0
  128. package/dist/connectors/salesforce/soql.d.ts +3 -0
  129. package/dist/connectors/salesforce/soql.js +60 -0
  130. package/dist/connectors/salesforce/soql.js.map +1 -0
  131. package/dist/connectors/salesforce/tools.d.ts +9 -0
  132. package/dist/connectors/salesforce/tools.js +234 -0
  133. package/dist/connectors/salesforce/tools.js.map +1 -0
  134. package/dist/connectors/salesforce/vendor.d.ts +3 -0
  135. package/dist/connectors/salesforce/vendor.js +107 -0
  136. package/dist/connectors/salesforce/vendor.js.map +1 -0
  137. package/dist/connectors/sap-s4hana/connector.json +263 -0
  138. package/dist/connectors/sap-s4hana/index.d.ts +8 -0
  139. package/dist/connectors/sap-s4hana/index.js +7 -0
  140. package/dist/connectors/sap-s4hana/index.js.map +1 -0
  141. package/dist/connectors/sap-s4hana/tools.d.ts +4 -0
  142. package/dist/connectors/sap-s4hana/tools.js +761 -0
  143. package/dist/connectors/sap-s4hana/tools.js.map +1 -0
  144. package/dist/connectors/sap-s4hana/vendor.d.ts +5 -0
  145. package/dist/connectors/sap-s4hana/vendor.js +176 -0
  146. package/dist/connectors/sap-s4hana/vendor.js.map +1 -0
  147. package/dist/connectors/servicenow/connector.json +228 -0
  148. package/dist/connectors/servicenow/index.d.ts +8 -0
  149. package/dist/connectors/servicenow/index.js +7 -0
  150. package/dist/connectors/servicenow/index.js.map +1 -0
  151. package/dist/connectors/servicenow/tools.d.ts +4 -0
  152. package/dist/connectors/servicenow/tools.js +884 -0
  153. package/dist/connectors/servicenow/tools.js.map +1 -0
  154. package/dist/connectors/servicenow/vendor.d.ts +4 -0
  155. package/dist/connectors/servicenow/vendor.js +109 -0
  156. package/dist/connectors/servicenow/vendor.js.map +1 -0
  157. package/dist/connectors/sharepoint-files/connector.json +194 -0
  158. package/dist/connectors/sharepoint-files/excel.d.ts +16 -0
  159. package/dist/connectors/sharepoint-files/excel.js +300 -0
  160. package/dist/connectors/sharepoint-files/excel.js.map +1 -0
  161. package/dist/connectors/sharepoint-files/index.d.ts +11 -0
  162. package/dist/connectors/sharepoint-files/index.js +12 -0
  163. package/dist/connectors/sharepoint-files/index.js.map +1 -0
  164. package/dist/connectors/sharepoint-files/tools.d.ts +52 -0
  165. package/dist/connectors/sharepoint-files/tools.js +365 -0
  166. package/dist/connectors/sharepoint-files/tools.js.map +1 -0
  167. package/dist/connectors/sharepoint-files/vendor.d.ts +11 -0
  168. package/dist/connectors/sharepoint-files/vendor.js +167 -0
  169. package/dist/connectors/sharepoint-files/vendor.js.map +1 -0
  170. package/dist/connectors/slack/connector.json +148 -0
  171. package/dist/connectors/slack/index.d.ts +8 -0
  172. package/dist/connectors/slack/index.js +7 -0
  173. package/dist/connectors/slack/index.js.map +1 -0
  174. package/dist/connectors/slack/tools.d.ts +3 -0
  175. package/dist/connectors/slack/tools.js +355 -0
  176. package/dist/connectors/slack/tools.js.map +1 -0
  177. package/dist/connectors/slack/vendor.d.ts +17 -0
  178. package/dist/connectors/slack/vendor.js +195 -0
  179. package/dist/connectors/slack/vendor.js.map +1 -0
  180. package/dist/connectors/soap/index.d.ts +19 -0
  181. package/dist/connectors/soap/index.js +248 -0
  182. package/dist/connectors/soap/index.js.map +1 -0
  183. package/dist/connectors/soap/xml.d.ts +12 -0
  184. package/dist/connectors/soap/xml.js +126 -0
  185. package/dist/connectors/soap/xml.js.map +1 -0
  186. package/dist/connectors/sql/engines.d.ts +58 -0
  187. package/dist/connectors/sql/engines.js +292 -0
  188. package/dist/connectors/sql/engines.js.map +1 -0
  189. package/dist/connectors/sql/index.d.ts +19 -0
  190. package/dist/connectors/sql/index.js +212 -0
  191. package/dist/connectors/sql/index.js.map +1 -0
  192. package/dist/connectors/teams/connector.json +298 -0
  193. package/dist/connectors/teams/index.d.ts +2 -0
  194. package/dist/connectors/teams/index.js +5 -0
  195. package/dist/connectors/teams/index.js.map +1 -0
  196. package/dist/connectors/teams/tools.d.ts +2 -0
  197. package/dist/connectors/teams/tools.js +391 -0
  198. package/dist/connectors/teams/tools.js.map +1 -0
  199. package/dist/connectors/workday/connector.json +186 -0
  200. package/dist/connectors/workday/index.d.ts +8 -0
  201. package/dist/connectors/workday/index.js +7 -0
  202. package/dist/connectors/workday/index.js.map +1 -0
  203. package/dist/connectors/workday/tools.d.ts +33 -0
  204. package/dist/connectors/workday/tools.js +410 -0
  205. package/dist/connectors/workday/tools.js.map +1 -0
  206. package/dist/connectors/workday/vendor.d.ts +18 -0
  207. package/dist/connectors/workday/vendor.js +195 -0
  208. package/dist/connectors/workday/vendor.js.map +1 -0
  209. package/dist/packages/connector-kit/src/branding.d.ts +57 -0
  210. package/dist/packages/connector-kit/src/branding.js +102 -0
  211. package/dist/packages/connector-kit/src/branding.js.map +1 -0
  212. package/dist/packages/connector-kit/src/certificate.d.ts +19 -0
  213. package/dist/packages/connector-kit/src/certificate.js +84 -0
  214. package/dist/packages/connector-kit/src/certificate.js.map +1 -0
  215. package/dist/packages/connector-kit/src/common.d.ts +40 -0
  216. package/dist/packages/connector-kit/src/common.js +107 -0
  217. package/dist/packages/connector-kit/src/common.js.map +1 -0
  218. package/dist/packages/connector-kit/src/connector.d.ts +1346 -0
  219. package/dist/packages/connector-kit/src/connector.js +1034 -0
  220. package/dist/packages/connector-kit/src/connector.js.map +1 -0
  221. package/dist/packages/connector-kit/src/index.d.ts +5 -0
  222. package/dist/packages/connector-kit/src/index.js +5 -0
  223. package/dist/packages/connector-kit/src/index.js.map +1 -0
  224. package/dist/packages/connector-kit/src/oauth.d.ts +15 -0
  225. package/dist/packages/connector-kit/src/oauth.js +96 -0
  226. package/dist/packages/connector-kit/src/oauth.js.map +1 -0
  227. package/dist/packages/connector-kit/src/types.d.ts +85 -0
  228. package/dist/packages/connector-kit/src/types.js +20 -0
  229. package/dist/packages/connector-kit/src/types.js.map +1 -0
  230. package/dist/packages/server/migrations/0001_tables.sql +268 -0
  231. package/dist/packages/server/migrations/0002_organizations.sql +72 -0
  232. package/dist/packages/server/migrations/0003_drop_unused.sql +3 -0
  233. package/dist/packages/server/migrations/0004_trigger_runners.sql +15 -0
  234. package/dist/packages/server/migrations/0005_run_runner.sql +3 -0
  235. package/dist/packages/server/migrations/0006_approvals.sql +36 -0
  236. package/dist/packages/server/migrations/0007_app_events.sql +110 -0
  237. package/dist/packages/server/migrations/rollback/to-legacy.sql +90 -0
  238. package/dist/packages/server/src/api.d.ts +3714 -0
  239. package/dist/packages/server/src/api.js +818 -0
  240. package/dist/packages/server/src/api.js.map +1 -0
  241. package/dist/packages/server/src/app.d.ts +23 -0
  242. package/dist/packages/server/src/app.js +467 -0
  243. package/dist/packages/server/src/app.js.map +1 -0
  244. package/dist/packages/server/src/builtin.d.ts +4 -0
  245. package/dist/packages/server/src/builtin.js +42 -0
  246. package/dist/packages/server/src/builtin.js.map +1 -0
  247. package/dist/packages/server/src/consent.d.ts +27 -0
  248. package/dist/packages/server/src/consent.js +36 -0
  249. package/dist/packages/server/src/consent.js.map +1 -0
  250. package/dist/packages/server/src/events/admin.d.ts +156 -0
  251. package/dist/packages/server/src/events/admin.js +255 -0
  252. package/dist/packages/server/src/events/admin.js.map +1 -0
  253. package/dist/packages/server/src/events/deliver.d.ts +43 -0
  254. package/dist/packages/server/src/events/deliver.js +129 -0
  255. package/dist/packages/server/src/events/deliver.js.map +1 -0
  256. package/dist/packages/server/src/events/runtime.d.ts +28 -0
  257. package/dist/packages/server/src/events/runtime.js +397 -0
  258. package/dist/packages/server/src/events/runtime.js.map +1 -0
  259. package/dist/packages/server/src/events/store.d.ts +172 -0
  260. package/dist/packages/server/src/events/store.js +275 -0
  261. package/dist/packages/server/src/events/store.js.map +1 -0
  262. package/dist/packages/server/src/index.d.ts +40 -0
  263. package/dist/packages/server/src/index.js +185 -0
  264. package/dist/packages/server/src/index.js.map +1 -0
  265. package/dist/packages/server/src/migrate.d.ts +11 -0
  266. package/dist/packages/server/src/migrate.js +134 -0
  267. package/dist/packages/server/src/migrate.js.map +1 -0
  268. package/dist/packages/server/src/openapi.d.ts +4 -0
  269. package/dist/packages/server/src/openapi.js +101 -0
  270. package/dist/packages/server/src/openapi.js.map +1 -0
  271. package/dist/packages/server/src/queue.d.ts +10 -0
  272. package/dist/packages/server/src/queue.js +45 -0
  273. package/dist/packages/server/src/queue.js.map +1 -0
  274. package/dist/packages/server/src/secrets.d.ts +19 -0
  275. package/dist/packages/server/src/secrets.js +76 -0
  276. package/dist/packages/server/src/secrets.js.map +1 -0
  277. package/dist/packages/server/src/server.d.ts +1 -0
  278. package/dist/packages/server/src/server.js +82 -0
  279. package/dist/packages/server/src/server.js.map +1 -0
  280. package/dist/packages/server/src/service.d.ts +760 -0
  281. package/dist/packages/server/src/service.js +918 -0
  282. package/dist/packages/server/src/service.js.map +1 -0
  283. package/dist/packages/server/src/store.d.ts +158 -0
  284. package/dist/packages/server/src/store.js +415 -0
  285. package/dist/packages/server/src/store.js.map +1 -0
  286. package/dist/packages/server/src/teams/activity.d.ts +123 -0
  287. package/dist/packages/server/src/teams/activity.js +188 -0
  288. package/dist/packages/server/src/teams/activity.js.map +1 -0
  289. package/dist/packages/server/src/teams/admin.d.ts +335 -0
  290. package/dist/packages/server/src/teams/admin.js +699 -0
  291. package/dist/packages/server/src/teams/admin.js.map +1 -0
  292. package/dist/packages/server/src/teams/approval.d.ts +57 -0
  293. package/dist/packages/server/src/teams/approval.js +118 -0
  294. package/dist/packages/server/src/teams/approval.js.map +1 -0
  295. package/dist/packages/server/src/teams/bot.d.ts +25 -0
  296. package/dist/packages/server/src/teams/bot.js +124 -0
  297. package/dist/packages/server/src/teams/bot.js.map +1 -0
  298. package/dist/packages/server/src/teams/claude.d.ts +46 -0
  299. package/dist/packages/server/src/teams/claude.js +165 -0
  300. package/dist/packages/server/src/teams/claude.js.map +1 -0
  301. package/dist/packages/server/src/teams/jwt.d.ts +17 -0
  302. package/dist/packages/server/src/teams/jwt.js +121 -0
  303. package/dist/packages/server/src/teams/jwt.js.map +1 -0
  304. package/dist/packages/server/src/teams/package.d.ts +79 -0
  305. package/dist/packages/server/src/teams/package.js +319 -0
  306. package/dist/packages/server/src/teams/package.js.map +1 -0
  307. package/dist/packages/server/src/teams/provision.d.ts +84 -0
  308. package/dist/packages/server/src/teams/provision.js +505 -0
  309. package/dist/packages/server/src/teams/provision.js.map +1 -0
  310. package/dist/packages/server/src/teams/runner.d.ts +80 -0
  311. package/dist/packages/server/src/teams/runner.js +187 -0
  312. package/dist/packages/server/src/teams/runner.js.map +1 -0
  313. package/dist/packages/server/src/teams/runtime.d.ts +91 -0
  314. package/dist/packages/server/src/teams/runtime.js +679 -0
  315. package/dist/packages/server/src/teams/runtime.js.map +1 -0
  316. package/dist/packages/server/src/teams/store.d.ts +233 -0
  317. package/dist/packages/server/src/teams/store.js +507 -0
  318. package/dist/packages/server/src/teams/store.js.map +1 -0
  319. package/package.json +68 -4
@@ -0,0 +1,172 @@
1
+ import { type Sql } from "../store.js";
2
+ import type { RunCounts } from "../teams/runner.js";
3
+ export type SubscriptionRow = {
4
+ id: string;
5
+ organizationId: string;
6
+ connectorId: string;
7
+ source: "webhook" | "poll";
8
+ secret: Buffer | null;
9
+ secretKeyId: string | null;
10
+ filter: string;
11
+ intervalSeconds: number;
12
+ cursor: string | null;
13
+ polledAt: string | null;
14
+ lastError: string | null;
15
+ registered: string | null;
16
+ createdBy: string;
17
+ createdAt: string;
18
+ };
19
+ export type Condition = {
20
+ field: string;
21
+ in: string[];
22
+ } | {
23
+ field: string;
24
+ notIn: string[];
25
+ };
26
+ export type EventTriggerRow = {
27
+ id: string;
28
+ agentId: string;
29
+ connectorId: string;
30
+ enabled: boolean;
31
+ eventTypes: string[];
32
+ conditions: Condition[];
33
+ prompt: string;
34
+ runner: string;
35
+ settings: Record<string, unknown>;
36
+ secret: Buffer | null;
37
+ secretKeyId: string | null;
38
+ managedAgentId: string | null;
39
+ environmentId: string | null;
40
+ vaultIds: string[];
41
+ budgetCents: number;
42
+ maxRunsPerHour: number;
43
+ maxCentsPerDay: number;
44
+ maxConcurrent: number;
45
+ updatedBy: string | null;
46
+ updatedAt: string;
47
+ };
48
+ export type EventRunRow = {
49
+ id: string;
50
+ agentId: string;
51
+ triggerId: string;
52
+ connectorId: string;
53
+ eventType: string;
54
+ deliveryId: string;
55
+ runner: string;
56
+ sessionId: string | null;
57
+ state: "starting" | "running" | "ended" | "failed";
58
+ error: string | null;
59
+ costCents: number | null;
60
+ startedAt: string;
61
+ finishedAt: string | null;
62
+ };
63
+ export type QueuedEvent = {
64
+ id: string;
65
+ subscriptionId: string;
66
+ organizationId: string;
67
+ connectorId: string;
68
+ deliveryId: string;
69
+ eventType: string;
70
+ payload: Buffer | null;
71
+ payloadKeyId: string | null;
72
+ };
73
+ export type AgentAppState = {
74
+ agentName: string;
75
+ agentStatus: "active" | "disabled";
76
+ grant: {
77
+ capabilities: string[];
78
+ limits: Record<string, unknown>;
79
+ } | null;
80
+ connection: {
81
+ capabilities: string[];
82
+ connected: boolean;
83
+ } | null;
84
+ };
85
+ export declare function createEventsStore(sql: Sql, schema: string): {
86
+ createSubscription(input: {
87
+ id: string;
88
+ organizationId: string;
89
+ connectorId: string;
90
+ source: "webhook" | "poll";
91
+ secret: Buffer | null;
92
+ secretKeyId: string | null;
93
+ filter: string;
94
+ intervalSeconds: number;
95
+ cursor: string | null;
96
+ createdBy: string;
97
+ }): Promise<SubscriptionRow | null>;
98
+ subscription(id: string): Promise<SubscriptionRow | null>;
99
+ subscriptions(org: string): Promise<SubscriptionRow[]>;
100
+ deleteSubscription(org: string, id: string): Promise<SubscriptionRow | null>;
101
+ setSecret(org: string, id: string, secret: Buffer, keyId: string): Promise<boolean>;
102
+ setRegistered(id: string, registered: string): Promise<void>;
103
+ duePolls(): Promise<SubscriptionRow[]>;
104
+ polled(id: string, cursor: string | null, error: string | null): Promise<void>;
105
+ staleSecrets(keyId: string): Promise<{
106
+ subscriptions: {
107
+ id: string;
108
+ organizationId: string;
109
+ secret: Buffer;
110
+ secretKeyId: string;
111
+ }[] & Iterable<{
112
+ id: string;
113
+ organizationId: string;
114
+ secret: Buffer;
115
+ secretKeyId: string;
116
+ }> & import("postgres").ResultQueryMeta<number, "id" | "organizationId" | "secret" | "secretKeyId">;
117
+ triggers: {
118
+ id: string;
119
+ organizationId: string;
120
+ agentId: string;
121
+ connectorId: string;
122
+ secret: Buffer;
123
+ secretKeyId: string;
124
+ }[] & Iterable<{
125
+ id: string;
126
+ organizationId: string;
127
+ agentId: string;
128
+ connectorId: string;
129
+ secret: Buffer;
130
+ secretKeyId: string;
131
+ }> & import("postgres").ResultQueryMeta<number, "id" | "organizationId" | "connectorId" | "agentId" | "secret" | "secretKeyId">;
132
+ }>;
133
+ reseal(table: "event_subscriptions" | "event_triggers", id: string, was: Buffer, secret: Buffer, keyId: string): Promise<boolean>;
134
+ insertEvent(input: {
135
+ subscriptionId: string;
136
+ deliveryId: string;
137
+ eventType: string;
138
+ payload: Buffer;
139
+ payloadKeyId: string;
140
+ }): Promise<string | null>;
141
+ claimEvent(): Promise<QueuedEvent | null>;
142
+ finishEvent(id: string, state: "done" | "failed", reason: string | null): Promise<void>;
143
+ pruneEvents(): Promise<void>;
144
+ agentState(agentId: string, connectorId: string): Promise<AgentAppState | null>;
145
+ triggersFor(org: string, connectorId: string): Promise<EventTriggerRow[]>;
146
+ trigger(org: string, agentId: string, connectorId: string): Promise<EventTriggerRow>;
147
+ triggerById(id: string): Promise<EventTriggerRow | null>;
148
+ agentTriggers(org: string, agentId: string): Promise<EventTriggerRow[]>;
149
+ setTrigger(org: string, row: Omit<EventTriggerRow, "id" | "updatedAt">): Promise<boolean>;
150
+ removeTrigger(org: string, agentId: string, connectorId: string): Promise<boolean>;
151
+ runCounts(triggerId: string): Promise<RunCounts>;
152
+ startRun(input: {
153
+ agentId: string;
154
+ triggerId: string;
155
+ eventId: string;
156
+ eventType: string;
157
+ deliveryId: string;
158
+ runner: string;
159
+ }): Promise<string>;
160
+ updateRun(id: string, patch: {
161
+ state?: EventRunRow["state"];
162
+ sessionId?: string;
163
+ error?: string;
164
+ costCents?: number;
165
+ }): Promise<void>;
166
+ failStaleStarts(): Promise<number>;
167
+ runningRuns(): Promise<(EventRunRow & {
168
+ organizationId: string;
169
+ })[]>;
170
+ recentRuns(org: string, agentId: string, limit: number): Promise<EventRunRow[]>;
171
+ };
172
+ export type EventsStore = ReturnType<typeof createEventsStore>;
@@ -0,0 +1,275 @@
1
+ import { tables } from "../store.js";
2
+ // Postgres for app events: each organization's subscriptions, the inbound queue, each agent's
3
+ // event triggers and the runs they started (migrations/0007_app_events.sql).
4
+ const iso = (column) => `to_char(${column} at time zone 'UTC', 'YYYY-MM-DD"T"HH24:MI:SS.MS"Z"')`;
5
+ const SUBSCRIPTION = `id::text, organization_id::text as "organizationId",
6
+ connector_id as "connectorId", source, secret, secret_key_id as "secretKeyId", filter,
7
+ interval_seconds as "intervalSeconds", cursor, ${iso("polled_at")} as "polledAt",
8
+ last_error as "lastError", registered, created_by as "createdBy",
9
+ ${iso("created_at")} as "createdAt"`;
10
+ const TRIGGER = `t.id::text, t.agent_id::text as "agentId", t.connector_id as "connectorId",
11
+ t.enabled, t.event_types as "eventTypes", t.conditions, t.prompt, t.runner, t.settings,
12
+ t.secret, t.secret_key_id as "secretKeyId", t.managed_agent_id as "managedAgentId",
13
+ t.environment_id as "environmentId", t.vault_ids as "vaultIds",
14
+ t.budget_cents as "budgetCents", t.max_runs_per_hour as "maxRunsPerHour",
15
+ t.max_cents_per_day as "maxCentsPerDay", t.max_concurrent as "maxConcurrent",
16
+ t.updated_by as "updatedBy", ${iso("t.updated_at")} as "updatedAt"`;
17
+ const RUN = `r.id::text, r.agent_id::text as "agentId", r.trigger_id::text as "triggerId",
18
+ t.connector_id as "connectorId", r.event_type as "eventType", r.delivery_id as "deliveryId",
19
+ r.runner, r.session_id as "sessionId", r.state, r.error, r.cost_cents as "costCents",
20
+ ${iso("r.started_at")} as "startedAt", ${iso("r.finished_at")} as "finishedAt"`;
21
+ export function createEventsStore(sql, schema) {
22
+ const t = tables(sql, schema);
23
+ return {
24
+ // ---- subscriptions ----
25
+ // Null when the organization already subscribed to the app.
26
+ async createSubscription(input) {
27
+ const [row] = await sql.unsafe(`insert into ${t.event_subscriptions}
28
+ (id, organization_id, connector_id, source, secret, secret_key_id, filter,
29
+ interval_seconds, cursor, created_by)
30
+ values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)
31
+ on conflict (organization_id, connector_id) do nothing returning ${SUBSCRIPTION}`, [
32
+ input.id,
33
+ input.organizationId,
34
+ input.connectorId,
35
+ input.source,
36
+ input.secret,
37
+ input.secretKeyId,
38
+ input.filter,
39
+ input.intervalSeconds,
40
+ input.cursor,
41
+ input.createdBy,
42
+ ]);
43
+ return row ?? null;
44
+ },
45
+ async subscription(id) {
46
+ const [row] = await sql.unsafe(`select ${SUBSCRIPTION} from ${t.event_subscriptions} where id = $1`, [id]);
47
+ return row ?? null;
48
+ },
49
+ async subscriptions(org) {
50
+ return sql.unsafe(`select ${SUBSCRIPTION} from ${t.event_subscriptions}
51
+ where organization_id = $1 order by connector_id`, [org]);
52
+ },
53
+ async deleteSubscription(org, id) {
54
+ const [row] = await sql.unsafe(`delete from ${t.event_subscriptions} where organization_id = $1 and id = $2
55
+ returning ${SUBSCRIPTION}`, [org, id]);
56
+ return row ?? null;
57
+ },
58
+ async setSecret(org, id, secret, keyId) {
59
+ const rows = await sql `
60
+ update ${t.event_subscriptions} set secret = ${secret}, secret_key_id = ${keyId}
61
+ where organization_id = ${org} and id = ${id} and source = 'webhook' returning id`;
62
+ return rows.length > 0;
63
+ },
64
+ async setRegistered(id, registered) {
65
+ await sql `update ${t.event_subscriptions} set registered = ${registered} where id = ${id}`;
66
+ },
67
+ // Polls whose interval has passed since they last ran.
68
+ async duePolls() {
69
+ return sql.unsafe(`select ${SUBSCRIPTION} from ${t.event_subscriptions}
70
+ where source = 'poll'
71
+ and (polled_at is null
72
+ or polled_at < now() - make_interval(secs => interval_seconds))
73
+ order by polled_at nulls first`);
74
+ },
75
+ async polled(id, cursor, error) {
76
+ await sql `
77
+ update ${t.event_subscriptions}
78
+ set polled_at = now(), cursor = coalesce(${cursor}, cursor), last_error = ${error}
79
+ where id = ${id}`;
80
+ },
81
+ // During a key rotation: the secrets still sealed with another key than `keyId`.
82
+ async staleSecrets(keyId) {
83
+ const [subscriptions, triggers] = await Promise.all([
84
+ sql `
85
+ select s.id::text, s.organization_id::text as "organizationId", s.secret,
86
+ s.secret_key_id as "secretKeyId"
87
+ from ${t.event_subscriptions} s
88
+ where s.secret is not null and s.secret_key_id <> ${keyId}`,
89
+ sql `
90
+ select t.id::text, a.organization_id::text as "organizationId",
91
+ t.agent_id::text as "agentId", t.connector_id as "connectorId", t.secret,
92
+ t.secret_key_id as "secretKeyId"
93
+ from ${t.event_triggers} t join ${t.agents} a on a.id = t.agent_id
94
+ where t.secret is not null and t.secret_key_id <> ${keyId}`,
95
+ ]);
96
+ return { subscriptions, triggers };
97
+ },
98
+ // Only over the secret read: one replaced meanwhile stays.
99
+ async reseal(table, id, was, secret, keyId) {
100
+ const rows = await sql `
101
+ update ${t[table]} set secret = ${secret}, secret_key_id = ${keyId}
102
+ where id = ${id} and secret = ${was} returning id`;
103
+ return rows.length > 0;
104
+ },
105
+ // ---- the queue ----
106
+ // Null when this delivery was already received (a retry or a replay).
107
+ async insertEvent(input) {
108
+ const [row] = await sql `
109
+ insert into ${t.app_events}
110
+ (subscription_id, delivery_id, event_type, payload, payload_key_id)
111
+ values (${input.subscriptionId}, ${input.deliveryId}, ${input.eventType},
112
+ ${input.payload}, ${input.payloadKeyId})
113
+ on conflict (subscription_id, delivery_id) do nothing returning id::text`;
114
+ return row?.id ?? null;
115
+ },
116
+ // The oldest pending event, or one whose worker died. Never the same one to two workers.
117
+ async claimEvent() {
118
+ const [row] = await sql.unsafe(`with claimed as (
119
+ update ${t.app_events} set state = 'processing', claimed_at = now()
120
+ where id = (
121
+ select id from ${t.app_events}
122
+ where state = 'pending'
123
+ or (state = 'processing' and claimed_at < now() - interval '10 minutes')
124
+ order by id for update skip locked limit 1)
125
+ returning *)
126
+ select c.id::text, c.subscription_id::text as "subscriptionId",
127
+ s.organization_id::text as "organizationId", s.connector_id as "connectorId",
128
+ c.delivery_id as "deliveryId", c.event_type as "eventType", c.payload,
129
+ c.payload_key_id as "payloadKeyId"
130
+ from claimed c join ${t.event_subscriptions} s on s.id = c.subscription_id`);
131
+ return row ?? null;
132
+ },
133
+ // The payload is kept only until the event is handled.
134
+ async finishEvent(id, state, reason) {
135
+ await sql `
136
+ update ${t.app_events}
137
+ set state = ${state}, reason = ${reason}, payload = null, payload_key_id = null
138
+ where id = ${id}`;
139
+ },
140
+ async pruneEvents() {
141
+ await sql `delete from ${t.app_events} where received_at < now() - interval '30 days'`;
142
+ },
143
+ // ---- triggers ----
144
+ async agentState(agentId, connectorId) {
145
+ const [row] = await sql `
146
+ select a.name as "agentName", a.status as "agentStatus",
147
+ case when g.agent_id is null then null else
148
+ jsonb_build_object('capabilities', to_jsonb(g.capabilities), 'limits', g.limits)
149
+ end as grant,
150
+ case when c.id is null then null else
151
+ jsonb_build_object('capabilities', to_jsonb(c.capabilities),
152
+ 'connected', c.status = 'connected'
153
+ and (c.provider_id is null or p.status = 'connected'))
154
+ end as connection
155
+ from ${t.agents} a
156
+ left join ${t.grants} g on g.agent_id = a.id and g.connector_id = ${connectorId}
157
+ left join ${t.connections} c
158
+ on c.organization_id = a.organization_id and c.connector_id = ${connectorId}
159
+ left join ${t.providers} p on p.id = c.provider_id
160
+ where a.id = ${agentId}`;
161
+ return row ?? null;
162
+ },
163
+ // Every enabled trigger on the app, of the organization's agents.
164
+ async triggersFor(org, connectorId) {
165
+ return sql.unsafe(`select ${TRIGGER} from ${t.event_triggers} t join ${t.agents} a on a.id = t.agent_id
166
+ where a.organization_id = $1 and t.connector_id = $2 and t.enabled
167
+ order by t.agent_id`, [org, connectorId]);
168
+ },
169
+ async trigger(org, agentId, connectorId) {
170
+ const [row] = await sql.unsafe(`select ${TRIGGER} from ${t.event_triggers} t join ${t.agents} a on a.id = t.agent_id
171
+ where a.organization_id = $1 and t.agent_id = $2 and t.connector_id = $3`, [org, agentId, connectorId]);
172
+ return row ?? null;
173
+ },
174
+ async triggerById(id) {
175
+ const [row] = await sql.unsafe(`select ${TRIGGER} from ${t.event_triggers} t where t.id = $1`, [id]);
176
+ return row ?? null;
177
+ },
178
+ async agentTriggers(org, agentId) {
179
+ return sql.unsafe(`select ${TRIGGER} from ${t.event_triggers} t join ${t.agents} a on a.id = t.agent_id
180
+ where a.organization_id = $1 and t.agent_id = $2 order by t.connector_id`, [org, agentId]);
181
+ },
182
+ // Only for an agent of this organization; false otherwise.
183
+ async setTrigger(org, row) {
184
+ const rows = await sql `
185
+ insert into ${t.event_triggers}
186
+ (agent_id, connector_id, enabled, event_types, conditions, prompt, runner, settings,
187
+ secret, secret_key_id, managed_agent_id, environment_id, vault_ids, budget_cents,
188
+ max_runs_per_hour, max_cents_per_day, max_concurrent, updated_by)
189
+ select a.id, ${row.connectorId}, ${row.enabled}, ${sql.array(row.eventTypes)},
190
+ ${sql.json(row.conditions)}, ${row.prompt}, ${row.runner},
191
+ ${sql.json(row.settings)}, ${row.secret},
192
+ ${row.secretKeyId}, ${row.managedAgentId}, ${row.environmentId},
193
+ ${sql.array(row.vaultIds)}, ${row.budgetCents}, ${row.maxRunsPerHour},
194
+ ${row.maxCentsPerDay}, ${row.maxConcurrent}, ${row.updatedBy}
195
+ from ${t.agents} a
196
+ where a.id = ${row.agentId} and a.organization_id = ${org}
197
+ on conflict (agent_id, connector_id) do update set
198
+ enabled = excluded.enabled, event_types = excluded.event_types,
199
+ conditions = excluded.conditions, prompt = excluded.prompt, runner = excluded.runner,
200
+ settings = excluded.settings, secret = excluded.secret,
201
+ secret_key_id = excluded.secret_key_id, managed_agent_id = excluded.managed_agent_id,
202
+ environment_id = excluded.environment_id, vault_ids = excluded.vault_ids,
203
+ budget_cents = excluded.budget_cents, max_runs_per_hour = excluded.max_runs_per_hour,
204
+ max_cents_per_day = excluded.max_cents_per_day,
205
+ max_concurrent = excluded.max_concurrent, updated_by = excluded.updated_by,
206
+ updated_at = now()
207
+ returning agent_id`;
208
+ return rows.length > 0;
209
+ },
210
+ async removeTrigger(org, agentId, connectorId) {
211
+ const rows = await sql `
212
+ delete from ${t.event_triggers} t using ${t.agents} a
213
+ where a.id = t.agent_id and a.organization_id = ${org} and t.agent_id = ${agentId}
214
+ and t.connector_id = ${connectorId}
215
+ returning t.id`;
216
+ return rows.length > 0;
217
+ },
218
+ // ---- runs ----
219
+ // Runs live now, started in the last hour (failed starts too), and what finished runs
220
+ // cost in the last 24 hours, for one trigger.
221
+ async runCounts(triggerId) {
222
+ const [row] = await sql `
223
+ select count(*) filter (where state in ('starting', 'running'))::int as active,
224
+ count(*) filter (where started_at > now() - interval '1 hour')::int as "lastHour",
225
+ coalesce(sum(cost_cents) filter (where started_at > now() - interval '24 hours'),
226
+ 0)::int as "spentToday"
227
+ from ${t.event_runs}
228
+ where trigger_id = ${triggerId} and started_at > now() - interval '24 hours'
229
+ or (trigger_id = ${triggerId} and state in ('starting', 'running'))`;
230
+ return row;
231
+ },
232
+ async startRun(input) {
233
+ const [row] = await sql `
234
+ insert into ${t.event_runs}
235
+ (agent_id, trigger_id, event_id, event_type, delivery_id, runner, state)
236
+ values (${input.agentId}, ${input.triggerId}, ${input.eventId}, ${input.eventType},
237
+ ${input.deliveryId}, ${input.runner}, 'starting')
238
+ returning id::text`;
239
+ return row.id;
240
+ },
241
+ async updateRun(id, patch) {
242
+ const finished = patch.state === "ended" || patch.state === "failed";
243
+ await sql `
244
+ update ${t.event_runs}
245
+ set state = coalesce(${patch.state ?? null}, state),
246
+ session_id = coalesce(${patch.sessionId ?? null}, session_id),
247
+ error = coalesce(${patch.error ?? null}, error),
248
+ cost_cents = coalesce(${patch.costCents ?? null}, cost_cents),
249
+ finished_at = case when ${finished} then now() else finished_at end
250
+ where id = ${id}`;
251
+ },
252
+ // Runs left starting (the process stopped mid-start) hold a concurrency slot forever.
253
+ async failStaleStarts() {
254
+ const rows = await sql `
255
+ update ${t.event_runs}
256
+ set state = 'failed', error = 'Did not start', finished_at = now()
257
+ where state = 'starting' and started_at < now() - interval '10 minutes'
258
+ returning id`;
259
+ return rows.length;
260
+ },
261
+ async runningRuns() {
262
+ return sql.unsafe(`select ${RUN}, a.organization_id::text as "organizationId"
263
+ from ${t.event_runs} r join ${t.event_triggers} t on t.id = r.trigger_id
264
+ join ${t.agents} a on a.id = r.agent_id
265
+ where r.state = 'running' and r.session_id is not null order by r.started_at`);
266
+ },
267
+ async recentRuns(org, agentId, limit) {
268
+ return sql.unsafe(`select ${RUN} from ${t.event_runs} r join ${t.event_triggers} t on t.id = r.trigger_id
269
+ where r.agent_id = $2 and exists (select 1 from ${t.agents} a
270
+ where a.id = $2 and a.organization_id = $1)
271
+ order by r.started_at desc limit $3`, [org, agentId, limit]);
272
+ },
273
+ };
274
+ }
275
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../../../packages/server/src/events/store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import { type BrandingInput } from "../../connector-kit/src/branding.js";
2
+ import { type ConnectorModule } from "./builtin.js";
3
+ import { type ConnectorJson } from "../../connector-kit/src/connector.js";
4
+ import { type Sql } from "./store.js";
5
+ import { type RunnerFactory } from "./teams/runner.js";
6
+ export type { BrandingInput } from "../../connector-kit/src/branding.js";
7
+ export type { ConnectorModule } from "./builtin.js";
8
+ export type { ConnectorJson } from "../../connector-kit/src/connector.js";
9
+ export { builtinConnectors } from "./builtin.js";
10
+ export type { EventRunInput, RunInput, RunnerFactory, TriggerRunner } from "./teams/runner.js";
11
+ export { claudeManagedAgents, signature, signedWebhook } from "./teams/runner.js";
12
+ export type AgentConnectOptions = {
13
+ database: Sql | {
14
+ url: string;
15
+ };
16
+ schema?: string;
17
+ migrate?: boolean;
18
+ encryptionKey: string;
19
+ previousEncryptionKey?: string;
20
+ adminToken: string;
21
+ publicBaseUrl?: string | null;
22
+ branding?: BrandingInput;
23
+ connectors?: (ConnectorModule | ConnectorJson)[];
24
+ extraConnectorDirs?: string[];
25
+ microsoftSharedApp?: {
26
+ clientId: string;
27
+ clientSecret: string;
28
+ } | null;
29
+ runners?: RunnerFactory[];
30
+ log?: Pick<Console, "log" | "error">;
31
+ };
32
+ /** The whole service, checked and wired: fetch serves /agent-connect/*, start runs the Teams
33
+ * and app events queue workers, watchers and polls. Throws on anything misconfigured. */
34
+ export declare function createAgentConnect(options: AgentConnectOptions): Promise<{
35
+ fetch: (req: Request) => Promise<Response>;
36
+ connectors: string[];
37
+ start(): void;
38
+ stop(): Promise<void>;
39
+ }>;
40
+ export type AgentConnect = Awaited<ReturnType<typeof createAgentConnect>>;