@arbium/enterprise-agent-connect 0.1.1 → 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 (217) hide show
  1. package/README.md +157 -10
  2. package/dist/connectors/dell-techdirect/index.d.ts +8 -0
  3. package/dist/connectors/dell-techdirect/tools.d.ts +2 -0
  4. package/dist/connectors/dell-techdirect/vendor.d.ts +6 -0
  5. package/dist/connectors/dynamics-365/connector.json +213 -0
  6. package/dist/connectors/dynamics-365/index.d.ts +11 -0
  7. package/dist/connectors/dynamics-365/index.js +10 -0
  8. package/dist/connectors/dynamics-365/index.js.map +1 -0
  9. package/dist/connectors/dynamics-365/tools.d.ts +35 -0
  10. package/dist/connectors/dynamics-365/tools.js +806 -0
  11. package/dist/connectors/dynamics-365/tools.js.map +1 -0
  12. package/dist/connectors/dynamics-365/vendor.d.ts +9 -0
  13. package/dist/connectors/dynamics-365/vendor.js +110 -0
  14. package/dist/connectors/dynamics-365/vendor.js.map +1 -0
  15. package/dist/connectors/entra/index.d.ts +2 -0
  16. package/dist/connectors/entra/tools.d.ts +14 -0
  17. package/dist/connectors/fedex/index.d.ts +8 -0
  18. package/dist/connectors/fedex/tools.d.ts +3 -0
  19. package/dist/connectors/fedex/vendor.d.ts +7 -0
  20. package/dist/connectors/gong/connector.json +127 -0
  21. package/dist/connectors/gong/index.d.ts +8 -0
  22. package/dist/connectors/gong/index.js +7 -0
  23. package/dist/connectors/gong/index.js.map +1 -0
  24. package/dist/connectors/gong/tools.d.ts +8 -0
  25. package/dist/connectors/gong/tools.js +424 -0
  26. package/dist/connectors/gong/tools.js.map +1 -0
  27. package/dist/connectors/gong/vendor.d.ts +4 -0
  28. package/dist/connectors/gong/vendor.js +97 -0
  29. package/dist/connectors/gong/vendor.js.map +1 -0
  30. package/dist/connectors/http/index.d.ts +38 -0
  31. package/dist/connectors/http/index.js +151 -64
  32. package/dist/connectors/http/index.js.map +1 -1
  33. package/dist/connectors/intune/index.d.ts +2 -0
  34. package/dist/connectors/intune/tools.d.ts +12 -0
  35. package/dist/connectors/jamf/connector.json +182 -0
  36. package/dist/connectors/jamf/index.d.ts +8 -0
  37. package/dist/connectors/jamf/index.js +7 -0
  38. package/dist/connectors/jamf/index.js.map +1 -0
  39. package/dist/connectors/jamf/tools.d.ts +7 -0
  40. package/dist/connectors/jamf/tools.js +659 -0
  41. package/dist/connectors/jamf/tools.js.map +1 -0
  42. package/dist/connectors/jamf/vendor.d.ts +5 -0
  43. package/dist/connectors/jamf/vendor.js +66 -0
  44. package/dist/connectors/jamf/vendor.js.map +1 -0
  45. package/dist/connectors/jira/connector.json +144 -1
  46. package/dist/connectors/jira/index.d.ts +8 -0
  47. package/dist/connectors/jira/jql.d.ts +4 -0
  48. package/dist/connectors/jira/tools.d.ts +3 -0
  49. package/dist/connectors/jira/vendor.d.ts +3 -0
  50. package/dist/connectors/microsoft/client.d.ts +58 -0
  51. package/dist/connectors/netsuite/connector.json +315 -0
  52. package/dist/connectors/netsuite/index.d.ts +8 -0
  53. package/dist/connectors/netsuite/index.js +7 -0
  54. package/dist/connectors/netsuite/index.js.map +1 -0
  55. package/dist/connectors/netsuite/tools.d.ts +24 -0
  56. package/dist/connectors/netsuite/tools.js +447 -0
  57. package/dist/connectors/netsuite/tools.js.map +1 -0
  58. package/dist/connectors/netsuite/vendor.d.ts +26 -0
  59. package/dist/connectors/netsuite/vendor.js +248 -0
  60. package/dist/connectors/netsuite/vendor.js.map +1 -0
  61. package/dist/connectors/odata/index.d.ts +36 -0
  62. package/dist/connectors/odata/index.js +460 -0
  63. package/dist/connectors/odata/index.js.map +1 -0
  64. package/dist/connectors/okta/connector.json +193 -0
  65. package/dist/connectors/okta/index.d.ts +8 -0
  66. package/dist/connectors/okta/index.js +7 -0
  67. package/dist/connectors/okta/index.js.map +1 -0
  68. package/dist/connectors/okta/tools.d.ts +6 -0
  69. package/dist/connectors/okta/tools.js +429 -0
  70. package/dist/connectors/okta/tools.js.map +1 -0
  71. package/dist/connectors/okta/vendor.d.ts +14 -0
  72. package/dist/connectors/okta/vendor.js +203 -0
  73. package/dist/connectors/okta/vendor.js.map +1 -0
  74. package/dist/connectors/outlook-calendar/index.d.ts +2 -0
  75. package/dist/connectors/outlook-calendar/tools.d.ts +65 -0
  76. package/dist/connectors/outlook-mail/index.d.ts +2 -0
  77. package/dist/connectors/outlook-mail/tools.d.ts +8 -0
  78. package/dist/connectors/salesforce/index.d.ts +8 -0
  79. package/dist/connectors/salesforce/soql.d.ts +3 -0
  80. package/dist/connectors/salesforce/tools.d.ts +9 -0
  81. package/dist/connectors/salesforce/vendor.d.ts +3 -0
  82. package/dist/connectors/sap-s4hana/connector.json +263 -0
  83. package/dist/connectors/sap-s4hana/index.d.ts +8 -0
  84. package/dist/connectors/sap-s4hana/index.js +7 -0
  85. package/dist/connectors/sap-s4hana/index.js.map +1 -0
  86. package/dist/connectors/sap-s4hana/tools.d.ts +4 -0
  87. package/dist/connectors/sap-s4hana/tools.js +761 -0
  88. package/dist/connectors/sap-s4hana/tools.js.map +1 -0
  89. package/dist/connectors/sap-s4hana/vendor.d.ts +5 -0
  90. package/dist/connectors/sap-s4hana/vendor.js +176 -0
  91. package/dist/connectors/sap-s4hana/vendor.js.map +1 -0
  92. package/dist/connectors/servicenow/connector.json +228 -0
  93. package/dist/connectors/servicenow/index.d.ts +8 -0
  94. package/dist/connectors/servicenow/index.js +7 -0
  95. package/dist/connectors/servicenow/index.js.map +1 -0
  96. package/dist/connectors/servicenow/tools.d.ts +4 -0
  97. package/dist/connectors/servicenow/tools.js +884 -0
  98. package/dist/connectors/servicenow/tools.js.map +1 -0
  99. package/dist/connectors/servicenow/vendor.d.ts +4 -0
  100. package/dist/connectors/servicenow/vendor.js +109 -0
  101. package/dist/connectors/servicenow/vendor.js.map +1 -0
  102. package/dist/connectors/sharepoint-files/excel.d.ts +16 -0
  103. package/dist/connectors/sharepoint-files/index.d.ts +11 -0
  104. package/dist/connectors/sharepoint-files/tools.d.ts +52 -0
  105. package/dist/connectors/sharepoint-files/vendor.d.ts +11 -0
  106. package/dist/connectors/slack/connector.json +148 -0
  107. package/dist/connectors/slack/index.d.ts +8 -0
  108. package/dist/connectors/slack/index.js +7 -0
  109. package/dist/connectors/slack/index.js.map +1 -0
  110. package/dist/connectors/slack/tools.d.ts +3 -0
  111. package/dist/connectors/slack/tools.js +355 -0
  112. package/dist/connectors/slack/tools.js.map +1 -0
  113. package/dist/connectors/slack/vendor.d.ts +17 -0
  114. package/dist/connectors/slack/vendor.js +195 -0
  115. package/dist/connectors/slack/vendor.js.map +1 -0
  116. package/dist/connectors/soap/index.d.ts +19 -0
  117. package/dist/connectors/soap/index.js +248 -0
  118. package/dist/connectors/soap/index.js.map +1 -0
  119. package/dist/connectors/soap/xml.d.ts +12 -0
  120. package/dist/connectors/soap/xml.js +126 -0
  121. package/dist/connectors/soap/xml.js.map +1 -0
  122. package/dist/connectors/sql/engines.d.ts +58 -0
  123. package/dist/connectors/sql/engines.js +292 -0
  124. package/dist/connectors/sql/engines.js.map +1 -0
  125. package/dist/connectors/sql/index.d.ts +19 -0
  126. package/dist/connectors/sql/index.js +212 -0
  127. package/dist/connectors/sql/index.js.map +1 -0
  128. package/dist/connectors/teams/index.d.ts +2 -0
  129. package/dist/connectors/teams/tools.d.ts +2 -0
  130. package/dist/connectors/workday/connector.json +186 -0
  131. package/dist/connectors/workday/index.d.ts +8 -0
  132. package/dist/connectors/workday/index.js +7 -0
  133. package/dist/connectors/workday/index.js.map +1 -0
  134. package/dist/connectors/workday/tools.d.ts +33 -0
  135. package/dist/connectors/workday/tools.js +410 -0
  136. package/dist/connectors/workday/tools.js.map +1 -0
  137. package/dist/connectors/workday/vendor.d.ts +18 -0
  138. package/dist/connectors/workday/vendor.js +195 -0
  139. package/dist/connectors/workday/vendor.js.map +1 -0
  140. package/dist/packages/connector-kit/src/branding.d.ts +57 -0
  141. package/dist/packages/connector-kit/src/certificate.d.ts +19 -0
  142. package/dist/packages/connector-kit/src/common.d.ts +40 -0
  143. package/dist/packages/connector-kit/src/connector.d.ts +1346 -0
  144. package/dist/packages/connector-kit/src/connector.js +586 -44
  145. package/dist/packages/connector-kit/src/connector.js.map +1 -1
  146. package/dist/packages/connector-kit/src/index.d.ts +5 -0
  147. package/dist/packages/connector-kit/src/index.js +5 -0
  148. package/dist/packages/connector-kit/src/index.js.map +1 -0
  149. package/dist/packages/connector-kit/src/oauth.d.ts +15 -0
  150. package/dist/packages/connector-kit/src/oauth.js +21 -4
  151. package/dist/packages/connector-kit/src/oauth.js.map +1 -1
  152. package/dist/packages/connector-kit/src/types.d.ts +85 -0
  153. package/dist/packages/connector-kit/src/types.js.map +1 -1
  154. package/dist/packages/server/migrations/0007_app_events.sql +110 -0
  155. package/dist/packages/server/migrations/rollback/to-legacy.sql +3 -0
  156. package/dist/packages/server/src/api.d.ts +3714 -0
  157. package/dist/packages/server/src/api.js +135 -1
  158. package/dist/packages/server/src/api.js.map +1 -1
  159. package/dist/packages/server/src/app.d.ts +23 -0
  160. package/dist/packages/server/src/app.js +24 -1
  161. package/dist/packages/server/src/app.js.map +1 -1
  162. package/dist/packages/server/src/builtin.d.ts +4 -0
  163. package/dist/packages/server/src/builtin.js +18 -0
  164. package/dist/packages/server/src/builtin.js.map +1 -1
  165. package/dist/packages/server/src/consent.d.ts +27 -0
  166. package/dist/packages/server/src/events/admin.d.ts +156 -0
  167. package/dist/packages/server/src/events/admin.js +255 -0
  168. package/dist/packages/server/src/events/admin.js.map +1 -0
  169. package/dist/packages/server/src/events/deliver.d.ts +43 -0
  170. package/dist/packages/server/src/events/deliver.js +129 -0
  171. package/dist/packages/server/src/events/deliver.js.map +1 -0
  172. package/dist/packages/server/src/events/runtime.d.ts +28 -0
  173. package/dist/packages/server/src/events/runtime.js +397 -0
  174. package/dist/packages/server/src/events/runtime.js.map +1 -0
  175. package/dist/packages/server/src/events/store.d.ts +172 -0
  176. package/dist/packages/server/src/events/store.js +275 -0
  177. package/dist/packages/server/src/events/store.js.map +1 -0
  178. package/dist/packages/server/src/index.d.ts +40 -0
  179. package/dist/packages/server/src/index.js +67 -11
  180. package/dist/packages/server/src/index.js.map +1 -1
  181. package/dist/packages/server/src/migrate.d.ts +11 -0
  182. package/dist/packages/server/src/openapi.d.ts +4 -0
  183. package/dist/packages/server/src/openapi.js +2 -2
  184. package/dist/packages/server/src/openapi.js.map +1 -1
  185. package/dist/packages/server/src/queue.d.ts +10 -0
  186. package/dist/packages/server/src/queue.js +45 -0
  187. package/dist/packages/server/src/queue.js.map +1 -0
  188. package/dist/packages/server/src/secrets.d.ts +19 -0
  189. package/dist/packages/server/src/server.d.ts +1 -0
  190. package/dist/packages/server/src/server.js +14 -1
  191. package/dist/packages/server/src/server.js.map +1 -1
  192. package/dist/packages/server/src/service.d.ts +760 -0
  193. package/dist/packages/server/src/service.js +10 -0
  194. package/dist/packages/server/src/service.js.map +1 -1
  195. package/dist/packages/server/src/store.d.ts +158 -0
  196. package/dist/packages/server/src/store.js +4 -0
  197. package/dist/packages/server/src/store.js.map +1 -1
  198. package/dist/packages/server/src/teams/activity.d.ts +123 -0
  199. package/dist/packages/server/src/teams/activity.js +6 -5
  200. package/dist/packages/server/src/teams/activity.js.map +1 -1
  201. package/dist/packages/server/src/teams/admin.d.ts +335 -0
  202. package/dist/packages/server/src/teams/admin.js +1 -1
  203. package/dist/packages/server/src/teams/admin.js.map +1 -1
  204. package/dist/packages/server/src/teams/approval.d.ts +57 -0
  205. package/dist/packages/server/src/teams/bot.d.ts +25 -0
  206. package/dist/packages/server/src/teams/claude.d.ts +46 -0
  207. package/dist/packages/server/src/teams/jwt.d.ts +17 -0
  208. package/dist/packages/server/src/teams/package.d.ts +79 -0
  209. package/dist/packages/server/src/teams/provision.d.ts +84 -0
  210. package/dist/packages/server/src/teams/runner.d.ts +80 -0
  211. package/dist/packages/server/src/teams/runner.js +50 -6
  212. package/dist/packages/server/src/teams/runner.js.map +1 -1
  213. package/dist/packages/server/src/teams/runtime.d.ts +91 -0
  214. package/dist/packages/server/src/teams/runtime.js +25 -47
  215. package/dist/packages/server/src/teams/runtime.js.map +1 -1
  216. package/dist/packages/server/src/teams/store.d.ts +233 -0
  217. package/package.json +28 -2
