@arbium/enterprise-agent-connect 0.0.0-stage → 0.1.2-dev.75145ef
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.
- package/LICENSE +202 -0
- package/README.md +269 -2
- package/dist/connectors/dell-techdirect/connector.json +39 -0
- package/dist/connectors/dell-techdirect/index.d.ts +8 -0
- package/dist/connectors/dell-techdirect/index.js +7 -0
- package/dist/connectors/dell-techdirect/index.js.map +1 -0
- package/dist/connectors/dell-techdirect/tools.d.ts +2 -0
- package/dist/connectors/dell-techdirect/tools.js +49 -0
- package/dist/connectors/dell-techdirect/tools.js.map +1 -0
- package/dist/connectors/dell-techdirect/vendor.d.ts +6 -0
- package/dist/connectors/dell-techdirect/vendor.js +57 -0
- package/dist/connectors/dell-techdirect/vendor.js.map +1 -0
- package/dist/connectors/dynamics-365/connector.json +228 -0
- package/dist/connectors/dynamics-365/index.d.ts +8 -0
- package/dist/connectors/dynamics-365/index.js +10 -0
- package/dist/connectors/dynamics-365/index.js.map +1 -0
- package/dist/connectors/dynamics-365/tools.d.ts +35 -0
- package/dist/connectors/dynamics-365/tools.js +806 -0
- package/dist/connectors/dynamics-365/tools.js.map +1 -0
- package/dist/connectors/dynamics-365/vendor.d.ts +9 -0
- package/dist/connectors/dynamics-365/vendor.js +110 -0
- package/dist/connectors/dynamics-365/vendor.js.map +1 -0
- package/dist/connectors/entra/connector.json +85 -0
- package/dist/connectors/entra/index.d.ts +2 -0
- package/dist/connectors/entra/index.js +4 -0
- package/dist/connectors/entra/index.js.map +1 -0
- package/dist/connectors/entra/tools.d.ts +14 -0
- package/dist/connectors/entra/tools.js +262 -0
- package/dist/connectors/entra/tools.js.map +1 -0
- package/dist/connectors/fedex/connector.json +118 -0
- package/dist/connectors/fedex/index.d.ts +8 -0
- package/dist/connectors/fedex/index.js +7 -0
- package/dist/connectors/fedex/index.js.map +1 -0
- package/dist/connectors/fedex/tools.d.ts +3 -0
- package/dist/connectors/fedex/tools.js +152 -0
- package/dist/connectors/fedex/tools.js.map +1 -0
- package/dist/connectors/fedex/vendor.d.ts +7 -0
- package/dist/connectors/fedex/vendor.js +98 -0
- package/dist/connectors/fedex/vendor.js.map +1 -0
- package/dist/connectors/gong/connector.json +127 -0
- package/dist/connectors/gong/index.d.ts +8 -0
- package/dist/connectors/gong/index.js +7 -0
- package/dist/connectors/gong/index.js.map +1 -0
- package/dist/connectors/gong/tools.d.ts +8 -0
- package/dist/connectors/gong/tools.js +424 -0
- package/dist/connectors/gong/tools.js.map +1 -0
- package/dist/connectors/gong/vendor.d.ts +4 -0
- package/dist/connectors/gong/vendor.js +89 -0
- package/dist/connectors/gong/vendor.js.map +1 -0
- package/dist/connectors/http/index.d.ts +34 -0
- package/dist/connectors/http/index.js +325 -0
- package/dist/connectors/http/index.js.map +1 -0
- package/dist/connectors/intune/connector.json +106 -0
- package/dist/connectors/intune/index.d.ts +2 -0
- package/dist/connectors/intune/index.js +4 -0
- package/dist/connectors/intune/index.js.map +1 -0
- package/dist/connectors/intune/tools.d.ts +12 -0
- package/dist/connectors/intune/tools.js +416 -0
- package/dist/connectors/intune/tools.js.map +1 -0
- package/dist/connectors/jamf/connector.json +182 -0
- package/dist/connectors/jamf/index.d.ts +8 -0
- package/dist/connectors/jamf/index.js +7 -0
- package/dist/connectors/jamf/index.js.map +1 -0
- package/dist/connectors/jamf/tools.d.ts +7 -0
- package/dist/connectors/jamf/tools.js +659 -0
- package/dist/connectors/jamf/tools.js.map +1 -0
- package/dist/connectors/jamf/vendor.d.ts +5 -0
- package/dist/connectors/jamf/vendor.js +70 -0
- package/dist/connectors/jamf/vendor.js.map +1 -0
- package/dist/connectors/jira/connector.json +272 -0
- package/dist/connectors/jira/index.d.ts +8 -0
- package/dist/connectors/jira/index.js +7 -0
- package/dist/connectors/jira/index.js.map +1 -0
- package/dist/connectors/jira/jql.d.ts +4 -0
- package/dist/connectors/jira/jql.js +67 -0
- package/dist/connectors/jira/jql.js.map +1 -0
- package/dist/connectors/jira/tools.d.ts +3 -0
- package/dist/connectors/jira/tools.js +464 -0
- package/dist/connectors/jira/tools.js.map +1 -0
- package/dist/connectors/jira/vendor.d.ts +3 -0
- package/dist/connectors/jira/vendor.js +100 -0
- package/dist/connectors/jira/vendor.js.map +1 -0
- package/dist/connectors/microsoft/client.d.ts +66 -0
- package/dist/connectors/microsoft/client.js +452 -0
- package/dist/connectors/microsoft/client.js.map +1 -0
- package/dist/connectors/microsoft/provider.json +118 -0
- package/dist/connectors/netsuite/connector.json +317 -0
- package/dist/connectors/netsuite/index.d.ts +8 -0
- package/dist/connectors/netsuite/index.js +7 -0
- package/dist/connectors/netsuite/index.js.map +1 -0
- package/dist/connectors/netsuite/tools.d.ts +24 -0
- package/dist/connectors/netsuite/tools.js +447 -0
- package/dist/connectors/netsuite/tools.js.map +1 -0
- package/dist/connectors/netsuite/vendor.d.ts +26 -0
- package/dist/connectors/netsuite/vendor.js +247 -0
- package/dist/connectors/netsuite/vendor.js.map +1 -0
- package/dist/connectors/odata/index.d.ts +33 -0
- package/dist/connectors/odata/index.js +460 -0
- package/dist/connectors/odata/index.js.map +1 -0
- package/dist/connectors/okta/connector.json +194 -0
- package/dist/connectors/okta/index.d.ts +8 -0
- package/dist/connectors/okta/index.js +7 -0
- package/dist/connectors/okta/index.js.map +1 -0
- package/dist/connectors/okta/tools.d.ts +6 -0
- package/dist/connectors/okta/tools.js +429 -0
- package/dist/connectors/okta/tools.js.map +1 -0
- package/dist/connectors/okta/vendor.d.ts +14 -0
- package/dist/connectors/okta/vendor.js +204 -0
- package/dist/connectors/okta/vendor.js.map +1 -0
- package/dist/connectors/outlook-calendar/connector.json +136 -0
- package/dist/connectors/outlook-calendar/index.d.ts +2 -0
- package/dist/connectors/outlook-calendar/index.js +4 -0
- package/dist/connectors/outlook-calendar/index.js.map +1 -0
- package/dist/connectors/outlook-calendar/tools.d.ts +65 -0
- package/dist/connectors/outlook-calendar/tools.js +398 -0
- package/dist/connectors/outlook-calendar/tools.js.map +1 -0
- package/dist/connectors/outlook-mail/connector.json +154 -0
- package/dist/connectors/outlook-mail/index.d.ts +2 -0
- package/dist/connectors/outlook-mail/index.js +4 -0
- package/dist/connectors/outlook-mail/index.js.map +1 -0
- package/dist/connectors/outlook-mail/tools.d.ts +8 -0
- package/dist/connectors/outlook-mail/tools.js +236 -0
- package/dist/connectors/outlook-mail/tools.js.map +1 -0
- package/dist/connectors/salesforce/connector.json +122 -0
- package/dist/connectors/salesforce/index.d.ts +8 -0
- package/dist/connectors/salesforce/index.js +7 -0
- package/dist/connectors/salesforce/index.js.map +1 -0
- package/dist/connectors/salesforce/soql.d.ts +3 -0
- package/dist/connectors/salesforce/soql.js +60 -0
- package/dist/connectors/salesforce/soql.js.map +1 -0
- package/dist/connectors/salesforce/tools.d.ts +9 -0
- package/dist/connectors/salesforce/tools.js +234 -0
- package/dist/connectors/salesforce/tools.js.map +1 -0
- package/dist/connectors/salesforce/vendor.d.ts +3 -0
- package/dist/connectors/salesforce/vendor.js +113 -0
- package/dist/connectors/salesforce/vendor.js.map +1 -0
- package/dist/connectors/sap-s4hana/connector.json +264 -0
- package/dist/connectors/sap-s4hana/index.d.ts +8 -0
- package/dist/connectors/sap-s4hana/index.js +7 -0
- package/dist/connectors/sap-s4hana/index.js.map +1 -0
- package/dist/connectors/sap-s4hana/tools.d.ts +4 -0
- package/dist/connectors/sap-s4hana/tools.js +761 -0
- package/dist/connectors/sap-s4hana/tools.js.map +1 -0
- package/dist/connectors/sap-s4hana/vendor.d.ts +5 -0
- package/dist/connectors/sap-s4hana/vendor.js +176 -0
- package/dist/connectors/sap-s4hana/vendor.js.map +1 -0
- package/dist/connectors/servicenow/connector.json +228 -0
- package/dist/connectors/servicenow/index.d.ts +8 -0
- package/dist/connectors/servicenow/index.js +7 -0
- package/dist/connectors/servicenow/index.js.map +1 -0
- package/dist/connectors/servicenow/tools.d.ts +4 -0
- package/dist/connectors/servicenow/tools.js +884 -0
- package/dist/connectors/servicenow/tools.js.map +1 -0
- package/dist/connectors/servicenow/vendor.d.ts +3 -0
- package/dist/connectors/servicenow/vendor.js +106 -0
- package/dist/connectors/servicenow/vendor.js.map +1 -0
- package/dist/connectors/sharepoint-files/connector.json +194 -0
- package/dist/connectors/sharepoint-files/excel.d.ts +16 -0
- package/dist/connectors/sharepoint-files/excel.js +300 -0
- package/dist/connectors/sharepoint-files/excel.js.map +1 -0
- package/dist/connectors/sharepoint-files/index.d.ts +8 -0
- package/dist/connectors/sharepoint-files/index.js +12 -0
- package/dist/connectors/sharepoint-files/index.js.map +1 -0
- package/dist/connectors/sharepoint-files/tools.d.ts +52 -0
- package/dist/connectors/sharepoint-files/tools.js +365 -0
- package/dist/connectors/sharepoint-files/tools.js.map +1 -0
- package/dist/connectors/sharepoint-files/vendor.d.ts +11 -0
- package/dist/connectors/sharepoint-files/vendor.js +167 -0
- package/dist/connectors/sharepoint-files/vendor.js.map +1 -0
- package/dist/connectors/slack/connector.json +148 -0
- package/dist/connectors/slack/index.d.ts +8 -0
- package/dist/connectors/slack/index.js +7 -0
- package/dist/connectors/slack/index.js.map +1 -0
- package/dist/connectors/slack/tools.d.ts +3 -0
- package/dist/connectors/slack/tools.js +355 -0
- package/dist/connectors/slack/tools.js.map +1 -0
- package/dist/connectors/slack/vendor.d.ts +17 -0
- package/dist/connectors/slack/vendor.js +189 -0
- package/dist/connectors/slack/vendor.js.map +1 -0
- package/dist/connectors/soap/index.d.ts +16 -0
- package/dist/connectors/soap/index.js +248 -0
- package/dist/connectors/soap/index.js.map +1 -0
- package/dist/connectors/soap/xml.d.ts +12 -0
- package/dist/connectors/soap/xml.js +126 -0
- package/dist/connectors/soap/xml.js.map +1 -0
- package/dist/connectors/sql/engines.d.ts +58 -0
- package/dist/connectors/sql/engines.js +292 -0
- package/dist/connectors/sql/engines.js.map +1 -0
- package/dist/connectors/sql/index.d.ts +16 -0
- package/dist/connectors/sql/index.js +214 -0
- package/dist/connectors/sql/index.js.map +1 -0
- package/dist/connectors/teams/connector.json +298 -0
- package/dist/connectors/teams/index.d.ts +2 -0
- package/dist/connectors/teams/index.js +5 -0
- package/dist/connectors/teams/index.js.map +1 -0
- package/dist/connectors/teams/tools.d.ts +7 -0
- package/dist/connectors/teams/tools.js +392 -0
- package/dist/connectors/teams/tools.js.map +1 -0
- package/dist/connectors/workday/connector.json +188 -0
- package/dist/connectors/workday/index.d.ts +8 -0
- package/dist/connectors/workday/index.js +7 -0
- package/dist/connectors/workday/index.js.map +1 -0
- package/dist/connectors/workday/tools.d.ts +33 -0
- package/dist/connectors/workday/tools.js +410 -0
- package/dist/connectors/workday/tools.js.map +1 -0
- package/dist/connectors/workday/vendor.d.ts +18 -0
- package/dist/connectors/workday/vendor.js +199 -0
- package/dist/connectors/workday/vendor.js.map +1 -0
- package/dist/packages/connector-kit/src/branding.d.ts +57 -0
- package/dist/packages/connector-kit/src/branding.js +102 -0
- package/dist/packages/connector-kit/src/branding.js.map +1 -0
- package/dist/packages/connector-kit/src/certificate.d.ts +19 -0
- package/dist/packages/connector-kit/src/certificate.js +84 -0
- package/dist/packages/connector-kit/src/certificate.js.map +1 -0
- package/dist/packages/connector-kit/src/common.d.ts +36 -0
- package/dist/packages/connector-kit/src/common.js +110 -0
- package/dist/packages/connector-kit/src/common.js.map +1 -0
- package/dist/packages/connector-kit/src/connector.d.ts +1356 -0
- package/dist/packages/connector-kit/src/connector.js +1073 -0
- package/dist/packages/connector-kit/src/connector.js.map +1 -0
- package/dist/packages/connector-kit/src/fetch.d.ts +6 -0
- package/dist/packages/connector-kit/src/fetch.js +44 -0
- package/dist/packages/connector-kit/src/fetch.js.map +1 -0
- package/dist/packages/connector-kit/src/index.d.ts +5 -0
- package/dist/packages/connector-kit/src/index.js +6 -0
- package/dist/packages/connector-kit/src/index.js.map +1 -0
- package/dist/packages/connector-kit/src/oauth.d.ts +15 -0
- package/dist/packages/connector-kit/src/oauth.js +98 -0
- package/dist/packages/connector-kit/src/oauth.js.map +1 -0
- package/dist/packages/connector-kit/src/types.d.ts +87 -0
- package/dist/packages/connector-kit/src/types.js +20 -0
- package/dist/packages/connector-kit/src/types.js.map +1 -0
- package/dist/packages/server/migrations/0001_tables.sql +268 -0
- package/dist/packages/server/migrations/0002_organizations.sql +72 -0
- package/dist/packages/server/migrations/0003_drop_unused.sql +3 -0
- package/dist/packages/server/migrations/0004_trigger_runners.sql +15 -0
- package/dist/packages/server/migrations/0005_run_runner.sql +3 -0
- package/dist/packages/server/migrations/0006_approvals.sql +36 -0
- package/dist/packages/server/migrations/0007_app_events.sql +110 -0
- package/dist/packages/server/migrations/rollback/to-legacy.sql +90 -0
- package/dist/packages/server/src/api.d.ts +3730 -0
- package/dist/packages/server/src/api.js +820 -0
- package/dist/packages/server/src/api.js.map +1 -0
- package/dist/packages/server/src/app.d.ts +23 -0
- package/dist/packages/server/src/app.js +467 -0
- package/dist/packages/server/src/app.js.map +1 -0
- package/dist/packages/server/src/builtin.d.ts +5 -0
- package/dist/packages/server/src/builtin.js +42 -0
- package/dist/packages/server/src/builtin.js.map +1 -0
- package/dist/packages/server/src/consent.d.ts +27 -0
- package/dist/packages/server/src/consent.js +36 -0
- package/dist/packages/server/src/consent.js.map +1 -0
- package/dist/packages/server/src/events/admin.d.ts +156 -0
- package/dist/packages/server/src/events/admin.js +255 -0
- package/dist/packages/server/src/events/admin.js.map +1 -0
- package/dist/packages/server/src/events/deliver.d.ts +43 -0
- package/dist/packages/server/src/events/deliver.js +129 -0
- package/dist/packages/server/src/events/deliver.js.map +1 -0
- package/dist/packages/server/src/events/runtime.d.ts +28 -0
- package/dist/packages/server/src/events/runtime.js +404 -0
- package/dist/packages/server/src/events/runtime.js.map +1 -0
- package/dist/packages/server/src/events/store.d.ts +172 -0
- package/dist/packages/server/src/events/store.js +275 -0
- package/dist/packages/server/src/events/store.js.map +1 -0
- package/dist/packages/server/src/index.d.ts +40 -0
- package/dist/packages/server/src/index.js +186 -0
- package/dist/packages/server/src/index.js.map +1 -0
- package/dist/packages/server/src/migrate.d.ts +11 -0
- package/dist/packages/server/src/migrate.js +134 -0
- package/dist/packages/server/src/migrate.js.map +1 -0
- package/dist/packages/server/src/openapi.d.ts +4 -0
- package/dist/packages/server/src/openapi.js +101 -0
- package/dist/packages/server/src/openapi.js.map +1 -0
- package/dist/packages/server/src/queue.d.ts +10 -0
- package/dist/packages/server/src/queue.js +45 -0
- package/dist/packages/server/src/queue.js.map +1 -0
- package/dist/packages/server/src/secrets.d.ts +19 -0
- package/dist/packages/server/src/secrets.js +76 -0
- package/dist/packages/server/src/secrets.js.map +1 -0
- package/dist/packages/server/src/server.d.ts +1 -0
- package/dist/packages/server/src/server.js +82 -0
- package/dist/packages/server/src/server.js.map +1 -0
- package/dist/packages/server/src/service.d.ts +767 -0
- package/dist/packages/server/src/service.js +924 -0
- package/dist/packages/server/src/service.js.map +1 -0
- package/dist/packages/server/src/store.d.ts +157 -0
- package/dist/packages/server/src/store.js +415 -0
- package/dist/packages/server/src/store.js.map +1 -0
- package/dist/packages/server/src/teams/activity.d.ts +123 -0
- package/dist/packages/server/src/teams/activity.js +188 -0
- package/dist/packages/server/src/teams/activity.js.map +1 -0
- package/dist/packages/server/src/teams/admin.d.ts +335 -0
- package/dist/packages/server/src/teams/admin.js +699 -0
- package/dist/packages/server/src/teams/admin.js.map +1 -0
- package/dist/packages/server/src/teams/approval.d.ts +57 -0
- package/dist/packages/server/src/teams/approval.js +118 -0
- package/dist/packages/server/src/teams/approval.js.map +1 -0
- package/dist/packages/server/src/teams/bot.d.ts +25 -0
- package/dist/packages/server/src/teams/bot.js +124 -0
- package/dist/packages/server/src/teams/bot.js.map +1 -0
- package/dist/packages/server/src/teams/claude.d.ts +46 -0
- package/dist/packages/server/src/teams/claude.js +165 -0
- package/dist/packages/server/src/teams/claude.js.map +1 -0
- package/dist/packages/server/src/teams/jwt.d.ts +17 -0
- package/dist/packages/server/src/teams/jwt.js +121 -0
- package/dist/packages/server/src/teams/jwt.js.map +1 -0
- package/dist/packages/server/src/teams/package.d.ts +79 -0
- package/dist/packages/server/src/teams/package.js +319 -0
- package/dist/packages/server/src/teams/package.js.map +1 -0
- package/dist/packages/server/src/teams/provision.d.ts +84 -0
- package/dist/packages/server/src/teams/provision.js +505 -0
- package/dist/packages/server/src/teams/provision.js.map +1 -0
- package/dist/packages/server/src/teams/runner.d.ts +80 -0
- package/dist/packages/server/src/teams/runner.js +187 -0
- package/dist/packages/server/src/teams/runner.js.map +1 -0
- package/dist/packages/server/src/teams/runtime.d.ts +91 -0
- package/dist/packages/server/src/teams/runtime.js +679 -0
- package/dist/packages/server/src/teams/runtime.js.map +1 -0
- package/dist/packages/server/src/teams/store.d.ts +233 -0
- package/dist/packages/server/src/teams/store.js +507 -0
- package/dist/packages/server/src/teams/store.js.map +1 -0
- 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" | "secret" | "organizationId" | "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" | "secret" | "organizationId" | "connectorId" | "agentId" | "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":"AAAA,OAAO,EAAE,MAAM,EAAY,MAAM,aAAa,CAAC;AAG/C,8FAA8F;AAC9F,6EAA6E;AAE7E,MAAM,GAAG,GAAG,CAAC,MAAc,EAAE,EAAE,CAC7B,WAAW,MAAM,uDAAuD,CAAC;AAgF3E,MAAM,YAAY,GAAG;;mDAE8B,GAAG,CAAC,WAAW,CAAC;;IAE/D,GAAG,CAAC,YAAY,CAAC,iBAAiB,CAAC;AAEvC,MAAM,OAAO,GAAG;;;;;;iCAMiB,GAAG,CAAC,cAAc,CAAC,iBAAiB,CAAC;AAEtE,MAAM,GAAG,GAAG;;;IAGR,GAAG,CAAC,cAAc,CAAC,oBAAoB,GAAG,CAAC,eAAe,CAAC,kBAAkB,CAAC;AAElF,MAAM,UAAU,iBAAiB,CAAC,GAAQ,EAAE,MAAc;IACxD,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC9B,OAAO;QACL,0BAA0B;QAE1B,4DAA4D;QAC5D,KAAK,CAAC,kBAAkB,CAAC,KAWxB;YACC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,MAAM,CAC5B,eAAe,CAAC,CAAC,mBAAmB;;;;4EAIgC,YAAY,EAAE,EAClF;gBACE,KAAK,CAAC,EAAE;gBACR,KAAK,CAAC,cAAc;gBACpB,KAAK,CAAC,WAAW;gBACjB,KAAK,CAAC,MAAM;gBACZ,KAAK,CAAC,MAAM;gBACZ,KAAK,CAAC,WAAW;gBACjB,KAAK,CAAC,MAAM;gBACZ,KAAK,CAAC,eAAe;gBACrB,KAAK,CAAC,MAAM;gBACZ,KAAK,CAAC,SAAS;aAChB,CACF,CAAC;YACF,OAAO,GAAG,IAAI,IAAI,CAAC;QACrB,CAAC;QAED,KAAK,CAAC,YAAY,CAAC,EAAU;YAC3B,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,MAAM,CAC5B,UAAU,YAAY,SAAS,CAAC,CAAC,mBAAmB,gBAAgB,EACpE,CAAC,EAAE,CAAC,CACL,CAAC;YACF,OAAO,GAAG,IAAI,IAAI,CAAC;QACrB,CAAC;QAED,KAAK,CAAC,aAAa,CAAC,GAAW;YAC7B,OAAO,GAAG,CAAC,MAAM,CACf,UAAU,YAAY,SAAS,CAAC,CAAC,mBAAmB;2DACD,EACnD,CAAC,GAAG,CAAC,CACN,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,kBAAkB,CAAC,GAAW,EAAE,EAAU;YAC9C,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,MAAM,CAC5B,eAAe,CAAC,CAAC,mBAAmB;qBACvB,YAAY,EAAE,EAC3B,CAAC,GAAG,EAAE,EAAE,CAAC,CACV,CAAC;YACF,OAAO,GAAG,IAAI,IAAI,CAAC;QACrB,CAAC;QAED,KAAK,CAAC,SAAS,CAAC,GAAW,EAAE,EAAU,EAAE,MAAc,EAAE,KAAa;YACpE,MAAM,IAAI,GAAG,MAAM,GAAG,CAAA;iBACX,CAAC,CAAC,mBAAmB,iBAAiB,MAAM,qBAAqB,KAAK;mCACpD,GAAG,aAAa,EAAE,sCAAsC,CAAC;YACtF,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QACzB,CAAC;QAED,KAAK,CAAC,aAAa,CAAC,EAAU,EAAE,UAAkB;YAChD,MAAM,GAAG,CAAA,UAAU,CAAC,CAAC,mBAAmB,qBAAqB,UAAU,eAAe,EAAE,EAAE,CAAC;QAC7F,CAAC;QAED,uDAAuD;QACvD,KAAK,CAAC,QAAQ;YACZ,OAAO,GAAG,CAAC,MAAM,CACf,UAAU,YAAY,SAAS,CAAC,CAAC,mBAAmB;;;;yCAInB,CAClC,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,MAAqB,EAAE,KAAoB;YAClE,MAAM,GAAG,CAAA;iBACE,CAAC,CAAC,mBAAmB;sDACgB,MAAM,2BAA2B,KAAK;sBACtE,EAAE,EAAE,CAAC;QACvB,CAAC;QAED,iFAAiF;QACjF,KAAK,CAAC,YAAY,CAAC,KAAa;YAC9B,MAAM,CAAC,aAAa,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAClD,GAAG,CAA+E;;;mBAGvE,CAAC,CAAC,mBAAmB;+DACuB,KAAK,EAAE;gBAC9D,GAAG,CASF;;;;mBAIU,CAAC,CAAC,cAAc,WAAW,CAAC,CAAC,MAAM;+DACS,KAAK,EAAE;aAC/D,CAAC,CAAC;YACH,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC;QACrC,CAAC;QAED,2DAA2D;QAC3D,KAAK,CAAC,MAAM,CACV,KAA+C,EAC/C,EAAU,EACV,GAAW,EACX,MAAc,EACd,KAAa;YAEb,MAAM,IAAI,GAAG,MAAM,GAAG,CAAA;iBACX,CAAC,CAAC,KAAK,CAAC,iBAAiB,MAAM,qBAAqB,KAAK;sBACpD,EAAE,iBAAiB,GAAG,eAAe,CAAC;YACtD,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QACzB,CAAC;QAED,sBAAsB;QAEtB,sEAAsE;QACtE,KAAK,CAAC,WAAW,CAAC,KAMjB;YACC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,CAAkB;sBACzB,CAAC,CAAC,UAAU;;kBAEhB,KAAK,CAAC,cAAc,KAAK,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,SAAS;kBAC7D,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,YAAY;iFAC2B,CAAC;YAC5E,OAAO,GAAG,EAAE,EAAE,IAAI,IAAI,CAAC;QACzB,CAAC;QAED,yFAAyF;QACzF,KAAK,CAAC,UAAU;YACd,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,MAAM,CAC5B;oBACY,CAAC,CAAC,UAAU;;+BAED,CAAC,CAAC,UAAU;;;;;;;;;iCASV,CAAC,CAAC,mBAAmB,gCAAgC,CAC/E,CAAC;YACF,OAAO,GAAG,IAAI,IAAI,CAAC;QACrB,CAAC;QAED,uDAAuD;QACvD,KAAK,CAAC,WAAW,CAAC,EAAU,EAAE,KAAwB,EAAE,MAAqB;YAC3E,MAAM,GAAG,CAAA;iBACE,CAAC,CAAC,UAAU;yBACJ,KAAK,cAAc,MAAM;sBAC5B,EAAE,EAAE,CAAC;QACvB,CAAC;QAED,KAAK,CAAC,WAAW;YACf,MAAM,GAAG,CAAA,eAAe,CAAC,CAAC,UAAU,iDAAiD,CAAC;QACxF,CAAC;QAED,qBAAqB;QAErB,KAAK,CAAC,UAAU,CAAC,OAAe,EAAE,WAAmB;YACnD,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,CAAiB;;;;;;;;;;iBAU7B,CAAC,CAAC,MAAM;sBACH,CAAC,CAAC,MAAM,gDAAgD,WAAW;sBACnE,CAAC,CAAC,WAAW;4EACyC,WAAW;sBACjE,CAAC,CAAC,SAAS;wBACT,OAAO,EAAE,CAAC;YAC5B,OAAO,GAAG,IAAI,IAAI,CAAC;QACrB,CAAC;QAED,kEAAkE;QAClE,KAAK,CAAC,WAAW,CAAC,GAAW,EAAE,WAAmB;YAChD,OAAO,GAAG,CAAC,MAAM,CACf,UAAU,OAAO,SAAS,CAAC,CAAC,cAAc,WAAW,CAAC,CAAC,MAAM;;8BAEvC,EACtB,CAAC,GAAG,EAAE,WAAW,CAAC,CACnB,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,OAAe,EAAE,WAAmB;YAC7D,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,MAAM,CAC5B,UAAU,OAAO,SAAS,CAAC,CAAC,cAAc,WAAW,CAAC,CAAC,MAAM;mFACc,EAC3E,CAAC,GAAG,EAAE,OAAO,EAAE,WAAW,CAAC,CAC5B,CAAC;YACF,OAAO,GAAG,IAAI,IAAI,CAAC;QACrB,CAAC;QAED,KAAK,CAAC,WAAW,CAAC,EAAU;YAC1B,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,MAAM,CAC5B,UAAU,OAAO,SAAS,CAAC,CAAC,cAAc,oBAAoB,EAC9D,CAAC,EAAE,CAAC,CACL,CAAC;YACF,OAAO,GAAG,IAAI,IAAI,CAAC;QACrB,CAAC;QAED,KAAK,CAAC,aAAa,CAAC,GAAW,EAAE,OAAe;YAC9C,OAAO,GAAG,CAAC,MAAM,CACf,UAAU,OAAO,SAAS,CAAC,CAAC,cAAc,WAAW,CAAC,CAAC,MAAM;mFACc,EAC3E,CAAC,GAAG,EAAE,OAAO,CAAC,CACf,CAAC;QACJ,CAAC;QAED,2DAA2D;QAC3D,KAAK,CAAC,UAAU,CACd,GAAW,EACX,GAA8C;YAE9C,MAAM,IAAI,GAAG,MAAM,GAAG,CAAA;sBACN,CAAC,CAAC,cAAc;;;;uBAIf,GAAG,CAAC,WAAW,KAAK,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC;iBACnE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM;iBACtD,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAA0C,CAAC,KAAK,GAAG,CAAC,MAAM;iBACvE,GAAG,CAAC,WAAW,KAAK,GAAG,CAAC,cAAc,KAAK,GAAG,CAAC,aAAa;iBAC5D,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,WAAW,KAAK,GAAG,CAAC,cAAc;iBAClE,GAAG,CAAC,cAAc,KAAK,GAAG,CAAC,aAAa,KAAK,GAAG,CAAC,SAAS;iBAC1D,CAAC,CAAC,MAAM;wBACD,GAAG,CAAC,OAAO,4BAA4B,GAAG;;;;;;;;;;;2BAWvC,CAAC;YACtB,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QACzB,CAAC;QAED,KAAK,CAAC,aAAa,CAAC,GAAW,EAAE,OAAe,EAAE,WAAmB;YACnE,MAAM,IAAI,GAAG,MAAM,GAAG,CAAA;sBACN,CAAC,CAAC,cAAc,YAAY,CAAC,CAAC,MAAM;2DACC,GAAG,qBAAqB,OAAO;kCACxD,WAAW;uBACtB,CAAC;YAClB,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QACzB,CAAC;QAED,iBAAiB;QAEjB,sFAAsF;QACtF,8CAA8C;QAC9C,KAAK,CAAC,SAAS,CAAC,SAAiB;YAC/B,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,CAAa;;;;;iBAKzB,CAAC,CAAC,UAAU;8BACC,SAAS;mCACJ,SAAS,wCAAwC,CAAC;YAC/E,OAAO,GAAG,CAAC;QACb,CAAC;QAED,KAAK,CAAC,QAAQ,CAAC,KAOd;YACC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,CAAkB;sBACzB,CAAC,CAAC,UAAU;;kBAEhB,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,SAAS;kBACvE,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,MAAM;2BACxB,CAAC;YACtB,OAAO,GAAG,CAAC,EAAE,CAAC;QAChB,CAAC;QAED,KAAK,CAAC,SAAS,CACb,EAAU,EACV,KAKC;YAED,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,KAAK,OAAO,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC;YACrE,MAAM,GAAG,CAAA;iBACE,CAAC,CAAC,UAAU;kCACK,KAAK,CAAC,KAAK,IAAI,IAAI;uCACd,KAAK,CAAC,SAAS,IAAI,IAAI;kCAC5B,KAAK,CAAC,KAAK,IAAI,IAAI;uCACd,KAAK,CAAC,SAAS,IAAI,IAAI;yCACrB,QAAQ;sBAC3B,EAAE,EAAE,CAAC;QACvB,CAAC;QAED,sFAAsF;QACtF,KAAK,CAAC,eAAe;YACnB,MAAM,IAAI,GAAG,MAAM,GAAG,CAAA;iBACX,CAAC,CAAC,UAAU;;;qBAGR,CAAC;YAChB,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;QAED,KAAK,CAAC,WAAW;YACf,OAAO,GAAG,CAAC,MAAM,CACf,UAAU,GAAG;kBACH,CAAC,CAAC,UAAU,WAAW,CAAC,CAAC,cAAc;kBACvC,CAAC,CAAC,MAAM;uFAC6D,CAChF,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,UAAU,CAAC,GAAW,EAAE,OAAe,EAAE,KAAa;YAC1D,OAAO,GAAG,CAAC,MAAM,CACf,UAAU,GAAG,SAAS,CAAC,CAAC,UAAU,WAAW,CAAC,CAAC,cAAc;4DACT,CAAC,CAAC,MAAM;;8CAEtB,EACtC,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CACtB,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { type BrandingInput } from "../../connector-kit/src/branding.js";
|
|
2
|
+
import { type BuiltinModule, 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 { ConnectorContext, 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 | BuiltinModule | 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>>;
|