@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,118 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "fedex",
|
|
3
|
+
"name": "FedEx",
|
|
4
|
+
"description": "Let agents track shipments, compare rates and, if you allow it, create and cancel shipments on the FedEx accounts you choose.",
|
|
5
|
+
"logo": "/brand/registry/fedex.svg",
|
|
6
|
+
"identity": "A FedEx Developer Portal project named \"{brand.microsoft.appName}\", using the FedEx account numbers you enter here.",
|
|
7
|
+
"accountKey": "project",
|
|
8
|
+
"connectionKind": "guided",
|
|
9
|
+
"setup": [
|
|
10
|
+
{
|
|
11
|
+
"title": "Create a FedEx developer project",
|
|
12
|
+
"body": "Sign in to the FedEx Developer Portal with the FedEx user ID that manages your shipping accounts, open My Projects, and create an API project named \"{brand.microsoft.appName}\".",
|
|
13
|
+
"link": {
|
|
14
|
+
"label": "FedEx Developer Portal",
|
|
15
|
+
"href": "https://developer.fedex.com/api/en-us/home.html"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"title": "Choose its APIs",
|
|
20
|
+
"body": "Select these APIs for the project:",
|
|
21
|
+
"copy": ["{scope}"]
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"title": "Add your account numbers",
|
|
25
|
+
"body": "Add the FedEx account numbers agents may rate and ship on to the project. You can narrow each agent to some of them here later."
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"title": "Copy the keys",
|
|
29
|
+
"body": "Open the project's overview and copy its API key and secret key. Test keys work only with Sandbox; production keys appear once FedEx moves the project to production."
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
"afterConnect": [],
|
|
33
|
+
"fields": [
|
|
34
|
+
{
|
|
35
|
+
"id": "environment",
|
|
36
|
+
"label": "Environment",
|
|
37
|
+
"secret": false,
|
|
38
|
+
"options": [
|
|
39
|
+
{
|
|
40
|
+
"value": "sandbox",
|
|
41
|
+
"label": "Sandbox",
|
|
42
|
+
"description": "FedEx's test system, with the project's test keys. Nothing is really shipped or charged."
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"value": "production",
|
|
46
|
+
"label": "Production",
|
|
47
|
+
"description": "Real tracking, rates and shipments, with the project's production keys. Shipments are charged to your account."
|
|
48
|
+
}
|
|
49
|
+
]
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"id": "api_key",
|
|
53
|
+
"label": "API key",
|
|
54
|
+
"secret": false
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"id": "secret_key",
|
|
58
|
+
"label": "Secret key",
|
|
59
|
+
"secret": true
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"id": "account_numbers",
|
|
63
|
+
"label": "Account numbers",
|
|
64
|
+
"help": "The FedEx account numbers agents may use, separated by commas. Agents can never rate or ship on another.",
|
|
65
|
+
"placeholder": "123456789",
|
|
66
|
+
"secret": false
|
|
67
|
+
}
|
|
68
|
+
],
|
|
69
|
+
"capabilities": [
|
|
70
|
+
{
|
|
71
|
+
"id": "track",
|
|
72
|
+
"label": "Track shipments",
|
|
73
|
+
"description": "Look up the status and scan history of shipments by tracking number.",
|
|
74
|
+
"required": true,
|
|
75
|
+
"scopes": ["Track API"],
|
|
76
|
+
"permissions": [],
|
|
77
|
+
"tools": ["fedex_track_shipments"]
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"id": "rate",
|
|
81
|
+
"label": "Get rates",
|
|
82
|
+
"description": "Quote rates and transit times on your account numbers. Nothing is shipped.",
|
|
83
|
+
"scopes": ["Rates and Transit Times API"],
|
|
84
|
+
"permissions": [],
|
|
85
|
+
"tools": ["fedex_get_rates"]
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"id": "ship",
|
|
89
|
+
"label": "Create and cancel shipments",
|
|
90
|
+
"description": "Create shipments and their labels, and cancel them. Each shipment is charged to your FedEx account unless it is cancelled.",
|
|
91
|
+
"destructive": true,
|
|
92
|
+
"costs": true,
|
|
93
|
+
"note": "Agents with this can spend money on your FedEx account. Keep each agent to the account numbers it needs.",
|
|
94
|
+
"scopes": ["Ship API"],
|
|
95
|
+
"permissions": [],
|
|
96
|
+
"tools": ["fedex_create_shipment", "fedex_cancel_shipment"]
|
|
97
|
+
}
|
|
98
|
+
],
|
|
99
|
+
"limits": [
|
|
100
|
+
{
|
|
101
|
+
"id": "accounts",
|
|
102
|
+
"label": "Account numbers",
|
|
103
|
+
"help": "Leave empty to allow every account number connected here.",
|
|
104
|
+
"kind": "list",
|
|
105
|
+
"required": false,
|
|
106
|
+
"pattern": "^[0-9]{9,12}$"
|
|
107
|
+
}
|
|
108
|
+
],
|
|
109
|
+
"verify": {
|
|
110
|
+
"label": "Track API reached",
|
|
111
|
+
"check": "track"
|
|
112
|
+
},
|
|
113
|
+
"discover": {
|
|
114
|
+
"label": "Account numbers",
|
|
115
|
+
"check": "accounts"
|
|
116
|
+
},
|
|
117
|
+
"revoke": "In the FedEx Developer Portal, open My Projects, then {brand.microsoft.appName}, and delete the project or regenerate its secret key."
|
|
118
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../connectors/fedex/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,eAAe;IACb,EAAE,EAAE,OAAO;IACX,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;CACrC,CAAC"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { vendorError } from "../../packages/connector-kit/src/oauth.js";
|
|
3
|
+
import { connectedAccounts } from "./vendor.js";
|
|
4
|
+
import { audited, Denied, json, listLimit, VendorFailed, } from "../../packages/connector-kit/src/common.js";
|
|
5
|
+
// FedEx Track, Rate and Ship (developer.fedex.com OpenAPI files: /track/v1/trackingnumbers,
|
|
6
|
+
// /rate/v1/rates/quotes, /ship/v1/shipments, PUT /ship/v1/shipments/cancel).
|
|
7
|
+
const TRACKING_NUMBER = /^[A-Za-z0-9]{8,40}$/;
|
|
8
|
+
async function ok(ctx, mark, req) {
|
|
9
|
+
const res = await ctx.call(req);
|
|
10
|
+
mark(res.status);
|
|
11
|
+
if (res.status < 200 || res.status >= 300) {
|
|
12
|
+
const detail = vendorError(res.data);
|
|
13
|
+
throw new VendorFailed(res.status, `FedEx answered ${res.status}${detail ? `: ${detail}` : ""}`);
|
|
14
|
+
}
|
|
15
|
+
return res.data;
|
|
16
|
+
}
|
|
17
|
+
// The account numbers this key may bill or quote on: the key's limit, and never one the
|
|
18
|
+
// connection was not set up with.
|
|
19
|
+
function allowedAccounts(ctx) {
|
|
20
|
+
const connected = connectedAccounts(ctx.config);
|
|
21
|
+
const limit = listLimit(ctx.limits, "accounts");
|
|
22
|
+
return new Set(limit ? connected.filter((a) => limit.includes(a)) : connected);
|
|
23
|
+
}
|
|
24
|
+
// Every account number anywhere in the request (the shipper's, a payor's for shipping or
|
|
25
|
+
// duties, a third party's, a freight account) must be one this key may use. FedEx names them
|
|
26
|
+
// accountNumber or ...AccountNumber, as { value } or a plain string.
|
|
27
|
+
export function checkAccounts(ctx, body) {
|
|
28
|
+
const allowed = allowedAccounts(ctx);
|
|
29
|
+
const walk = (node) => {
|
|
30
|
+
if (Array.isArray(node))
|
|
31
|
+
return node.forEach(walk);
|
|
32
|
+
if (!node || typeof node !== "object")
|
|
33
|
+
return;
|
|
34
|
+
for (const [key, value] of Object.entries(node)) {
|
|
35
|
+
if (key.toLowerCase().endsWith("accountnumber")) {
|
|
36
|
+
const number = typeof value === "string"
|
|
37
|
+
? value
|
|
38
|
+
: value &&
|
|
39
|
+
typeof value === "object" &&
|
|
40
|
+
typeof value.value === "string"
|
|
41
|
+
? value.value
|
|
42
|
+
: null;
|
|
43
|
+
if (number === null)
|
|
44
|
+
throw new Denied('Give each account number as { "value": "<account number>" }');
|
|
45
|
+
if (!allowed.has(number))
|
|
46
|
+
throw new Denied(`This agent is not allowed to use FedEx account ${number}`);
|
|
47
|
+
}
|
|
48
|
+
walk(value);
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
walk(body);
|
|
52
|
+
}
|
|
53
|
+
const accountNumber = z.string().describe("A FedEx account number this agent may use.");
|
|
54
|
+
const shipment = z
|
|
55
|
+
.record(z.string(), z.unknown())
|
|
56
|
+
.describe("FedEx requestedShipment object, as in FedEx's API (shipper, recipient(s), pickupType, serviceType, packagingType, requestedPackageLineItems, and for shipments shippingChargesPayment and labelSpecification).");
|
|
57
|
+
export const fedexTools = {
|
|
58
|
+
names: [
|
|
59
|
+
"fedex_track_shipments",
|
|
60
|
+
"fedex_get_rates",
|
|
61
|
+
"fedex_create_shipment",
|
|
62
|
+
"fedex_cancel_shipment",
|
|
63
|
+
],
|
|
64
|
+
register(server, ctx, allowed) {
|
|
65
|
+
const readOnly = { readOnlyHint: true, openWorldHint: true };
|
|
66
|
+
if (allowed.has("fedex_track_shipments"))
|
|
67
|
+
server.registerTool("fedex_track_shipments", {
|
|
68
|
+
description: "Track up to 30 FedEx shipments by tracking number.",
|
|
69
|
+
inputSchema: z.object({
|
|
70
|
+
tracking_numbers: z.array(z.string()).min(1).max(30),
|
|
71
|
+
include_detailed_scans: z
|
|
72
|
+
.boolean()
|
|
73
|
+
.default(false)
|
|
74
|
+
.describe("Every scan event, not only the latest status."),
|
|
75
|
+
}),
|
|
76
|
+
annotations: readOnly,
|
|
77
|
+
}, ({ tracking_numbers, include_detailed_scans }) => audited(ctx, "fedex_track_shipments", tracking_numbers.join(","), async (mark) => {
|
|
78
|
+
const bad = tracking_numbers.find((t) => !TRACKING_NUMBER.test(t));
|
|
79
|
+
if (bad)
|
|
80
|
+
throw new Denied(`${bad} is not a FedEx tracking number`);
|
|
81
|
+
const data = await ok(ctx, mark, {
|
|
82
|
+
method: "POST",
|
|
83
|
+
path: "/track/v1/trackingnumbers",
|
|
84
|
+
body: {
|
|
85
|
+
includeDetailedScans: include_detailed_scans,
|
|
86
|
+
trackingInfo: tracking_numbers.map((trackingNumber) => ({
|
|
87
|
+
trackingNumberInfo: { trackingNumber },
|
|
88
|
+
})),
|
|
89
|
+
},
|
|
90
|
+
});
|
|
91
|
+
return json(data);
|
|
92
|
+
}));
|
|
93
|
+
if (allowed.has("fedex_get_rates"))
|
|
94
|
+
server.registerTool("fedex_get_rates", {
|
|
95
|
+
description: "Get FedEx rates and transit times for a shipment, billed to an account this agent may use. Nothing is shipped.",
|
|
96
|
+
inputSchema: z.object({ account_number: accountNumber, requested_shipment: shipment }),
|
|
97
|
+
annotations: readOnly,
|
|
98
|
+
}, ({ account_number, requested_shipment }) => audited(ctx, "fedex_get_rates", account_number, async (mark) => {
|
|
99
|
+
const body = {
|
|
100
|
+
accountNumber: { value: account_number },
|
|
101
|
+
requestedShipment: requested_shipment,
|
|
102
|
+
};
|
|
103
|
+
checkAccounts(ctx, body);
|
|
104
|
+
const data = await ok(ctx, mark, {
|
|
105
|
+
method: "POST",
|
|
106
|
+
path: "/rate/v1/rates/quotes",
|
|
107
|
+
body,
|
|
108
|
+
});
|
|
109
|
+
return json(data);
|
|
110
|
+
}));
|
|
111
|
+
if (allowed.has("fedex_create_shipment"))
|
|
112
|
+
server.registerTool("fedex_create_shipment", {
|
|
113
|
+
description: "Create a FedEx shipment and its label, billed to an account this agent may use. This buys the label: charges apply unless it is cancelled. Returns the tracking number and a label link valid for 12 hours.",
|
|
114
|
+
inputSchema: z.object({ account_number: accountNumber, requested_shipment: shipment }),
|
|
115
|
+
annotations: { readOnlyHint: false, destructiveHint: true, openWorldHint: true },
|
|
116
|
+
}, ({ account_number, requested_shipment }) => audited(ctx, "fedex_create_shipment", account_number, async (mark, retarget) => {
|
|
117
|
+
const body = {
|
|
118
|
+
accountNumber: { value: account_number },
|
|
119
|
+
labelResponseOptions: "URL_ONLY",
|
|
120
|
+
requestedShipment: requested_shipment,
|
|
121
|
+
};
|
|
122
|
+
checkAccounts(ctx, body);
|
|
123
|
+
const data = await ok(ctx, mark, { method: "POST", path: "/ship/v1/shipments", body });
|
|
124
|
+
const shipments = data.output?.transactionShipments;
|
|
125
|
+
const tracking = shipments?.map((s) => s.masterTrackingNumber).filter(Boolean) ?? [];
|
|
126
|
+
retarget(`${account_number}:${tracking.join(",") || "no tracking number"}`);
|
|
127
|
+
return json(data);
|
|
128
|
+
}));
|
|
129
|
+
if (allowed.has("fedex_cancel_shipment"))
|
|
130
|
+
server.registerTool("fedex_cancel_shipment", {
|
|
131
|
+
description: "Cancel a FedEx shipment (all of its packages) created on an account this agent may use.",
|
|
132
|
+
inputSchema: z.object({ account_number: accountNumber, tracking_number: z.string() }),
|
|
133
|
+
annotations: { readOnlyHint: false, destructiveHint: true, openWorldHint: true },
|
|
134
|
+
}, ({ account_number, tracking_number }) => audited(ctx, "fedex_cancel_shipment", `${account_number}:${tracking_number}`, async (mark) => {
|
|
135
|
+
if (!TRACKING_NUMBER.test(tracking_number))
|
|
136
|
+
throw new Denied(`${tracking_number} is not a FedEx tracking number`);
|
|
137
|
+
const body = {
|
|
138
|
+
accountNumber: { value: account_number },
|
|
139
|
+
trackingNumber: tracking_number,
|
|
140
|
+
deletionControl: "DELETE_ALL_PACKAGES",
|
|
141
|
+
};
|
|
142
|
+
checkAccounts(ctx, body);
|
|
143
|
+
const data = await ok(ctx, mark, {
|
|
144
|
+
method: "PUT",
|
|
145
|
+
path: "/ship/v1/shipments/cancel",
|
|
146
|
+
body,
|
|
147
|
+
});
|
|
148
|
+
return json(data);
|
|
149
|
+
}));
|
|
150
|
+
},
|
|
151
|
+
};
|
|
152
|
+
//# sourceMappingURL=tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../connectors/fedex/tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type Fetch, type Vendor } from "../../packages/connector-kit/src/types.js";
|
|
2
|
+
export declare const FEDEX_HOSTS: Record<string, string>;
|
|
3
|
+
export declare const ACCOUNT_NUMBER: RegExp;
|
|
4
|
+
export declare const PROBE_TRACKING_NUMBER = "000000000000";
|
|
5
|
+
export declare function parseAccounts(raw: string): string[];
|
|
6
|
+
export declare function connectedAccounts(config: Record<string, string>): string[];
|
|
7
|
+
export declare function fedexVendor(fetchImpl?: Fetch): Vendor;
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
import { clientCredentials, vendorError } from "../../packages/connector-kit/src/oauth.js";
|
|
3
|
+
import { ConnectError, } from "../../packages/connector-kit/src/types.js";
|
|
4
|
+
// A FedEx Developer Portal project: API key and secret key, OAuth client credentials at
|
|
5
|
+
// /oauth/token (form-encoded, expires_in 3600), then JSON calls with the bearer token. Hosts
|
|
6
|
+
// and request shapes are FedEx's published OpenAPI files (developer.fedex.com/api/en-us/catalog/
|
|
7
|
+
// {authorization,track,rate,ship}/v1/docs.html, retrieved October 21, 2026).
|
|
8
|
+
export const FEDEX_HOSTS = {
|
|
9
|
+
sandbox: "https://apis-sandbox.fedex.com",
|
|
10
|
+
production: "https://apis.fedex.com",
|
|
11
|
+
};
|
|
12
|
+
export const ACCOUNT_NUMBER = /^[0-9]{9,12}$/;
|
|
13
|
+
const MAX_ACCOUNTS = 50;
|
|
14
|
+
// FedEx documents x-locale; errors and status text come back in English.
|
|
15
|
+
const HEADERS = { "x-locale": "en_US" };
|
|
16
|
+
// A number no shipment has: the Track API answers it (with a not-found result), which proves
|
|
17
|
+
// the token reaches the Track API without reading anyone's shipment.
|
|
18
|
+
export const PROBE_TRACKING_NUMBER = "000000000000";
|
|
19
|
+
export function parseAccounts(raw) {
|
|
20
|
+
const accounts = [...new Set(raw.split(/[\s,;]+/).filter(Boolean))];
|
|
21
|
+
if (!accounts.length)
|
|
22
|
+
throw new ConnectError("Enter at least one FedEx account number");
|
|
23
|
+
const bad = accounts.find((a) => !ACCOUNT_NUMBER.test(a));
|
|
24
|
+
if (bad)
|
|
25
|
+
throw new ConnectError(`${bad} is not a FedEx account number (9 to 12 digits)`);
|
|
26
|
+
if (accounts.length > MAX_ACCOUNTS)
|
|
27
|
+
throw new ConnectError(`Enter at most ${MAX_ACCOUNTS} account numbers`);
|
|
28
|
+
return accounts;
|
|
29
|
+
}
|
|
30
|
+
export function connectedAccounts(config) {
|
|
31
|
+
return (config.accounts ?? "").split(",").filter(Boolean);
|
|
32
|
+
}
|
|
33
|
+
function host(config) {
|
|
34
|
+
const base = Object.hasOwn(FEDEX_HOSTS, config.environment)
|
|
35
|
+
? FEDEX_HOSTS[config.environment]
|
|
36
|
+
: null;
|
|
37
|
+
if (!base)
|
|
38
|
+
throw new Error(`Unknown FedEx environment ${config.environment}`);
|
|
39
|
+
return base;
|
|
40
|
+
}
|
|
41
|
+
export function fedexVendor(fetchImpl = fetch) {
|
|
42
|
+
const oauth = clientCredentials("FedEx", fetchImpl);
|
|
43
|
+
const creds = (c) => ({
|
|
44
|
+
tokenUrl: `${host(c.config)}/oauth/token`,
|
|
45
|
+
clientId: c.secret.api_key,
|
|
46
|
+
clientSecret: c.secret.secret_key,
|
|
47
|
+
});
|
|
48
|
+
const call = (c, request) => oauth.call(creds(c), host(c.config), request, HEADERS);
|
|
49
|
+
return {
|
|
50
|
+
async connect(fields) {
|
|
51
|
+
const environment = fields.environment ?? "";
|
|
52
|
+
if (!Object.hasOwn(FEDEX_HOSTS, environment))
|
|
53
|
+
throw new ConnectError("Choose Sandbox or Production");
|
|
54
|
+
const apiKey = fields.api_key?.trim();
|
|
55
|
+
const secretKey = fields.secret_key?.trim();
|
|
56
|
+
if (!apiKey || !secretKey)
|
|
57
|
+
throw new ConnectError("Enter the API key and secret key from your FedEx project");
|
|
58
|
+
const accounts = parseAccounts(fields.account_numbers ?? "");
|
|
59
|
+
const conn = {
|
|
60
|
+
config: {
|
|
61
|
+
environment,
|
|
62
|
+
accounts: accounts.join(","),
|
|
63
|
+
// Names the project reached without keeping the key in plain config.
|
|
64
|
+
project: createHash("sha256").update(apiKey).digest("hex").slice(0, 12),
|
|
65
|
+
},
|
|
66
|
+
secret: { api_key: apiKey, secret_key: secretKey },
|
|
67
|
+
};
|
|
68
|
+
await oauth.signIn(creds(conn));
|
|
69
|
+
return {
|
|
70
|
+
...conn,
|
|
71
|
+
accountLabel: `${environment === "production" ? "Production" : "Sandbox"} · ${accounts.length} account${accounts.length === 1 ? "" : "s"}`,
|
|
72
|
+
};
|
|
73
|
+
},
|
|
74
|
+
call,
|
|
75
|
+
checks: {
|
|
76
|
+
// A Track API answer about a number no shipment has.
|
|
77
|
+
async track(connection) {
|
|
78
|
+
const res = await call(connection, {
|
|
79
|
+
method: "POST",
|
|
80
|
+
path: "/track/v1/trackingnumbers",
|
|
81
|
+
body: {
|
|
82
|
+
includeDetailedScans: false,
|
|
83
|
+
trackingInfo: [{ trackingNumberInfo: { trackingNumber: PROBE_TRACKING_NUMBER } }],
|
|
84
|
+
},
|
|
85
|
+
});
|
|
86
|
+
if (res.status === 401 || res.status === 403)
|
|
87
|
+
throw new ConnectError(`FedEx refused the Track API for this project. Add the Track API to the project, then check again. (${vendorError(res.data) || res.status})`);
|
|
88
|
+
if (res.status < 200 || res.status >= 300)
|
|
89
|
+
throw new ConnectError(`FedEx Track API answered ${res.status}: ${vendorError(res.data) || "no reason given"}`);
|
|
90
|
+
return { values: [new URL(host(connection.config)).host] };
|
|
91
|
+
},
|
|
92
|
+
async accounts(connection) {
|
|
93
|
+
return { values: connectedAccounts(connection.config) };
|
|
94
|
+
},
|
|
95
|
+
},
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=vendor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vendor.js","sourceRoot":"","sources":["../../../connectors/fedex/vendor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "gong",
|
|
3
|
+
"name": "Gong",
|
|
4
|
+
"description": "Let agents read your recorded customer calls in Gong: who was on them, what Gong summarized, the linked CRM account and opportunity, and, if you allow it, the transcript. For meeting prep, deal summaries and follow-ups.",
|
|
5
|
+
"logo": "/brand/registry/gong.svg",
|
|
6
|
+
"identity": "A Gong API access key. Gong gives an access key every call, transcript and user in your company, so keep each agent to the workspaces and customers it needs under API keys.",
|
|
7
|
+
"accountKey": "host",
|
|
8
|
+
"connectionKind": "guided",
|
|
9
|
+
"setup": [
|
|
10
|
+
{
|
|
11
|
+
"title": "Create an API access key",
|
|
12
|
+
"body": "You need a Gong technical administrator for this. Gong shows the access key secret only once, so keep both values for the form below.",
|
|
13
|
+
"link": {
|
|
14
|
+
"label": "Gong: get access to the API",
|
|
15
|
+
"href": "https://help.gong.io/docs/receive-access-to-the-api"
|
|
16
|
+
},
|
|
17
|
+
"click": [
|
|
18
|
+
"In Gong, go to Company Settings, then Ecosystem, then API.",
|
|
19
|
+
"Select Get API Key (or Create, if your company already has one).",
|
|
20
|
+
"Copy the Access Key and the Access Key Secret."
|
|
21
|
+
]
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"title": "Find your API address",
|
|
25
|
+
"body": "Gong gives each company its own address for API calls, such as https://us-12345.api.gong.io. It is shown on the same API page. You can test the key and address with the command below: it lists your workspaces and changes nothing.",
|
|
26
|
+
"click": [
|
|
27
|
+
"On the API page, copy the address shown for API calls (it ends in .api.gong.io)."
|
|
28
|
+
],
|
|
29
|
+
"copy": [
|
|
30
|
+
"GONG=https://us-12345.api.gong.io",
|
|
31
|
+
"curl -s -u \"$GONG_ACCESS_KEY:$GONG_ACCESS_KEY_SECRET\" \"$GONG/v2/workspaces\""
|
|
32
|
+
],
|
|
33
|
+
"shell": "bash"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"title": "Check what people agreed to",
|
|
37
|
+
"body": "Calls and transcripts hold what customers and colleagues said, often with names, prices and plans. Agents can read them only as recorded under your Gong recording and consent settings, and anything an agent reads may end up in what it writes. Make sure your recording notices and customer agreements allow this use, and give transcripts only to agents that need them.",
|
|
38
|
+
"click": [
|
|
39
|
+
"In Gong, go to Company Settings, then Recording, and review the consent and notification settings.",
|
|
40
|
+
"Ask your privacy or legal team whether customer call content may be read by AI agents."
|
|
41
|
+
],
|
|
42
|
+
"confirm": "gong-recording-consent"
|
|
43
|
+
}
|
|
44
|
+
],
|
|
45
|
+
"afterConnect": [],
|
|
46
|
+
"fields": [
|
|
47
|
+
{
|
|
48
|
+
"id": "base_url",
|
|
49
|
+
"label": "API address",
|
|
50
|
+
"help": "Shown on Gong's API page, ending in .api.gong.io.",
|
|
51
|
+
"placeholder": "https://us-12345.api.gong.io",
|
|
52
|
+
"secret": false
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"id": "access_key",
|
|
56
|
+
"label": "Access Key",
|
|
57
|
+
"secret": true
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"id": "access_key_secret",
|
|
61
|
+
"label": "Access Key Secret",
|
|
62
|
+
"secret": true
|
|
63
|
+
}
|
|
64
|
+
],
|
|
65
|
+
"capabilities": [
|
|
66
|
+
{
|
|
67
|
+
"id": "read_calls",
|
|
68
|
+
"label": "Read calls",
|
|
69
|
+
"description": "List calls and meetings by date, customer or host, and read one call: participants, the linked CRM account and opportunity, and Gong's brief, key points, highlights, outline and topics. Lists workspaces.",
|
|
70
|
+
"required": true,
|
|
71
|
+
"note": "Reaches every call in Gong unless you keep a key to chosen workspaces or customers under API keys. Calls marked private in Gong are never shown. Read-only.",
|
|
72
|
+
"scopes": [],
|
|
73
|
+
"permissions": [],
|
|
74
|
+
"tools": ["gong_list_calls", "gong_get_call", "gong_list_workspaces"]
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"id": "read_transcripts",
|
|
78
|
+
"label": "Read transcripts",
|
|
79
|
+
"description": "Read what was said on a call, by speaker, whole or only a stretch of time or the sentences with a phrase.",
|
|
80
|
+
"note": "Transcripts are word for word, including whatever customers said. Same calls as Read calls.",
|
|
81
|
+
"scopes": [],
|
|
82
|
+
"permissions": [],
|
|
83
|
+
"tools": ["gong_get_transcript"]
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"id": "read_users",
|
|
87
|
+
"label": "Look up Gong users",
|
|
88
|
+
"description": "Find the people in your company with Gong accounts by name or email: title, whether active, and manager.",
|
|
89
|
+
"scopes": [],
|
|
90
|
+
"permissions": [],
|
|
91
|
+
"tools": ["gong_list_users", "gong_get_user"]
|
|
92
|
+
}
|
|
93
|
+
],
|
|
94
|
+
"limits": [
|
|
95
|
+
{
|
|
96
|
+
"id": "workspaces",
|
|
97
|
+
"label": "Workspaces",
|
|
98
|
+
"help": "Optional: only calls in these Gong workspaces (their ids, shown under Workspaces after connecting). Leave empty for every workspace.",
|
|
99
|
+
"kind": "list",
|
|
100
|
+
"required": false,
|
|
101
|
+
"pattern": "^\\d{1,25}$"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"id": "domains",
|
|
105
|
+
"label": "Customer email domains",
|
|
106
|
+
"help": "Optional: only calls with someone from these email domains, such as acme.com (its subdomains too). With CRM accounts as well, a call with either is allowed. Leave both empty for every customer.",
|
|
107
|
+
"kind": "list",
|
|
108
|
+
"required": false,
|
|
109
|
+
"pattern": "^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)+$"
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"id": "crm_accounts",
|
|
113
|
+
"label": "CRM accounts",
|
|
114
|
+
"help": "Optional: only calls Gong linked to these CRM accounts, by the account's id in your CRM (for Salesforce the 18-character id, starting 001). With customer email domains as well, a call with either is allowed.",
|
|
115
|
+
"kind": "list",
|
|
116
|
+
"required": false,
|
|
117
|
+
"pattern": "^[A-Za-z0-9_-]{1,64}$"
|
|
118
|
+
}
|
|
119
|
+
],
|
|
120
|
+
"verify": {
|
|
121
|
+
"method": "GET",
|
|
122
|
+
"path": "/v2/workspaces",
|
|
123
|
+
"label": "Gong workspaces",
|
|
124
|
+
"show": "workspaces[].name"
|
|
125
|
+
},
|
|
126
|
+
"revoke": "In Gong, go to Company Settings, then Ecosystem, then API, and delete the access key. Agents lose access to Gong at once."
|
|
127
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../connectors/gong/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,eAAe;IACb,EAAE,EAAE,MAAM;IACV,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;CACnC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type ToolContext, type Toolset } from "../../packages/connector-kit/src/common.js";
|
|
2
|
+
export declare const MAX_PAGES = 5;
|
|
3
|
+
export declare const MAX_USER_PAGES = 20;
|
|
4
|
+
type Obj = Record<string, any>;
|
|
5
|
+
/** Whether the key's limits reach this call (from /v2/calls/extensive). */
|
|
6
|
+
export declare function reachable(limits: ToolContext["limits"], call: Obj): boolean;
|
|
7
|
+
export declare const gongTools: Toolset;
|
|
8
|
+
export {};
|