@@ -4,6 +4,7 @@ import { ConnectError } from "../../../connector-kit/src/types.js";
4
4
  import { decide, guid, installChange, placeOf, plainText, promptText, newReplyToken, hashReplyToken, } from "./activity.js";
5
5
  import { approvalCard, cardAttachment, invokeCard, invokeError, invokeMessage, MAX_COMMENT, } from "./approval.js";
6
6
  import { validServiceUrl } from "./bot.js";
7
+ import { drainer } from "../queue.js";
7
8
  import { openTriggerSecret } from "./runner.js";
8
9
  import { Unauthorized } from "./jwt.js";
9
10
  // Teams' requests to the agents' bots, the queue they feed, and the sessions that answer them
@@ -30,10 +31,14 @@ const REFUSED = {
30
31
  };
31
32
  /** The body as text, or null once it passes `max` bytes (read no further). */
32
33
  export async function readCapped(req, max = MAX_BODY) {
34
+ return (await readCappedBytes(req, max))?.toString("utf8") ?? null;
35
+ }
36
+ /** The body as sent (a signature covers these bytes), or null once it passes `max`. */
37
+ export async function readCappedBytes(req, max) {
33
38
  if (Number(req.headers.get("content-length") ?? 0) > max)
34
39
  return null;
35
40
  if (!req.body)
36
- return "";
41
+ return Buffer.alloc(0);
37
42
  const chunks = [];
38
43
  let size = 0;
39
44
  for await (const chunk of req.body) {
@@ -42,7 +47,7 @@ export async function readCapped(req, max = MAX_BODY) {
42
47
  return null;
43
48
  chunks.push(chunk);
44
49
  }
45
- return Buffer.concat(chunks).toString("utf8");
50
+ return Buffer.concat(chunks);
46
51
  }
47
52
  export const botAad = (org, botId) => credentialAad(org, `teams-bot:${botId}`);
48
53
  const eventAad = (botId, activityId) => `agent-connect:teams-event:${botId}:${activityId}`;
@@ -181,9 +186,7 @@ export function createTeamsRuntime(deps) {
181
186
  await audit("denied", `unknown card action clicked by ${clicker ?? "unknown"}`);
182
187
  return invokeError("This card action is not one this agent knows");
183
188
  }
184
- const approval = conversationId
185
- ? await teams.approvalForBot(bot.id, id, conversationId)
186
- : null;
189
+ const approval = conversationId ? await teams.approvalForBot(bot.id, id, conversationId) : null;
187
190
  if (!approval) {
188
191
  await audit("denied", `${verb} clicked by ${clicker ?? "unknown"} in ${conversationId ?? "an unknown place"}: no such approval for this bot there`);
189
192
  return invokeMessage("This request is not known to this agent.");
@@ -240,39 +243,20 @@ export function createTeamsRuntime(deps) {
240
243
  }
241
244
  }
242
245
  // ---- the queue ----
243
- // One drain at a time per process; a kick during one makes it look again before stopping.
244
- let draining = null;
245
- let again = false;
246
- let stopped = false;
247
- function kick() {
248
- if (stopped)
249
- return;
250
- again = true;
251
- draining ??= drain()
252
- .catch((error) => console.error("[teams] worker", error))
253
- .finally(() => {
254
- draining = null;
255
- if (again)
256
- kick();
257
- });
258
- }
259
- async function drain() {
260
- while (again) {
261
- again = false;
262
- while (!stopped) {
263
- const event = await teams.claimEvent();
264
- if (!event)
265
- break;
266
- try {
267
- await handle(event);
268
- }
269
- catch (error) {
270
- console.error(`[teams] event ${event.id} failed`, error);
271
- await teams.finishEvent(event.id, "failed", "Internal error");
272
- }
273
- }
246
+ const queue = drainer("teams", async () => {
247
+ const event = await teams.claimEvent();
248
+ if (!event)
249
+ return false;
250
+ try {
251
+ await handle(event);
274
252
  }
275
- }
253
+ catch (error) {
254
+ console.error(`[teams] event ${event.id} failed`, error);
255
+ await teams.finishEvent(event.id, "failed", "Internal error");
256
+ }
257
+ return true;
258
+ });
259
+ const kick = queue.kick;
276
260
  async function handle(event) {
277
261
  const bot = await teams.botById(event.botId);
278
262
  if (!bot || !event.payload || !event.payloadKeyId)
@@ -314,7 +298,7 @@ export function createTeamsRuntime(deps) {
314
298
  : runner
315
299
  ? await runner.unready(bot.organizationId)
316
300
  : `runner ${trigger.runner} is not offered by this deployment`;
317
- const capabilities = state?.grant && state.connection?.status === "connected"
301
+ const capabilities = deps.connector && state?.grant && state.connection?.status === "connected"
318
302
  ? effectiveCapabilities(deps.connector, state.grant.capabilities, state.connection.capabilities).map((c) => c.id)
319
303
  : [];
320
304
  // Where this team is installed, its group id is known even if the message lacks it.
@@ -615,7 +599,7 @@ export function createTeamsRuntime(deps) {
615
599
  /** Drains the queue now and then (events from a worker that stopped) and watches sessions
616
600
  * every few seconds. */
617
601
  start() {
618
- stopped = false;
602
+ queue.start();
619
603
  timers = [
620
604
  setInterval(() => {
621
605
  kick();
@@ -631,10 +615,7 @@ export function createTeamsRuntime(deps) {
631
615
  async stop() {
632
616
  for (const t of timers)
633
617
  clearInterval(t);
634
- stopped = true;
635
- again = false;
636
- while (draining)
637
- await draining;
618
+ await queue.stop();
638
619
  },
639
620
  /** What an agent's Teams tools reach: only its own bot. */
640
621
  access(bot) {
@@ -684,10 +665,7 @@ export function createTeamsRuntime(deps) {
684
665
  };
685
666
  },
686
667
  /** Settles the queue (tests). */
687
- async idle() {
688
- while (draining)
689
- await draining;
690
- },
668
+ idle: queue.idle,
691
669
  };
692
670
  }
693
671
  export function simplify(list) {
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../../../packages/server/src/teams/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../../../packages/server/src/teams/runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,233 @@
1
+ import { type Sql } from "../store.js";
2
+ import type { ApprovalFact, ApprovalRow } from "./approval.js";
3
+ export type BotRow = {
4
+ id: string;
5
+ organizationId: string;
6
+ agentId: string;
7
+ botAppId: string | null;
8
+ teamsAppId: string;
9
+ tenantId: string;
10
+ displayName: string;
11
+ manifestVersion: number;
12
+ status: "awaiting_setup" | "connected" | "needs_reconnect";
13
+ config: Record<string, string>;
14
+ credential: Buffer;
15
+ credentialKeyId: string;
16
+ createdBy: string | null;
17
+ createdAt: string;
18
+ lastRefusedAt: string | null;
19
+ lastRefusedReason: string | null;
20
+ };
21
+ export type ConversationRow = {
22
+ botId: string;
23
+ conversationId: string;
24
+ kind: "personal" | "groupChat" | "team";
25
+ serviceUrl: string;
26
+ teamId: string | null;
27
+ teamGroupId: string | null;
28
+ name: string | null;
29
+ userAadId: string | null;
30
+ removedAt: string | null;
31
+ limitNoticeAt: string | null;
32
+ };
33
+ export type EventRow = {
34
+ id: string;
35
+ botId: string;
36
+ activityId: string;
37
+ type: string;
38
+ conversationId: string;
39
+ threadId: string | null;
40
+ payload: Buffer | null;
41
+ payloadKeyId: string | null;
42
+ };
43
+ export type TriggerRow = {
44
+ agentId: string;
45
+ enabled: boolean;
46
+ runner: string;
47
+ settings: Record<string, unknown>;
48
+ secret: Buffer | null;
49
+ secretKeyId: string | null;
50
+ managedAgentId: string | null;
51
+ environmentId: string | null;
52
+ vaultIds: string[];
53
+ budgetCents: number;
54
+ maxRunsPerHour: number;
55
+ maxCentsPerDay: number;
56
+ maxConcurrent: number;
57
+ replyMode: "mentions" | "all";
58
+ allowedTeams: string[];
59
+ allowedPeople: string[];
60
+ anyoneInOrganization: boolean;
61
+ updatedBy: string | null;
62
+ updatedAt: string;
63
+ };
64
+ export type RunRow = {
65
+ id: string;
66
+ agentId: string;
67
+ botId: string;
68
+ conversationId: string;
69
+ threadId: string;
70
+ triggerActivityId: string;
71
+ runner: string;
72
+ sessionId: string | null;
73
+ state: "starting" | "running" | "idle" | "ended" | "failed" | "no_reply";
74
+ error: string | null;
75
+ note: string | null;
76
+ requestedBy: string | null;
77
+ replyCount: number;
78
+ repliedAt: string | null;
79
+ costCents: number | null;
80
+ turns: number;
81
+ startedAt: string;
82
+ finishedAt: string | null;
83
+ replyTokenAt: string;
84
+ };
85
+ export type AgentTeamsState = {
86
+ agentName: string;
87
+ agentStatus: "active" | "disabled";
88
+ grant: {
89
+ capabilities: string[];
90
+ limits: Record<string, string[] | string>;
91
+ } | null;
92
+ connection: {
93
+ capabilities: string[];
94
+ status: string;
95
+ } | null;
96
+ };
97
+ export declare const MAX_REPLIES = 3;
98
+ export declare function createTeamsStore(sql: Sql, schema: string): {
99
+ createBot(input: {
100
+ id: string;
101
+ organizationId: string;
102
+ agentId: string;
103
+ tenantId: string;
104
+ displayName: string;
105
+ config: Record<string, string>;
106
+ credential: Buffer;
107
+ credentialKeyId: string;
108
+ createdBy: string;
109
+ }): Promise<boolean>;
110
+ listBots(org: string): Promise<BotRow[]>;
111
+ botForAgent(org: string, agentId: string): Promise<BotRow | null>;
112
+ botByAppId(botAppId: string): Promise<BotRow | null>;
113
+ botById(id: string): Promise<BotRow | null>;
114
+ connectBot(id: string, botAppId: string, replaces: Buffer): Promise<boolean>;
115
+ updateBotCredential(id: string, config: Record<string, string>, credential: Buffer, credentialKeyId: string, replaces: Buffer): Promise<boolean>;
116
+ staleSealed(keyIds: string[]): Promise<{
117
+ bots: import("postgres").RowList<{
118
+ id: string;
119
+ organizationId: string;
120
+ config: Record<string, string>;
121
+ credential: Buffer;
122
+ credentialKeyId: string;
123
+ }[]>;
124
+ claudeKeys: import("postgres").RowList<{
125
+ id: string;
126
+ organizationId: string;
127
+ credential: Buffer;
128
+ credentialKeyId: string;
129
+ }[]>;
130
+ triggers: import("postgres").RowList<{
131
+ agentId: string;
132
+ organizationId: string;
133
+ secret: Buffer;
134
+ secretKeyId: string;
135
+ }[]>;
136
+ }>;
137
+ resealTriggerSecret(agentId: string, secret: Buffer, secretKeyId: string, replaces: Buffer): Promise<boolean>;
138
+ resealClaudeKey(id: string, credential: Buffer, credentialKeyId: string, replaces: Buffer): Promise<boolean>;
139
+ markBot(id: string, ok: boolean): Promise<void>;
140
+ refused(botAppId: string, reason: string): Promise<void>;
141
+ deleteBot(org: string, agentId: string): Promise<boolean>;
142
+ agentState(agentId: string): Promise<AgentTeamsState | null>;
143
+ upsertConversation(row: Omit<ConversationRow, "removedAt" | "limitNoticeAt">): Promise<void>;
144
+ removeConversation(botId: string, conversationId: string): Promise<void>;
145
+ conversations(botId: string): Promise<ConversationRow[]>;
146
+ conversationsOf(botIds: string[]): Promise<ConversationRow[]>;
147
+ claimLimitNotice(botId: string, conversationId: string): Promise<boolean>;
148
+ insertEvent(input: {
149
+ botId: string;
150
+ activityId: string;
151
+ type: string;
152
+ conversationId: string;
153
+ threadId: string | null;
154
+ fromAadId: string | null;
155
+ payload: Buffer;
156
+ payloadKeyId: string;
157
+ }): Promise<boolean>;
158
+ claimEvent(): Promise<EventRow | null>;
159
+ finishEvent(id: string, state: "ignored" | "run" | "done" | "failed" | "held", reason: string | null): Promise<void>;
160
+ requeueHeld(): Promise<number>;
161
+ pruneEvents(): Promise<void>;
162
+ trigger(agentId: string): Promise<TriggerRow | null>;
163
+ setTrigger(org: string, row: Omit<TriggerRow, "updatedAt">): Promise<boolean>;
164
+ runCounts(agentId: string, botId: string): Promise<{
165
+ active: number;
166
+ lastHour: number;
167
+ spentToday: number;
168
+ }>;
169
+ latestRun(botId: string, threadId: string): Promise<RunRow | null>;
170
+ startRun(input: {
171
+ agentId: string;
172
+ botId: string;
173
+ conversationId: string;
174
+ threadId: string;
175
+ triggerActivityId: string;
176
+ replyTokenHash: string;
177
+ requestedBy: string;
178
+ runner: string;
179
+ }): Promise<RunRow | null>;
180
+ continueRun(id: string, triggerActivityId: string, replyTokenHash: string): Promise<boolean>;
181
+ updateRun(id: string, patch: {
182
+ state?: RunRow["state"];
183
+ sessionId?: string;
184
+ error?: string;
185
+ note?: string;
186
+ costCents?: number;
187
+ }): Promise<void>;
188
+ failStaleStarts(): Promise<number>;
189
+ runningRuns(): Promise<RunRow[]>;
190
+ runForReply(agentId: string, tokenHash: string): Promise<RunRow | null>;
191
+ claimReply(agentId: string, runId: string): Promise<boolean>;
192
+ releaseReply(runId: string): Promise<void>;
193
+ recentRuns(org: string, agentId: string, limit: number): Promise<RunRow[]>;
194
+ createApproval(input: {
195
+ agentId: string;
196
+ botId: string;
197
+ tokenHash: string;
198
+ conversationId: string;
199
+ serviceUrl: string;
200
+ approverAadId: string;
201
+ approverName: string;
202
+ title: string;
203
+ body: string;
204
+ facts: ApprovalFact[];
205
+ days: number;
206
+ }): Promise<ApprovalRow>;
207
+ approvalPosted(id: string, threadId: string, activityId: string): Promise<ApprovalRow | null>;
208
+ discardApproval(id: string): Promise<void>;
209
+ approvalForAgent(agentId: string, tokenHash: string): Promise<ApprovalRow | null>;
210
+ approvalForBot(botId: string, id: string, conversationId: string): Promise<ApprovalRow | null>;
211
+ decideApproval(botId: string, id: string, conversationId: string, decision: {
212
+ status: "approved" | "rejected";
213
+ byAadId: string;
214
+ byName: string;
215
+ }, comment: string | null): Promise<ApprovalRow | null>;
216
+ claudeKey(org: string): Promise<{
217
+ credential: Buffer;
218
+ credentialKeyId: string;
219
+ config: Record<string, string>;
220
+ connectedBy: string | null;
221
+ connectedAt: string;
222
+ }>;
223
+ setClaudeKey(input: {
224
+ organizationId: string;
225
+ config: Record<string, string>;
226
+ credential: Buffer;
227
+ credentialKeyId: string;
228
+ credentialScope: string;
229
+ connectedBy: string;
230
+ }): Promise<void>;
231
+ removeClaudeKey(org: string): Promise<boolean>;
232
+ };
233
+ export type TeamsStore = ReturnType<typeof createTeamsStore>;
package/package.json CHANGED
@@ -1,10 +1,17 @@
1
1
  {
2
2
  "name": "@arbium/enterprise-agent-connect",
3
- "version": "0.1.1",
3
+ "version": "0.1.2-dev.d2aa5ca",
4
4
  "type": "module",
5
5
  "description": "Enterprise Agent Connect server: the service, its migrations and the built-in connectors",
6
6
  "exports": {
7
- ".": "./dist/packages/server/src/index.js"
7
+ ".": {
8
+ "types": "./dist/packages/server/src/index.d.ts",
9
+ "default": "./dist/packages/server/src/index.js"
10
+ },
11
+ "./kit": {
12
+ "types": "./dist/packages/connector-kit/src/index.d.ts",
13
+ "default": "./dist/packages/connector-kit/src/index.js"
14
+ }
8
15
  },
9
16
  "files": [
10
17
  "dist"
@@ -29,9 +36,28 @@
29
36
  "postgres": "^3.4.9",
30
37
  "zod": "^4.5.4"
31
38
  },
39
+ "peerDependencies": {
40
+ "mssql": "^12.7.4",
41
+ "mysql2": "^3.24.5",
42
+ "oracledb": "^7.0.1"
43
+ },
44
+ "peerDependenciesMeta": {
45
+ "mssql": {
46
+ "optional": true
47
+ },
48
+ "mysql2": {
49
+ "optional": true
50
+ },
51
+ "oracledb": {
52
+ "optional": true
53
+ }
54
+ },
32
55
  "devDependencies": {
33
56
  "@types/node": "^26.1.0",
57
+ "mssql": "^12.7.4",
58
+ "mysql2": "^3.24.5",
34
59
  "openapi-typescript": "7.13.0",
60
+ "oracledb": "^7.0.1",
35
61
  "tsx": "^4.19.0",
36
62
  "typescript": "^6.0.3"
37
63
  },