@squadbase/vite-server 0.1.8 → 0.1.9-dev.87dd3f7
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/dist/cli/index.js +1055 -520
- package/dist/connectors/airtable-oauth.js +3 -0
- package/dist/connectors/airtable.js +3 -0
- package/dist/connectors/amplitude.js +3 -0
- package/dist/connectors/anthropic.js +3 -0
- package/dist/connectors/asana.js +3 -0
- package/dist/connectors/attio.js +3 -0
- package/dist/connectors/backlog-api-key.js +3 -0
- package/dist/connectors/customerio.js +3 -0
- package/dist/connectors/dbt.js +3 -0
- package/dist/connectors/gamma.js +3 -0
- package/dist/connectors/gemini.js +3 -0
- package/dist/connectors/gmail-oauth.js +3 -0
- package/dist/connectors/gmail.js +11 -2
- package/dist/connectors/google-ads.js +3 -0
- package/dist/connectors/google-analytics-oauth.js +3 -0
- package/dist/connectors/google-analytics.js +3 -0
- package/dist/connectors/google-audit-log.d.ts +5 -0
- package/dist/connectors/google-audit-log.js +802 -0
- package/dist/connectors/google-calendar-oauth.js +3 -0
- package/dist/connectors/google-calendar.js +102 -49
- package/dist/connectors/google-docs.js +3 -0
- package/dist/connectors/google-drive.js +3 -0
- package/dist/connectors/google-sheets.js +3 -0
- package/dist/connectors/google-slides.js +3 -0
- package/dist/connectors/grafana.js +3 -0
- package/dist/connectors/hubspot-oauth.js +3 -0
- package/dist/connectors/hubspot.js +3 -0
- package/dist/connectors/influxdb.js +3 -0
- package/dist/connectors/intercom-oauth.js +3 -0
- package/dist/connectors/intercom.js +3 -0
- package/dist/connectors/jira-api-key.js +3 -0
- package/dist/connectors/kintone-api-token.js +3 -0
- package/dist/connectors/kintone.js +3 -0
- package/dist/connectors/linear.js +3 -0
- package/dist/connectors/linkedin-ads.js +3 -0
- package/dist/connectors/mailchimp-oauth.js +3 -0
- package/dist/connectors/mailchimp.js +3 -0
- package/dist/connectors/meta-ads-oauth.js +3 -0
- package/dist/connectors/meta-ads.js +3 -0
- package/dist/connectors/mixpanel.js +3 -0
- package/dist/connectors/notion-oauth.js +3 -0
- package/dist/connectors/notion.js +3 -0
- package/dist/connectors/openai.js +3 -0
- package/dist/connectors/salesforce.js +3 -0
- package/dist/connectors/sentry.js +3 -0
- package/dist/connectors/shopify-oauth.js +3 -0
- package/dist/connectors/shopify.js +3 -0
- package/dist/connectors/stripe-api-key.js +3 -0
- package/dist/connectors/stripe-oauth.js +3 -0
- package/dist/connectors/tiktok-ads.js +3 -0
- package/dist/connectors/wix-store.js +3 -0
- package/dist/connectors/zendesk-oauth.js +3 -0
- package/dist/connectors/zendesk.js +3 -0
- package/dist/index.js +1055 -520
- package/dist/main.js +1055 -520
- package/dist/vite-plugin.js +1055 -520
- package/package.json +5 -1
package/dist/cli/index.js
CHANGED
|
@@ -910,17 +910,17 @@ var require_nacl_fast = __commonJS({
|
|
|
910
910
|
}
|
|
911
911
|
var sigma = new Uint8Array([101, 120, 112, 97, 110, 100, 32, 51, 50, 45, 98, 121, 116, 101, 32, 107]);
|
|
912
912
|
function crypto_stream_salsa20_xor(c6, cpos, m6, mpos, b6, n6, k6) {
|
|
913
|
-
var
|
|
913
|
+
var z81 = new Uint8Array(16), x6 = new Uint8Array(64);
|
|
914
914
|
var u6, i6;
|
|
915
|
-
for (i6 = 0; i6 < 16; i6++)
|
|
916
|
-
for (i6 = 0; i6 < 8; i6++)
|
|
915
|
+
for (i6 = 0; i6 < 16; i6++) z81[i6] = 0;
|
|
916
|
+
for (i6 = 0; i6 < 8; i6++) z81[i6] = n6[i6];
|
|
917
917
|
while (b6 >= 64) {
|
|
918
|
-
crypto_core_salsa20(x6,
|
|
918
|
+
crypto_core_salsa20(x6, z81, k6, sigma);
|
|
919
919
|
for (i6 = 0; i6 < 64; i6++) c6[cpos + i6] = m6[mpos + i6] ^ x6[i6];
|
|
920
920
|
u6 = 1;
|
|
921
921
|
for (i6 = 8; i6 < 16; i6++) {
|
|
922
|
-
u6 = u6 + (
|
|
923
|
-
|
|
922
|
+
u6 = u6 + (z81[i6] & 255) | 0;
|
|
923
|
+
z81[i6] = u6 & 255;
|
|
924
924
|
u6 >>>= 8;
|
|
925
925
|
}
|
|
926
926
|
b6 -= 64;
|
|
@@ -928,30 +928,30 @@ var require_nacl_fast = __commonJS({
|
|
|
928
928
|
mpos += 64;
|
|
929
929
|
}
|
|
930
930
|
if (b6 > 0) {
|
|
931
|
-
crypto_core_salsa20(x6,
|
|
931
|
+
crypto_core_salsa20(x6, z81, k6, sigma);
|
|
932
932
|
for (i6 = 0; i6 < b6; i6++) c6[cpos + i6] = m6[mpos + i6] ^ x6[i6];
|
|
933
933
|
}
|
|
934
934
|
return 0;
|
|
935
935
|
}
|
|
936
936
|
function crypto_stream_salsa20(c6, cpos, b6, n6, k6) {
|
|
937
|
-
var
|
|
937
|
+
var z81 = new Uint8Array(16), x6 = new Uint8Array(64);
|
|
938
938
|
var u6, i6;
|
|
939
|
-
for (i6 = 0; i6 < 16; i6++)
|
|
940
|
-
for (i6 = 0; i6 < 8; i6++)
|
|
939
|
+
for (i6 = 0; i6 < 16; i6++) z81[i6] = 0;
|
|
940
|
+
for (i6 = 0; i6 < 8; i6++) z81[i6] = n6[i6];
|
|
941
941
|
while (b6 >= 64) {
|
|
942
|
-
crypto_core_salsa20(x6,
|
|
942
|
+
crypto_core_salsa20(x6, z81, k6, sigma);
|
|
943
943
|
for (i6 = 0; i6 < 64; i6++) c6[cpos + i6] = x6[i6];
|
|
944
944
|
u6 = 1;
|
|
945
945
|
for (i6 = 8; i6 < 16; i6++) {
|
|
946
|
-
u6 = u6 + (
|
|
947
|
-
|
|
946
|
+
u6 = u6 + (z81[i6] & 255) | 0;
|
|
947
|
+
z81[i6] = u6 & 255;
|
|
948
948
|
u6 >>>= 8;
|
|
949
949
|
}
|
|
950
950
|
b6 -= 64;
|
|
951
951
|
cpos += 64;
|
|
952
952
|
}
|
|
953
953
|
if (b6 > 0) {
|
|
954
|
-
crypto_core_salsa20(x6,
|
|
954
|
+
crypto_core_salsa20(x6, z81, k6, sigma);
|
|
955
955
|
for (i6 = 0; i6 < b6; i6++) c6[cpos + i6] = x6[i6];
|
|
956
956
|
}
|
|
957
957
|
return 0;
|
|
@@ -1831,12 +1831,12 @@ var require_nacl_fast = __commonJS({
|
|
|
1831
1831
|
for (a6 = 0; a6 < 16; a6++) o6[a6] = c6[a6];
|
|
1832
1832
|
}
|
|
1833
1833
|
function crypto_scalarmult(q6, n6, p6) {
|
|
1834
|
-
var
|
|
1834
|
+
var z81 = new Uint8Array(32);
|
|
1835
1835
|
var x6 = new Float64Array(80), r6, i6;
|
|
1836
1836
|
var a6 = gf(), b6 = gf(), c6 = gf(), d6 = gf(), e6 = gf(), f6 = gf();
|
|
1837
|
-
for (i6 = 0; i6 < 31; i6++)
|
|
1838
|
-
|
|
1839
|
-
|
|
1837
|
+
for (i6 = 0; i6 < 31; i6++) z81[i6] = n6[i6];
|
|
1838
|
+
z81[31] = n6[31] & 127 | 64;
|
|
1839
|
+
z81[0] &= 248;
|
|
1840
1840
|
unpack25519(x6, p6);
|
|
1841
1841
|
for (i6 = 0; i6 < 16; i6++) {
|
|
1842
1842
|
b6[i6] = x6[i6];
|
|
@@ -1844,7 +1844,7 @@ var require_nacl_fast = __commonJS({
|
|
|
1844
1844
|
}
|
|
1845
1845
|
a6[0] = d6[0] = 1;
|
|
1846
1846
|
for (i6 = 254; i6 >= 0; --i6) {
|
|
1847
|
-
r6 =
|
|
1847
|
+
r6 = z81[i6 >>> 3] >>> (i6 & 7) & 1;
|
|
1848
1848
|
sel25519(a6, b6, r6);
|
|
1849
1849
|
sel25519(c6, d6, r6);
|
|
1850
1850
|
A2(e6, a6, c6);
|
|
@@ -4861,8 +4861,8 @@ var require_poly1305 = __commonJS({
|
|
|
4861
4861
|
});
|
|
4862
4862
|
var u6 = {}, w6;
|
|
4863
4863
|
for (w6 in b6) b6.hasOwnProperty(w6) && (u6[w6] = b6[w6]);
|
|
4864
|
-
var x6 = "object" === typeof window, y3 = "function" === typeof importScripts,
|
|
4865
|
-
if (
|
|
4864
|
+
var x6 = "object" === typeof window, y3 = "function" === typeof importScripts, z81 = "object" === typeof process && "object" === typeof process.versions && "string" === typeof process.versions.node, B2 = "", C2, D2, E2, F2, G2;
|
|
4865
|
+
if (z81) B2 = y3 ? __require("path").dirname(B2) + "/" : __dirname + "/", C2 = function(a6, c6) {
|
|
4866
4866
|
var d6 = H2(a6);
|
|
4867
4867
|
if (d6) return c6 ? d6 : d6.toString();
|
|
4868
4868
|
F2 || (F2 = __require("fs"));
|
|
@@ -5118,7 +5118,7 @@ var require_poly1305 = __commonJS({
|
|
|
5118
5118
|
function H2(a6) {
|
|
5119
5119
|
if (a6.startsWith(V)) {
|
|
5120
5120
|
a6 = a6.slice(V.length);
|
|
5121
|
-
if ("boolean" === typeof
|
|
5121
|
+
if ("boolean" === typeof z81 && z81) {
|
|
5122
5122
|
var c6 = Buffer.from(a6, "base64");
|
|
5123
5123
|
c6 = new Uint8Array(c6.buffer, c6.byteOffset, c6.byteLength);
|
|
5124
5124
|
} else try {
|
|
@@ -39041,14 +39041,14 @@ var init_NormalizedSchema = __esm({
|
|
|
39041
39041
|
throw new Error("@smithy/core/schema - cannot iterate non-struct schema.");
|
|
39042
39042
|
}
|
|
39043
39043
|
const struct = this.getSchema();
|
|
39044
|
-
const
|
|
39044
|
+
const z81 = struct[4].length;
|
|
39045
39045
|
let it = struct[anno.it];
|
|
39046
|
-
if (it &&
|
|
39046
|
+
if (it && z81 === it.length) {
|
|
39047
39047
|
yield* it;
|
|
39048
39048
|
return;
|
|
39049
39049
|
}
|
|
39050
|
-
it = Array(
|
|
39051
|
-
for (let i6 = 0; i6 <
|
|
39050
|
+
it = Array(z81);
|
|
39051
|
+
for (let i6 = 0; i6 < z81; ++i6) {
|
|
39052
39052
|
const k6 = struct[4][i6];
|
|
39053
39053
|
const v7 = member([struct[5][i6], 0], k6);
|
|
39054
39054
|
yield it[i6] = [k6, v7];
|
|
@@ -39724,12 +39724,12 @@ var init_split_header = __esm({
|
|
|
39724
39724
|
"../../node_modules/@smithy/core/dist-es/submodules/serde/split-header.js"() {
|
|
39725
39725
|
"use strict";
|
|
39726
39726
|
splitHeader = (value) => {
|
|
39727
|
-
const
|
|
39727
|
+
const z81 = value.length;
|
|
39728
39728
|
const values = [];
|
|
39729
39729
|
let withinQuotes = false;
|
|
39730
39730
|
let prevChar = void 0;
|
|
39731
39731
|
let anchor = 0;
|
|
39732
|
-
for (let i6 = 0; i6 <
|
|
39732
|
+
for (let i6 = 0; i6 < z81; ++i6) {
|
|
39733
39733
|
const char = value[i6];
|
|
39734
39734
|
switch (char) {
|
|
39735
39735
|
case `"`:
|
|
@@ -39750,12 +39750,12 @@ var init_split_header = __esm({
|
|
|
39750
39750
|
values.push(value.slice(anchor));
|
|
39751
39751
|
return values.map((v7) => {
|
|
39752
39752
|
v7 = v7.trim();
|
|
39753
|
-
const
|
|
39754
|
-
if (
|
|
39753
|
+
const z82 = v7.length;
|
|
39754
|
+
if (z82 < 2) {
|
|
39755
39755
|
return v7;
|
|
39756
39756
|
}
|
|
39757
|
-
if (v7[0] === `"` && v7[
|
|
39758
|
-
v7 = v7.slice(1,
|
|
39757
|
+
if (v7[0] === `"` && v7[z82 - 1] === `"`) {
|
|
39758
|
+
v7 = v7.slice(1, z82 - 1);
|
|
39759
39759
|
}
|
|
39760
39760
|
return v7.replace(/\\"/g, '"');
|
|
39761
39761
|
});
|
|
@@ -41153,11 +41153,11 @@ var init_EndpointCache = __esm({
|
|
|
41153
41153
|
}
|
|
41154
41154
|
hash(endpointParams) {
|
|
41155
41155
|
let buffer = "";
|
|
41156
|
-
const { parameters:
|
|
41157
|
-
if (
|
|
41156
|
+
const { parameters: parameters65 } = this;
|
|
41157
|
+
if (parameters65.length === 0) {
|
|
41158
41158
|
return false;
|
|
41159
41159
|
}
|
|
41160
|
-
for (const param of
|
|
41160
|
+
for (const param of parameters65) {
|
|
41161
41161
|
const val = String(endpointParams[param] ?? "");
|
|
41162
41162
|
if (val.includes("|;")) {
|
|
41163
41163
|
return false;
|
|
@@ -41874,15 +41874,15 @@ var init_resolveEndpoint = __esm({
|
|
|
41874
41874
|
init_utils();
|
|
41875
41875
|
resolveEndpoint = (ruleSetObject, options) => {
|
|
41876
41876
|
const { endpointParams, logger: logger2 } = options;
|
|
41877
|
-
const { parameters:
|
|
41877
|
+
const { parameters: parameters65, rules } = ruleSetObject;
|
|
41878
41878
|
options.logger?.debug?.(`${debugId} Initial EndpointParams: ${toDebugString(endpointParams)}`);
|
|
41879
|
-
const paramsWithDefault = Object.entries(
|
|
41879
|
+
const paramsWithDefault = Object.entries(parameters65).filter(([, v7]) => v7.default != null).map(([k6, v7]) => [k6, v7.default]);
|
|
41880
41880
|
if (paramsWithDefault.length > 0) {
|
|
41881
41881
|
for (const [paramKey, paramDefaultValue] of paramsWithDefault) {
|
|
41882
41882
|
endpointParams[paramKey] = endpointParams[paramKey] ?? paramDefaultValue;
|
|
41883
41883
|
}
|
|
41884
41884
|
}
|
|
41885
|
-
const requiredParams = Object.entries(
|
|
41885
|
+
const requiredParams = Object.entries(parameters65).filter(([, v7]) => v7.required).map(([k6]) => k6);
|
|
41886
41886
|
for (const requiredParam of requiredParams) {
|
|
41887
41887
|
if (endpointParams[requiredParam] == null) {
|
|
41888
41888
|
throw new EndpointError(`Missing required parameter: '${requiredParam}'`);
|
|
@@ -47492,8 +47492,8 @@ var init_ProtocolLib = __esm({
|
|
|
47492
47492
|
constructor(queryCompat = false) {
|
|
47493
47493
|
this.queryCompat = queryCompat;
|
|
47494
47494
|
}
|
|
47495
|
-
resolveRestContentType(defaultContentType,
|
|
47496
|
-
const members =
|
|
47495
|
+
resolveRestContentType(defaultContentType, inputSchema78) {
|
|
47496
|
+
const members = inputSchema78.getMemberSchemas();
|
|
47497
47497
|
const httpPayloadMember = Object.values(members).find((m6) => {
|
|
47498
47498
|
return !!m6.getMergedTraits().httpPayload;
|
|
47499
47499
|
});
|
|
@@ -47508,7 +47508,7 @@ var init_ProtocolLib = __esm({
|
|
|
47508
47508
|
} else {
|
|
47509
47509
|
return defaultContentType;
|
|
47510
47510
|
}
|
|
47511
|
-
} else if (!
|
|
47511
|
+
} else if (!inputSchema78.isUnitSchema()) {
|
|
47512
47512
|
const hasBody = Object.values(members).find((m6) => {
|
|
47513
47513
|
const { httpQuery, httpQueryParams, httpHeader, httpLabel, httpPrefixHeaders } = m6.getMergedTraits();
|
|
47514
47514
|
const noPrefixHeaders = httpPrefixHeaders === void 0;
|
|
@@ -48351,9 +48351,9 @@ var init_AwsRestJsonProtocol = __esm({
|
|
|
48351
48351
|
}
|
|
48352
48352
|
async serializeRequest(operationSchema, input, context) {
|
|
48353
48353
|
const request2 = await super.serializeRequest(operationSchema, input, context);
|
|
48354
|
-
const
|
|
48354
|
+
const inputSchema78 = NormalizedSchema.of(operationSchema.input);
|
|
48355
48355
|
if (!request2.headers["content-type"]) {
|
|
48356
|
-
const contentType = this.mixin.resolveRestContentType(this.getDefaultContentType(),
|
|
48356
|
+
const contentType = this.mixin.resolveRestContentType(this.getDefaultContentType(), inputSchema78);
|
|
48357
48357
|
if (contentType) {
|
|
48358
48358
|
request2.headers["content-type"] = contentType;
|
|
48359
48359
|
}
|
|
@@ -48365,8 +48365,8 @@ var init_AwsRestJsonProtocol = __esm({
|
|
|
48365
48365
|
}
|
|
48366
48366
|
async deserializeResponse(operationSchema, context, response) {
|
|
48367
48367
|
const output = await super.deserializeResponse(operationSchema, context, response);
|
|
48368
|
-
const
|
|
48369
|
-
for (const [name, member2] of
|
|
48368
|
+
const outputSchema78 = NormalizedSchema.of(operationSchema.output);
|
|
48369
|
+
for (const [name, member2] of outputSchema78.structIterator()) {
|
|
48370
48370
|
if (member2.getMemberTraits().httpPayload && !(name in output)) {
|
|
48371
48371
|
output[name] = null;
|
|
48372
48372
|
}
|
|
@@ -52230,22 +52230,22 @@ var init_loadCognitoIdentity = __esm({
|
|
|
52230
52230
|
});
|
|
52231
52231
|
|
|
52232
52232
|
// ../../node_modules/@aws-sdk/credential-provider-cognito-identity/dist-es/fromCognitoIdentity.js
|
|
52233
|
-
function fromCognitoIdentity(
|
|
52233
|
+
function fromCognitoIdentity(parameters65) {
|
|
52234
52234
|
return async (awsIdentityProperties) => {
|
|
52235
|
-
|
|
52235
|
+
parameters65.logger?.debug("@aws-sdk/credential-provider-cognito-identity - fromCognitoIdentity");
|
|
52236
52236
|
const { GetCredentialsForIdentityCommand: GetCredentialsForIdentityCommand2, CognitoIdentityClient: CognitoIdentityClient2 } = await Promise.resolve().then(() => (init_loadCognitoIdentity(), loadCognitoIdentity_exports));
|
|
52237
|
-
const fromConfigs = (property) =>
|
|
52238
|
-
const { Credentials: { AccessKeyId = throwOnMissingAccessKeyId(
|
|
52237
|
+
const fromConfigs = (property) => parameters65.clientConfig?.[property] ?? parameters65.parentClientConfig?.[property] ?? awsIdentityProperties?.callerClientConfig?.[property];
|
|
52238
|
+
const { Credentials: { AccessKeyId = throwOnMissingAccessKeyId(parameters65.logger), Expiration, SecretKey = throwOnMissingSecretKey(parameters65.logger), SessionToken } = throwOnMissingCredentials(parameters65.logger) } = await (parameters65.client ?? new CognitoIdentityClient2(Object.assign({}, parameters65.clientConfig ?? {}, {
|
|
52239
52239
|
region: fromConfigs("region"),
|
|
52240
52240
|
profile: fromConfigs("profile"),
|
|
52241
52241
|
userAgentAppId: fromConfigs("userAgentAppId")
|
|
52242
52242
|
}))).send(new GetCredentialsForIdentityCommand2({
|
|
52243
|
-
CustomRoleArn:
|
|
52244
|
-
IdentityId:
|
|
52245
|
-
Logins:
|
|
52243
|
+
CustomRoleArn: parameters65.customRoleArn,
|
|
52244
|
+
IdentityId: parameters65.identityId,
|
|
52245
|
+
Logins: parameters65.logins ? await resolveLogins(parameters65.logins) : void 0
|
|
52246
52246
|
}));
|
|
52247
52247
|
return {
|
|
52248
|
-
identityId:
|
|
52248
|
+
identityId: parameters65.identityId,
|
|
52249
52249
|
accessKeyId: AccessKeyId,
|
|
52250
52250
|
secretAccessKey: SecretKey,
|
|
52251
52251
|
sessionToken: SessionToken,
|
|
@@ -64806,11 +64806,11 @@ var require_bignumber = __commonJS({
|
|
|
64806
64806
|
return n6 > 0 || n6 === i6 ? i6 : i6 - 1;
|
|
64807
64807
|
}
|
|
64808
64808
|
function coeffToString(a6) {
|
|
64809
|
-
var s6,
|
|
64809
|
+
var s6, z81, i6 = 1, j6 = a6.length, r6 = a6[0] + "";
|
|
64810
64810
|
for (; i6 < j6; ) {
|
|
64811
64811
|
s6 = a6[i6++] + "";
|
|
64812
|
-
|
|
64813
|
-
for (;
|
|
64812
|
+
z81 = LOG_BASE - s6.length;
|
|
64813
|
+
for (; z81--; s6 = "0" + s6) ;
|
|
64814
64814
|
r6 += s6;
|
|
64815
64815
|
}
|
|
64816
64816
|
for (j6 = r6.length; r6.charCodeAt(--j6) === 48; ) ;
|
|
@@ -64843,15 +64843,15 @@ var require_bignumber = __commonJS({
|
|
|
64843
64843
|
function toExponential(str, e6) {
|
|
64844
64844
|
return (str.length > 1 ? str.charAt(0) + "." + str.slice(1) : str) + (e6 < 0 ? "e" : "e+") + e6;
|
|
64845
64845
|
}
|
|
64846
|
-
function toFixedPoint(str, e6,
|
|
64846
|
+
function toFixedPoint(str, e6, z81) {
|
|
64847
64847
|
var len, zs;
|
|
64848
64848
|
if (e6 < 0) {
|
|
64849
|
-
for (zs =
|
|
64849
|
+
for (zs = z81 + "."; ++e6; zs += z81) ;
|
|
64850
64850
|
str = zs + str;
|
|
64851
64851
|
} else {
|
|
64852
64852
|
len = str.length;
|
|
64853
64853
|
if (++e6 > len) {
|
|
64854
|
-
for (zs =
|
|
64854
|
+
for (zs = z81, e6 -= len; --e6; zs += z81) ;
|
|
64855
64855
|
str += zs;
|
|
64856
64856
|
} else if (e6 < len) {
|
|
64857
64857
|
str = str.slice(0, e6) + "." + str.slice(e6);
|
|
@@ -86533,6 +86533,7 @@ var ConnectorPlugin = class _ConnectorPlugin {
|
|
|
86533
86533
|
releaseFlag;
|
|
86534
86534
|
proxyPolicy;
|
|
86535
86535
|
experimentalAttributes;
|
|
86536
|
+
categories;
|
|
86536
86537
|
onboarding;
|
|
86537
86538
|
systemPrompt;
|
|
86538
86539
|
tools;
|
|
@@ -86548,6 +86549,7 @@ var ConnectorPlugin = class _ConnectorPlugin {
|
|
|
86548
86549
|
this.releaseFlag = config.releaseFlag;
|
|
86549
86550
|
this.proxyPolicy = config.proxyPolicy;
|
|
86550
86551
|
this.experimentalAttributes = config.experimentalAttributes;
|
|
86552
|
+
this.categories = config.categories ?? [];
|
|
86551
86553
|
this.onboarding = config.onboarding;
|
|
86552
86554
|
this.systemPrompt = config.systemPrompt;
|
|
86553
86555
|
this.tools = config.tools;
|
|
@@ -86912,6 +86914,7 @@ var snowflakeConnector = new ConnectorPlugin({
|
|
|
86912
86914
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/6oyVtAcP3pMlXaOrts9unk/b7a9dc25d15c388b66e983041b855447/snowflake.svg",
|
|
86913
86915
|
parameters,
|
|
86914
86916
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
86917
|
+
categories: ["database"],
|
|
86915
86918
|
onboarding: snowflakeOnboarding,
|
|
86916
86919
|
systemPrompt: {
|
|
86917
86920
|
en: `### Tools
|
|
@@ -87195,6 +87198,7 @@ var snowflakePatConnector = new ConnectorPlugin({
|
|
|
87195
87198
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/6oyVtAcP3pMlXaOrts9unk/b7a9dc25d15c388b66e983041b855447/snowflake.svg",
|
|
87196
87199
|
parameters: parameters2,
|
|
87197
87200
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
87201
|
+
categories: ["database"],
|
|
87198
87202
|
onboarding: snowflakeOnboarding,
|
|
87199
87203
|
systemPrompt: {
|
|
87200
87204
|
en: `### Tools
|
|
@@ -87558,6 +87562,7 @@ var postgresqlConnector = new ConnectorPlugin({
|
|
|
87558
87562
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/42AHi2uqteUn65MyqdN6V7/a0f68f12af6aac96bbcda5980f43de07/elephant.png",
|
|
87559
87563
|
parameters: parameters3,
|
|
87560
87564
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
87565
|
+
categories: ["database"],
|
|
87561
87566
|
onboarding: postgresqlOnboarding,
|
|
87562
87567
|
systemPrompt: {
|
|
87563
87568
|
en: `### Tools
|
|
@@ -87757,6 +87762,7 @@ var mysqlConnector = new ConnectorPlugin({
|
|
|
87757
87762
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/6ghPFeGgl7uBs5NHH1a4L/512c9433beec5b595caa41f04921c1f9/logo-mysql-170x115.png",
|
|
87758
87763
|
parameters: parameters4,
|
|
87759
87764
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
87765
|
+
categories: ["database"],
|
|
87760
87766
|
onboarding: mysqlOnboarding,
|
|
87761
87767
|
systemPrompt: {
|
|
87762
87768
|
en: `### Tools
|
|
@@ -88131,6 +88137,7 @@ var bigqueryConnector = new ConnectorPlugin({
|
|
|
88131
88137
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/6nlehQyOmdbktG5hOYkYMr/6ca559140d5ddc7dadc5eac88858a563/bigquery.svg",
|
|
88132
88138
|
parameters: parameters5,
|
|
88133
88139
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
88140
|
+
categories: ["database"],
|
|
88134
88141
|
onboarding: bigqueryOnboarding,
|
|
88135
88142
|
systemPrompt: {
|
|
88136
88143
|
en: `### Tools
|
|
@@ -88661,6 +88668,7 @@ var bigqueryOauthConnector = new ConnectorPlugin({
|
|
|
88661
88668
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/6nlehQyOmdbktG5hOYkYMr/6ca559140d5ddc7dadc5eac88858a563/bigquery.svg",
|
|
88662
88669
|
parameters: parameters6,
|
|
88663
88670
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
88671
|
+
categories: ["database"],
|
|
88664
88672
|
onboarding: bigqueryOnboarding2,
|
|
88665
88673
|
proxyPolicy: {
|
|
88666
88674
|
allowlist: [
|
|
@@ -88931,6 +88939,7 @@ var awsAthenaConnector = new ConnectorPlugin({
|
|
|
88931
88939
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/5x0vIHtUHfJJMZUv4RFOYZ/5059bac389f0169542f39cdb4b387d2c/Athena.svg",
|
|
88932
88940
|
parameters: parameters7,
|
|
88933
88941
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
88942
|
+
categories: ["database"],
|
|
88934
88943
|
onboarding: awsAthenaOnboarding,
|
|
88935
88944
|
systemPrompt: {
|
|
88936
88945
|
en: `### Tools
|
|
@@ -89303,6 +89312,7 @@ var redshiftConnector = new ConnectorPlugin({
|
|
|
89303
89312
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/AEwW2psmrnZ7htTVsgA9t/a637e31707c5d760be73ce1d8ec75580/aws-redshift-logo.svg",
|
|
89304
89313
|
parameters: parameters8,
|
|
89305
89314
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
89315
|
+
categories: ["database"],
|
|
89306
89316
|
onboarding: redshiftOnboarding,
|
|
89307
89317
|
systemPrompt: {
|
|
89308
89318
|
en: `### Tools
|
|
@@ -89589,6 +89599,7 @@ var databricksConnector = new ConnectorPlugin({
|
|
|
89589
89599
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/6QgcrfpQOKg18P7DdgKerd/af55bf0d871339049824dd167b97a29f/databricks-icon.svg",
|
|
89590
89600
|
parameters: parameters9,
|
|
89591
89601
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
89602
|
+
categories: ["database"],
|
|
89592
89603
|
onboarding: databricksOnboarding,
|
|
89593
89604
|
systemPrompt: {
|
|
89594
89605
|
en: `### Tools
|
|
@@ -89795,6 +89806,7 @@ var airtableConnector = new ConnectorPlugin({
|
|
|
89795
89806
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/19JUphfOZjyjTK6Zg4NGCf/8c56227b088cada52d3a2d9385a3be97/airtable.svg",
|
|
89796
89807
|
parameters: parameters10,
|
|
89797
89808
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
89809
|
+
categories: ["productivity"],
|
|
89798
89810
|
onboarding: airtableOnboarding,
|
|
89799
89811
|
systemPrompt: {
|
|
89800
89812
|
en: `### Tools
|
|
@@ -90276,6 +90288,7 @@ var googleAdsConnector = new ConnectorPlugin({
|
|
|
90276
90288
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/1NGvmgvCxX7Tn11EST2N3N/a745fe7c63d360ed40a27ddaad3af168/google-ads.svg",
|
|
90277
90289
|
parameters: parameters11,
|
|
90278
90290
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
90291
|
+
categories: ["marketing"],
|
|
90279
90292
|
onboarding: googleAdsOnboarding,
|
|
90280
90293
|
proxyPolicy: {
|
|
90281
90294
|
allowlist: [
|
|
@@ -90581,6 +90594,7 @@ var googleAnalyticsConnector = new ConnectorPlugin({
|
|
|
90581
90594
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/7fs0ipzxuD9mACDzBATtxX/3c53ed90d15c96483e4f78cb29dab5e9/google-analytics.svg",
|
|
90582
90595
|
parameters: parameters12,
|
|
90583
90596
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
90597
|
+
categories: ["marketing"],
|
|
90584
90598
|
onboarding: googleAnalyticsOnboarding,
|
|
90585
90599
|
systemPrompt: {
|
|
90586
90600
|
en: `### Tools
|
|
@@ -91146,6 +91160,7 @@ var googleAnalyticsOauthConnector = new ConnectorPlugin({
|
|
|
91146
91160
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/7fs0ipzxuD9mACDzBATtxX/3c53ed90d15c96483e4f78cb29dab5e9/google-analytics.svg",
|
|
91147
91161
|
parameters: parameters13,
|
|
91148
91162
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
91163
|
+
categories: ["marketing"],
|
|
91149
91164
|
onboarding: googleAnalyticsOauthOnboarding,
|
|
91150
91165
|
proxyPolicy: {
|
|
91151
91166
|
allowlist: [
|
|
@@ -91374,7 +91389,8 @@ var outputSchema21 = z21.discriminatedUnion("success", [
|
|
|
91374
91389
|
z21.object({
|
|
91375
91390
|
success: z21.literal(true),
|
|
91376
91391
|
status: z21.number(),
|
|
91377
|
-
data: z21.record(z21.string(), z21.unknown())
|
|
91392
|
+
data: z21.record(z21.string(), z21.unknown()),
|
|
91393
|
+
serviceAccountEmail: z21.string()
|
|
91378
91394
|
}),
|
|
91379
91395
|
z21.object({
|
|
91380
91396
|
success: z21.literal(false),
|
|
@@ -91455,7 +91471,12 @@ var requestTool5 = new ConnectorTool({
|
|
|
91455
91471
|
serviceAccountEmail
|
|
91456
91472
|
};
|
|
91457
91473
|
}
|
|
91458
|
-
return {
|
|
91474
|
+
return {
|
|
91475
|
+
success: true,
|
|
91476
|
+
status: response.status,
|
|
91477
|
+
data,
|
|
91478
|
+
serviceAccountEmail
|
|
91479
|
+
};
|
|
91459
91480
|
} finally {
|
|
91460
91481
|
clearTimeout(timeout);
|
|
91461
91482
|
}
|
|
@@ -91502,7 +91523,8 @@ var outputSchema22 = z22.discriminatedUnion("success", [
|
|
|
91502
91523
|
z22.object({
|
|
91503
91524
|
success: z22.literal(true),
|
|
91504
91525
|
status: z22.number(),
|
|
91505
|
-
data: z22.record(z22.string(), z22.unknown())
|
|
91526
|
+
data: z22.record(z22.string(), z22.unknown()),
|
|
91527
|
+
serviceAccountEmail: z22.string()
|
|
91506
91528
|
}),
|
|
91507
91529
|
z22.object({
|
|
91508
91530
|
success: z22.literal(false),
|
|
@@ -91584,7 +91606,12 @@ var requestWithDelegationTool = new ConnectorTool({
|
|
|
91584
91606
|
serviceAccountEmail
|
|
91585
91607
|
};
|
|
91586
91608
|
}
|
|
91587
|
-
return {
|
|
91609
|
+
return {
|
|
91610
|
+
success: true,
|
|
91611
|
+
status: response.status,
|
|
91612
|
+
data,
|
|
91613
|
+
serviceAccountEmail
|
|
91614
|
+
};
|
|
91588
91615
|
} finally {
|
|
91589
91616
|
clearTimeout(timeout);
|
|
91590
91617
|
}
|
|
@@ -91606,7 +91633,18 @@ var READONLY_SCOPES = '["https://www.googleapis.com/auth/calendar.readonly"]';
|
|
|
91606
91633
|
var SERVICE_ACCOUNT_KEY_PARAM_SLUG = parameters14.serviceAccountKeyJsonBase64.slug;
|
|
91607
91634
|
var googleCalendarOnboarding = new ConnectorOnboarding({
|
|
91608
91635
|
connectionSetupInstructions: {
|
|
91609
|
-
ja: `Google Calendar \u30B3\u30CD\u30AF\u30B7\u30E7\u30F3\u3092\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u3057\u307E\u3059\u3002\u30A2\u30AF\u30BB\u30B9\u65B9\u6CD5\u3092\u9078\u3093\u3067\u3082\u3089\u3044\u3001\u5BFE\u8C61\u30AB\u30EC\u30F3\u30C0\u30FC\u3092
|
|
91636
|
+
ja: `Google Calendar \u30B3\u30CD\u30AF\u30B7\u30E7\u30F3\u3092\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u3057\u307E\u3059\u3002\u30A2\u30AF\u30BB\u30B9\u65B9\u6CD5\u3092\u9078\u3093\u3067\u3082\u3089\u3044\u3001\u5BFE\u8C61\u30AB\u30EC\u30F3\u30C0\u30FC\u3092 Project Knowledge \u306B\u8A18\u9332\u3057\u307E\u3059\u3002
|
|
91637
|
+
|
|
91638
|
+
## \u30B9\u30C6\u30C3\u30D7 0: \u30B5\u30FC\u30D3\u30B9\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3092\u53D6\u5F97
|
|
91639
|
+
|
|
91640
|
+
\u4EE5\u964D\u306E\u30B9\u30C6\u30C3\u30D7\u3067\u30E6\u30FC\u30B6\u30FC\u306B\u6848\u5185\u3059\u308B\u305F\u3081\u306B\u3001\u30B5\u30FC\u30D3\u30B9\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3092\u53D6\u5F97\u3057\u307E\u3059\u3002
|
|
91641
|
+
|
|
91642
|
+
\`${requestToolName}\` \u3092\u4EE5\u4E0B\u306E\u5F15\u6570\u3067 1 \u56DE\u547C\u3073\u3001\u30EC\u30B9\u30DD\u30F3\u30B9\u306E \`serviceAccountEmail\` \u3092\u4FDD\u6301\u3059\u308B:
|
|
91643
|
+
- \`method\`: \`"GET"\`
|
|
91644
|
+
- \`path\`: \`"/users/me/calendarList"\`
|
|
91645
|
+
- \`scopes\`: \`${READONLY_SCOPES}\`
|
|
91646
|
+
|
|
91647
|
+
\u6210\u529F\u30FB\u5931\u6557\u3069\u3061\u3089\u3067\u3082 \`serviceAccountEmail\` \u306F\u8FD4\u3063\u3066\u304F\u308B\u306E\u3067\u3001\u7D50\u679C\u306E\u30EA\u30B9\u30C8\u306F\u3053\u306E\u30B9\u30C6\u30C3\u30D7\u3067\u306F\u7121\u8996\u3057\u3066\u3088\u3044\u3002\u4EE5\u964D\u3053\u306E\u5024\u3092 \`<serviceAccountEmail>\` \u3068\u3057\u3066\u53C2\u7167\u3059\u308B\u3002
|
|
91610
91648
|
|
|
91611
91649
|
## \u30B9\u30C6\u30C3\u30D7 1: \u30A2\u30AF\u30BB\u30B9\u65B9\u6CD5\u3092\u9078\u629E
|
|
91612
91650
|
|
|
@@ -91618,52 +91656,60 @@ var googleCalendarOnboarding = new ConnectorOnboarding({
|
|
|
91618
91656
|
- \`{ label: "\u30C9\u30E1\u30A4\u30F3\u5168\u4F53\u306E\u59D4\u4EFB\u3067\u7D44\u7E54\u306E\u30E6\u30FC\u30B6\u30FC\u306E\u30AB\u30EC\u30F3\u30C0\u30FC\u306B\u30A2\u30AF\u30BB\u30B9\u3059\u308B", value: "delegation" }\`
|
|
91619
91657
|
- \`{ label: "\u4E21\u65B9\u3092\u7D44\u307F\u5408\u308F\u305B\u308B", value: "both" }\`
|
|
91620
91658
|
|
|
91621
|
-
## \u30B9\u30C6\u30C3\u30D7 2: \u30B5\u30FC\u30D3\u30B9\u30A2\u30AB\u30A6\u30F3\u30C8\u7D4C\u8DEF
|
|
91659
|
+
## \u30B9\u30C6\u30C3\u30D7 2: \u30B5\u30FC\u30D3\u30B9\u30A2\u30AB\u30A6\u30F3\u30C8\u7D4C\u8DEF (\`"service-account"\` \u307E\u305F\u306F \`"both"\` \u306E\u5834\u5408)
|
|
91660
|
+
|
|
91661
|
+
\u30E6\u30FC\u30B6\u30FC\u304C\u3042\u3089\u304B\u3058\u3081\u30B5\u30FC\u30D3\u30B9\u30A2\u30AB\u30A6\u30F3\u30C8 \`<serviceAccountEmail>\` \u306B\u5171\u6709\u8A2D\u5B9A\u3057\u305F\u30AB\u30EC\u30F3\u30C0\u30FC\u306E ID \u3092\u76F4\u63A5\u53D7\u3051\u53D6\u308A\u3001\u758E\u901A\u78BA\u8A8D\u3057\u307E\u3059\u3002multiSelect \u306F\u51FA\u3055\u306A\u3044 (\u30E6\u30FC\u30B6\u30FC\u304C\u5165\u529B\u3057\u305F\u6642\u70B9\u3067\u5BFE\u8C61\u304C\u78BA\u5B9A\u3057\u3066\u3044\u308B\u305F\u3081)\u3002
|
|
91662
|
+
|
|
91663
|
+
1. \`askUserQuestion\` \u3067\u30AB\u30EC\u30F3\u30C0\u30FC ID \u3092\u805E\u304F:
|
|
91664
|
+
- \`type\`: \`"freeText"\`
|
|
91665
|
+
- \`question\`: \u300C\u30A2\u30AF\u30BB\u30B9\u3057\u305F\u3044\u30AB\u30EC\u30F3\u30C0\u30FC\u306E ID \u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u8907\u6570\u53EF\u3001\u30AB\u30F3\u30DE\u533A\u5207\u308A\uFF09\u3002\u3042\u3089\u304B\u3058\u3081 \`<serviceAccountEmail>\` \u306B\u5171\u6709\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\u30E1\u30A4\u30F3\u30AB\u30EC\u30F3\u30C0\u30FC\u306F\u6240\u6709\u8005\u306E\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3092\u305D\u306E\u307E\u307E\u5165\u529B\u3067\u304D\u307E\u3059\u3002\u305D\u308C\u4EE5\u5916\u306E\u30AB\u30EC\u30F3\u30C0\u30FC\uFF08\u30C1\u30FC\u30E0\u30AB\u30EC\u30F3\u30C0\u30FC\u7B49\uFF09\u306F Google Calendar \u306E\u8A2D\u5B9A\u304B\u3089\u300C\u30AB\u30EC\u30F3\u30C0\u30FC ID\u300D\u3092\u30B3\u30D4\u30FC\u3057\u3066\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u300D
|
|
91666
|
+
- \`placeholder\`: \`"alice@example.com, c_xxx@group.calendar.google.com"\`
|
|
91622
91667
|
|
|
91623
|
-
|
|
91668
|
+
2. \u5165\u529B\u3055\u308C\u305F\u5404\u30AB\u30EC\u30F3\u30C0\u30FC ID \`<id>\` \u306B\u3064\u3044\u3066 \`${requestToolName}\` \u3067\u758E\u901A\u78BA\u8A8D:
|
|
91624
91669
|
- \`method\`: \`"GET"\`
|
|
91625
|
-
- \`path\`: \`"/
|
|
91670
|
+
- \`path\`: \`"/calendars/<id>"\`
|
|
91626
91671
|
- \`scopes\`: \`${READONLY_SCOPES}\`
|
|
91672
|
+
- \u6210\u529F\u3059\u308C\u3070\u3001\u30EC\u30B9\u30DD\u30F3\u30B9 \`data.summary\` \u3092\u30AB\u30EC\u30F3\u30C0\u30FC\u540D\u3068\u3057\u3066\u4FDD\u6301
|
|
91673
|
+
- \u5931\u6557 (404 / 403 \u7B49) \u306F\u30A2\u30AF\u30BB\u30B9\u4E0D\u53EF\u3068\u3057\u3066\u8A18\u9332
|
|
91627
91674
|
|
|
91628
|
-
|
|
91629
|
-
- \
|
|
91630
|
-
- \
|
|
91631
|
-
- \`type\`: \`"multiSelect"\`
|
|
91632
|
-
- \`question\`: \u300C\u4F7F\u7528\u3059\u308B\u30AB\u30EC\u30F3\u30C0\u30FC\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u8907\u6570\u53EF\uFF09\u300D
|
|
91633
|
-
- \`options\`: \u5404\u30AB\u30EC\u30F3\u30C0\u30FC\u306B\u3064\u3044\u3066 \`label\`: \`"<\u30AB\u30EC\u30F3\u30C0\u30FC\u540D>"\`\u3001\`value\`: \`"<calendarId>"\`
|
|
91675
|
+
3. \u7D50\u679C\u306B\u5FDC\u3058\u3066\u5206\u5C90:
|
|
91676
|
+
- **\u5168 ID \u5931\u6557**: \u30A2\u30AF\u30BB\u30B9\u65B9\u6CD5\u304C \`"service-account"\` \u3060\u3051\u306A\u3089\u30B9\u30C6\u30C3\u30D7 5 \u3078\u3002\`"both"\` \u306E\u5834\u5408\u306F\u305D\u306E\u307E\u307E\u30B9\u30C6\u30C3\u30D7 3 \u3078\u9032\u3080
|
|
91677
|
+
- **\u4E00\u90E8\u307E\u305F\u306F\u5168\u4EF6\u6210\u529F**: \u6210\u529F\u3057\u305F\u30AB\u30EC\u30F3\u30C0\u30FC\u3092\u305D\u306E\u307E\u307E\u30B9\u30C6\u30C3\u30D7 4 \u7528\u306E\u9078\u629E\u7D50\u679C\u3068\u3057\u3066\u78BA\u5B9A\u3059\u308B\u3002\u5931\u6557\u304C\u3042\u308C\u3070\u3001\u305D\u306E\u65E8\u3092 1 \u6587\u3067\u77ED\u304F\u4F1D\u3048\u308B
|
|
91634
91678
|
|
|
91635
|
-
## \u30B9\u30C6\u30C3\u30D7 3: \u30C9\u30E1\u30A4\u30F3\u5168\u4F53\u306E\u59D4\u4EFB\u7D4C\u8DEF
|
|
91679
|
+
## \u30B9\u30C6\u30C3\u30D7 3: \u30C9\u30E1\u30A4\u30F3\u5168\u4F53\u306E\u59D4\u4EFB\u7D4C\u8DEF (\`"delegation"\` \u307E\u305F\u306F \`"both"\` \u306E\u5834\u5408)
|
|
91680
|
+
|
|
91681
|
+
\u5404 Workspace \u30E6\u30FC\u30B6\u30FC\u304C\u6301\u3063\u3066\u3044\u308B\u591A\u6570\u306E\u30AB\u30EC\u30F3\u30C0\u30FC\u304B\u3089\u3001\u5BFE\u8C61\u3092\u7D5E\u308A\u8FBC\u307F\u307E\u3059\u3002
|
|
91636
91682
|
|
|
91637
91683
|
1. \`askUserQuestion\` \u3067\u5BFE\u8C61\u30E6\u30FC\u30B6\u30FC\u306E\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3092\u805E\u304F:
|
|
91638
91684
|
- \`type\`: \`"freeText"\`
|
|
91639
|
-
- \`question\`: \u300C\u30A2\u30AF\u30BB\u30B9\u3057\u305F\u3044\u30AB\u30EC\u30F3\u30C0\u30FC\u3092\u6240\u6709\u3059\u308B Google Workspace \u30E6\u30FC\u30B6\u30FC\u306E\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u8907\u6570\u53EF\u3001\u30AB\u30F3\u30DE\u533A\u5207\u308A\uFF09\u3002Workspace \u7BA1\u7406\u8005\u304C\
|
|
91685
|
+
- \`question\`: \u300C\u30A2\u30AF\u30BB\u30B9\u3057\u305F\u3044\u30AB\u30EC\u30F3\u30C0\u30FC\u3092\u6240\u6709\u3059\u308B Google Workspace \u30E6\u30FC\u30B6\u30FC\u306E\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u8907\u6570\u53EF\u3001\u30AB\u30F3\u30DE\u533A\u5207\u308A\uFF09\u3002Workspace \u7BA1\u7406\u8005\u304C\u3042\u3089\u304B\u3058\u3081\u30B5\u30FC\u30D3\u30B9\u30A2\u30AB\u30A6\u30F3\u30C8 \`<serviceAccountEmail>\` \u306B\u5BFE\u3057\u3066\u30C9\u30E1\u30A4\u30F3\u5168\u4F53\u306E\u59D4\u4EFB\u3092\u627F\u8A8D\u3057\u3066\u3044\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08[\u7BA1\u7406\u8005\u5411\u3051\u8A2D\u5B9A\u30AC\u30A4\u30C9](https://support.google.com/a/answer/162106)\uFF09\u3002\u300D
|
|
91640
91686
|
- \`placeholder\`: \`"alice@example.com, bob@example.com"\`
|
|
91641
91687
|
|
|
91642
|
-
2. \
|
|
91688
|
+
2. \u5165\u529B\u3055\u308C\u305F\u5404\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9 \`<email>\` \u306B\u3064\u3044\u3066 \`${requestWithDelegationToolName}\` \u3092\u547C\u3073\u3001\u305D\u306E\u30E6\u30FC\u30B6\u30FC\u304C\u30A2\u30AF\u30BB\u30B9\u3067\u304D\u308B\u30AB\u30EC\u30F3\u30C0\u30FC\u4E00\u89A7\u3092\u53D6\u5F97:
|
|
91643
91689
|
- \`method\`: \`"GET"\`
|
|
91644
91690
|
- \`path\`: \`"/users/me/calendarList"\`
|
|
91645
91691
|
- \`subject\`: \`<email>\`
|
|
91646
91692
|
- \`scopes\`: \`${READONLY_SCOPES}\`
|
|
91647
91693
|
|
|
91648
|
-
3. \
|
|
91649
|
-
-
|
|
91650
|
-
-
|
|
91694
|
+
3. \u7D50\u679C\u306B\u5FDC\u3058\u3066\u5206\u5C90:
|
|
91695
|
+
- **\u5168 email \u3067\u5931\u6557**: \u30A2\u30AF\u30BB\u30B9\u65B9\u6CD5\u304C \`"delegation"\` \u3060\u3051\u3001\u307E\u305F\u306F \`"both"\` \u3067\u30B9\u30C6\u30C3\u30D7 2 \u3067\u3082 0 \u4EF6\u306E\u3068\u304D\u306F\u30B9\u30C6\u30C3\u30D7 5 \u3078\u3002\`"both"\` \u3067\u30B9\u30C6\u30C3\u30D7 2 \u306B\u30AB\u30EC\u30F3\u30C0\u30FC\u304C\u3042\u308C\u3070\u3001\u305D\u306E\u307E\u307E\u30B9\u30C6\u30C3\u30D7 4 \u3078\u9032\u3080
|
|
91696
|
+
- **\u4E00\u90E8\u307E\u305F\u306F\u5168\u4EF6\u6210\u529F**: \`askUserQuestion\` \u3067\u30AB\u30EC\u30F3\u30C0\u30FC\u3092\u7D5E\u308A\u8FBC\u307E\u305B\u308B
|
|
91651
91697
|
- \`type\`: \`"multiSelect"\`
|
|
91652
91698
|
- \`question\`: \u300C\u4F7F\u7528\u3059\u308B\u30AB\u30EC\u30F3\u30C0\u30FC\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u8907\u6570\u53EF\uFF09\u300D
|
|
91653
|
-
- \`options\`: \u5404\u30AB\u30EC\u30F3\u30C0\u30FC\u306B\u3064\u3044\u3066 \`label\`: \`"<\u30AB\u30EC\u30F3\u30C0\u30FC\u540D> (\u6240\u6709\u8005: <\u305D\u306E\u3068\u304D\u306E subject>)"\`\u3001\`value\`: \`"<calendarId>"\`
|
|
91699
|
+
- \`options\`: \u767A\u898B\u3057\u305F\u5404\u30AB\u30EC\u30F3\u30C0\u30FC\u306B\u3064\u3044\u3066 \`label\`: \`"<\u30AB\u30EC\u30F3\u30C0\u30FC\u540D> (\u6240\u6709\u8005: <\u305D\u306E\u3068\u304D\u306E subject>)"\`\u3001\`value\`: \`"<calendarId>"\`
|
|
91654
91700
|
- \u4E00\u90E8\u5931\u6557\u304C\u3042\u308C\u3070\u3001\u305D\u306E\u65E8\u3092 1 \u6587\u3067\u77ED\u304F\u4F1D\u3048\u308B
|
|
91655
91701
|
|
|
91656
91702
|
## \u30B9\u30C6\u30C3\u30D7 4: Project Knowledge \u306B\u8A18\u9332
|
|
91657
91703
|
|
|
91658
|
-
\u30B9\u30C6\u30C3\u30D7 2 \u3068 3 \u3067\
|
|
91704
|
+
\u30B9\u30C6\u30C3\u30D7 2 \u3068 3 \u3067\u78BA\u5B9A\u3057\u305F calendarId \u96C6\u5408\u3092\u7D71\u5408\u3059\u308B\u3002\u5404 calendarId \u306B\u3064\u3044\u3066\u3001\u30B9\u30C6\u30C3\u30D7 2 \u3067\u758E\u901A\u78BA\u8A8D\u3057\u305F\u7D50\u679C\u304B\u3001\u30B9\u30C6\u30C3\u30D7 3 \u306E\u30C7\u30A3\u30B9\u30AB\u30D0\u30EA\u7D50\u679C\u304B\u3089\u7D4C\u8DEF\u3068 (delegation \u306E\u5834\u5408\u306F) subject \u3092\u7279\u5B9A\u3059\u308B\u3002\`finalizeSetup\` \u3092\u547C\u3073\u3001\`projectKnowledge\` \u306E \`#### \u30B9\u30B3\u30FC\u30D7\` \u7BC0\u306B\u5404\u30AB\u30EC\u30F3\u30C0\u30FC\u3092 1 \u884C\u305A\u3064\u5217\u6319\u3059\u308B:
|
|
91659
91705
|
- \u30C9\u30E1\u30A4\u30F3\u5168\u4F53\u306E\u59D4\u4EFB\u7D4C\u7531: \`- calendar: <calendarId> (delegation, subject: <subject>, name: "<\u30AB\u30EC\u30F3\u30C0\u30FC\u540D>")\`
|
|
91660
91706
|
- \u30B5\u30FC\u30D3\u30B9\u30A2\u30AB\u30A6\u30F3\u30C8\u7D4C\u8DEF: \`- calendar: <calendarId> (service-account, name: "<\u30AB\u30EC\u30F3\u30C0\u30FC\u540D>")\`
|
|
91661
91707
|
|
|
91662
|
-
## \u30B9\u30C6\u30C3\u30D7 5: \u6700\u7D42\u7684\u306B\u30AB\u30EC\u30F3\u30C0\u30FC\u304C 0 \u4EF6\u306E\
|
|
91708
|
+
## \u30B9\u30C6\u30C3\u30D7 5: \u6700\u7D42\u7684\u306B\u30AB\u30EC\u30F3\u30C0\u30FC\u304C 0 \u4EF6\u306E\u3068\u304D\u306E\u30A8\u30B9\u30AB\u30EC\u30FC\u30B7\u30E7\u30F3
|
|
91663
91709
|
|
|
91664
|
-
\u6700\u7D42\u7684\u306B\
|
|
91710
|
+
\u6700\u7D42\u7684\u306B\u5BFE\u8C61\u30AB\u30EC\u30F3\u30C0\u30FC\u304C 1 \u4EF6\u3082\u306A\u3044\u5834\u5408\u3001\`askUserQuestion\` \u3067\u6B21\u306E\u3088\u3046\u306B\u6848\u5185\u3059\u308B:
|
|
91665
91711
|
|
|
91666
|
-
- \`question\`: \u300C\u30A2\u30AF\u30BB\u30B9\u53EF\u80FD\u306A\u30AB\u30EC\u30F3\u30C0\u30FC\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u6B21\u306E\u3044\u305A\u308C\u304B\u3092\u884C\u3063\u3066\u304B\u3089\u7D9A\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002\
|
|
91712
|
+
- \`question\`: \u300C\u30A2\u30AF\u30BB\u30B9\u53EF\u80FD\u306A\u30AB\u30EC\u30F3\u30C0\u30FC\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u30B5\u30FC\u30D3\u30B9\u30A2\u30AB\u30A6\u30F3\u30C8 \`<serviceAccountEmail>\` \u3067\u6B21\u306E\u3044\u305A\u308C\u304B\u3092\u884C\u3063\u3066\u304B\u3089\u7D9A\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u300D
|
|
91667
91713
|
- \`options\`: \u3053\u3053\u307E\u3067\u306B\u8A66\u3057\u305F\u7D4C\u8DEF\u306B\u5FDC\u3058\u3066\u4EE5\u4E0B\u3092\u7D44\u307F\u5408\u308F\u305B\u308B:
|
|
91668
91714
|
- \u30B5\u30FC\u30D3\u30B9\u30A2\u30AB\u30A6\u30F3\u30C8\u7D4C\u8DEF\u3092\u8A66\u3057\u305F\u5834\u5408: \`{ label: "\u5BFE\u8C61\u30AB\u30EC\u30F3\u30C0\u30FC\u3092\u30B5\u30FC\u30D3\u30B9\u30A2\u30AB\u30A6\u30F3\u30C8\u306B\u5171\u6709\u3057\u305F\u306E\u3067\u30EA\u30C8\u30E9\u30A4", value: "retry" }\`
|
|
91669
91715
|
- \u30C9\u30E1\u30A4\u30F3\u5168\u4F53\u306E\u59D4\u4EFB\u7D4C\u8DEF\u3092\u8A66\u3057\u305F\u5834\u5408: \`{ label: "\u30C9\u30E1\u30A4\u30F3\u5168\u4F53\u306E\u59D4\u4EFB\u3092\u627F\u8A8D\u3057\u305F\u306E\u3067\u30EA\u30C8\u30E9\u30A4", value: "retry" }\`
|
|
@@ -91671,17 +91717,28 @@ var googleCalendarOnboarding = new ConnectorOnboarding({
|
|
|
91671
91717
|
- \u5E38\u306B: \`{ label: "\u5225\u306E\u30B5\u30FC\u30D3\u30B9\u30A2\u30AB\u30A6\u30F3\u30C8\u3067\u8A2D\u5B9A\u3057\u76F4\u3059", value: "change-service-account" }\`
|
|
91672
91718
|
|
|
91673
91719
|
\u9078\u629E\u7D50\u679C\u306B\u5FDC\u3058\u305F\u6319\u52D5:
|
|
91674
|
-
- "retry": \u76F4\u524D\u306E\u7D4C\u8DEF\u3092\u518D probe (\
|
|
91720
|
+
- "retry": \u76F4\u524D\u306E\u7D4C\u8DEF\u3092\u518D probe (\u30EA\u30C8\u30E9\u30A4\u306E\u4ED5\u65B9\u306F\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u304C\u6587\u8108\u306B\u5FDC\u3058\u3066\u5224\u65AD)
|
|
91675
91721
|
- "restart": \u30B9\u30C6\u30C3\u30D7 1 \u304B\u3089\u518D\u5B9F\u884C
|
|
91676
91722
|
- "change-service-account": \`updateConnectionParameters\` \u3092\u547C\u3093\u3067\u30B5\u30FC\u30D3\u30B9\u30A2\u30AB\u30A6\u30F3\u30C8 JSON \u3092\u518D\u5165\u529B\u3055\u305B\u308B:
|
|
91677
91723
|
- \`parameterSlug\`: \`"${SERVICE_ACCOUNT_KEY_PARAM_SLUG}"\`
|
|
91678
|
-
- \u5B8C\u4E86\u5F8C\u3001\u30B9\u30C6\u30C3\u30D7
|
|
91724
|
+
- \u5B8C\u4E86\u5F8C\u3001\u30B9\u30C6\u30C3\u30D7 0 \u304B\u3089\u518D\u5B9F\u884C
|
|
91679
91725
|
|
|
91680
91726
|
## \u5236\u7D04
|
|
91681
91727
|
|
|
91682
91728
|
- \u4E0A\u8A18\u4EE5\u5916\u306E API \u547C\u3073\u51FA\u3057\u3092 setup \u4E2D\u306B\u884C\u308F\u306A\u3044
|
|
91683
91729
|
- \u30C4\u30FC\u30EB\u547C\u3073\u51FA\u3057\u306E\u9593\u306F 1 \u6587\u3060\u3051\u66F8\u3044\u3066\u5373\u6B21\u306E\u30C4\u30FC\u30EB\u547C\u3073\u51FA\u3057`,
|
|
91684
|
-
en: `Set up the Google Calendar connection. Ask the user how they want to access calendars
|
|
91730
|
+
en: `Set up the Google Calendar connection. Ask the user how they want to access calendars and record the target calendars in Project Knowledge.
|
|
91731
|
+
|
|
91732
|
+
## Step 0: Get the service account email
|
|
91733
|
+
|
|
91734
|
+
We need the service account email so we can show it to the user in the next steps.
|
|
91735
|
+
|
|
91736
|
+
Call \`${requestToolName}\` once and remember the \`serviceAccountEmail\` from the response:
|
|
91737
|
+
- \`method\`: \`"GET"\`
|
|
91738
|
+
- \`path\`: \`"/users/me/calendarList"\`
|
|
91739
|
+
- \`scopes\`: \`${READONLY_SCOPES}\`
|
|
91740
|
+
|
|
91741
|
+
\`serviceAccountEmail\` is returned regardless of success or failure, so the list payload itself can be ignored at this stage. Refer to the captured value as \`<serviceAccountEmail>\` in the steps below.
|
|
91685
91742
|
|
|
91686
91743
|
## Step 1: Choose the access method
|
|
91687
91744
|
|
|
@@ -91693,50 +91750,58 @@ Call \`askUserQuestion\`:
|
|
|
91693
91750
|
- \`{ label: "Calendars of users in your organization (via Domain-wide Delegation)", value: "delegation" }\`
|
|
91694
91751
|
- \`{ label: "Both", value: "both" }\`
|
|
91695
91752
|
|
|
91696
|
-
## Step 2:
|
|
91753
|
+
## Step 2: Service-account path (when \`"service-account"\` or \`"both"\`)
|
|
91754
|
+
|
|
91755
|
+
Take calendar IDs that the user has already shared with \`<serviceAccountEmail>\`, and verify each one. No multiSelect step (the user has already specified which calendars to use by entering their IDs).
|
|
91756
|
+
|
|
91757
|
+
1. Ask the user for calendar IDs:
|
|
91758
|
+
- \`type\`: \`"freeText"\`
|
|
91759
|
+
- \`question\`: "Enter the IDs of the calendars you want to access (comma-separated for multiple). Each calendar must already be shared with \`<serviceAccountEmail>\`. For someone's primary calendar you can enter their email address directly. For other calendars (such as team calendars), copy the 'Calendar ID' from the calendar settings in Google Calendar."
|
|
91760
|
+
- \`placeholder\`: \`"alice@example.com, c_xxx@group.calendar.google.com"\`
|
|
91697
91761
|
|
|
91698
|
-
|
|
91762
|
+
2. For each calendar ID \`<id>\`, verify access by calling \`${requestToolName}\`:
|
|
91699
91763
|
- \`method\`: \`"GET"\`
|
|
91700
|
-
- \`path\`: \`"/
|
|
91764
|
+
- \`path\`: \`"/calendars/<id>"\`
|
|
91701
91765
|
- \`scopes\`: \`${READONLY_SCOPES}\`
|
|
91766
|
+
- On success, capture \`data.summary\` as the calendar name
|
|
91767
|
+
- On failure (404 / 403 / etc.), record the ID as inaccessible
|
|
91702
91768
|
|
|
91703
|
-
|
|
91704
|
-
-
|
|
91705
|
-
-
|
|
91706
|
-
|
|
91707
|
-
|
|
91708
|
-
- \`options\`: For each calendar, \`label\`: \`"<calendar name>"\`, \`value\`: \`"<calendarId>"\`
|
|
91769
|
+
3. Branch on the results:
|
|
91770
|
+
- **All IDs failed**: if the access method is \`"service-account"\` only, jump to Step 5. If \`"both"\`, continue to Step 3.
|
|
91771
|
+
- **Any success**: take the verified calendars as the selection for Step 4. If some failed, mention them briefly in one sentence.
|
|
91772
|
+
|
|
91773
|
+
## Step 3: Domain-wide Delegation path (when \`"delegation"\` or \`"both"\`)
|
|
91709
91774
|
|
|
91710
|
-
|
|
91775
|
+
Discover calendars from each Workspace user and let the user narrow them down.
|
|
91711
91776
|
|
|
91712
|
-
1. Ask the user for target emails:
|
|
91777
|
+
1. Ask the user for the target Workspace user emails:
|
|
91713
91778
|
- \`type\`: \`"freeText"\`
|
|
91714
|
-
- \`question\`: "Enter the email addresses of the Google Workspace users whose calendars you want to access (comma-separated for multiple). Your Workspace admin must have authorized Domain-wide Delegation for
|
|
91779
|
+
- \`question\`: "Enter the email addresses of the Google Workspace users whose calendars you want to access (comma-separated for multiple). Your Workspace admin must have authorized Domain-wide Delegation for service account \`<serviceAccountEmail>\` in advance ([admin setup guide](https://support.google.com/a/answer/162106))."
|
|
91715
91780
|
- \`placeholder\`: \`"alice@example.com, bob@example.com"\`
|
|
91716
91781
|
|
|
91717
|
-
2.
|
|
91782
|
+
2. For each email \`<email>\`, list calendars accessible to that user via \`${requestWithDelegationToolName}\`:
|
|
91718
91783
|
- \`method\`: \`"GET"\`
|
|
91719
91784
|
- \`path\`: \`"/users/me/calendarList"\`
|
|
91720
91785
|
- \`subject\`: \`<email>\`
|
|
91721
91786
|
- \`scopes\`: \`${READONLY_SCOPES}\`
|
|
91722
91787
|
|
|
91723
91788
|
3. Branch on the results:
|
|
91724
|
-
- All emails failed
|
|
91725
|
-
- Any success
|
|
91789
|
+
- **All emails failed**: if the access method is \`"delegation"\` only, or \`"both"\` with no calendars from Step 2, jump to Step 5. If \`"both"\` and Step 2 had calendars, continue to Step 4.
|
|
91790
|
+
- **Any success**: ask the user to narrow down via \`askUserQuestion\`:
|
|
91726
91791
|
- \`type\`: \`"multiSelect"\`
|
|
91727
91792
|
- \`question\`: "Select the calendars to use (multiple allowed)"
|
|
91728
|
-
- \`options\`: For each calendar, \`label\`: \`"<calendar name> (owner: <the subject used>)"\`, \`value\`: \`"<calendarId>"\`
|
|
91729
|
-
- If some emails failed, mention
|
|
91793
|
+
- \`options\`: For each discovered calendar, \`label\`: \`"<calendar name> (owner: <the subject used>)"\`, \`value\`: \`"<calendarId>"\`
|
|
91794
|
+
- If some emails failed, mention them briefly in one sentence.
|
|
91730
91795
|
|
|
91731
91796
|
## Step 4: Record in Project Knowledge
|
|
91732
91797
|
|
|
91733
|
-
Aggregate the calendarIds
|
|
91798
|
+
Aggregate the calendarIds from Steps 2 and 3. Cross-reference each calendarId against the verification result (Step 2) or the discovery result (Step 3) to recover its access path and, for delegation, the subject. Call \`finalizeSetup\`. Under \`#### \u30B9\u30B3\u30FC\u30D7\` in \`projectKnowledge\`, list each calendar on its own line:
|
|
91734
91799
|
- Via Domain-wide Delegation: \`- calendar: <calendarId> (delegation, subject: <subject>, name: "<calendar name>")\`
|
|
91735
91800
|
- Via service account: \`- calendar: <calendarId> (service-account, name: "<calendar name>")\`
|
|
91736
91801
|
|
|
91737
91802
|
## Step 5: Escalation when zero calendars are selected
|
|
91738
91803
|
|
|
91739
|
-
|
|
91804
|
+
When no calendars end up selected, call \`askUserQuestion\`:
|
|
91740
91805
|
|
|
91741
91806
|
- \`question\`: "No accessible calendars found. Please do one of the following before continuing. Service account: \`<serviceAccountEmail>\`."
|
|
91742
91807
|
- \`options\`: Combine these based on which paths were attempted:
|
|
@@ -91746,11 +91811,11 @@ If the final selected calendar set is empty (every attempted path returned nothi
|
|
|
91746
91811
|
- Always: \`{ label: "Use a different service account", value: "change-service-account" }\`
|
|
91747
91812
|
|
|
91748
91813
|
Behavior per selection:
|
|
91749
|
-
- "retry": re-probe the path that was just attempted (
|
|
91814
|
+
- "retry": re-probe the path that was just attempted (the agent decides the exact retry plan)
|
|
91750
91815
|
- "restart": re-run from Step 1
|
|
91751
91816
|
- "change-service-account": call \`updateConnectionParameters\` to have the user re-upload the service account JSON:
|
|
91752
91817
|
- \`parameterSlug\`: \`"${SERVICE_ACCOUNT_KEY_PARAM_SLUG}"\`
|
|
91753
|
-
- After it completes, re-run from Step
|
|
91818
|
+
- After it completes, re-run from Step 0
|
|
91754
91819
|
|
|
91755
91820
|
## Constraints
|
|
91756
91821
|
|
|
@@ -91792,6 +91857,7 @@ var googleCalendarConnector = new ConnectorPlugin({
|
|
|
91792
91857
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/2YsqoBEpdELmfDeFcyGHyE/4494c633b5ae15e562cb739cd85442c1/google-calendar.png",
|
|
91793
91858
|
parameters: parameters14,
|
|
91794
91859
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
91860
|
+
categories: ["productivity"],
|
|
91795
91861
|
onboarding: googleCalendarOnboarding,
|
|
91796
91862
|
systemPrompt: {
|
|
91797
91863
|
en: `### Tools
|
|
@@ -92296,6 +92362,7 @@ var googleCalendarOauthConnector = new ConnectorPlugin({
|
|
|
92296
92362
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/2YsqoBEpdELmfDeFcyGHyE/4494c633b5ae15e562cb739cd85442c1/google-calendar.png",
|
|
92297
92363
|
parameters: parameters15,
|
|
92298
92364
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
92365
|
+
categories: ["productivity"],
|
|
92299
92366
|
onboarding: googleCalendarOauthOnboarding,
|
|
92300
92367
|
proxyPolicy: {
|
|
92301
92368
|
allowlist: [
|
|
@@ -92602,6 +92669,7 @@ var googleDocsConnector = new ConnectorPlugin({
|
|
|
92602
92669
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/6vvcGJisvXjOumeTvswjzf/e9bb39e453cc0b71a20f26019b23b0d2/google_docs.png",
|
|
92603
92670
|
parameters: parameters16,
|
|
92604
92671
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
92672
|
+
categories: ["productivity"],
|
|
92605
92673
|
onboarding: googleDocsOnboarding,
|
|
92606
92674
|
proxyPolicy: {
|
|
92607
92675
|
allowlist: [
|
|
@@ -92893,6 +92961,7 @@ var googleDriveConnector = new ConnectorPlugin({
|
|
|
92893
92961
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/4GJX5yQTogUgar1buWxXbv/4b43a65353319c508111489f834d22c4/google_drive.png",
|
|
92894
92962
|
parameters: parameters17,
|
|
92895
92963
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
92964
|
+
categories: ["productivity"],
|
|
92896
92965
|
onboarding: googleDriveOnboarding,
|
|
92897
92966
|
proxyPolicy: {
|
|
92898
92967
|
allowlist: [
|
|
@@ -93395,6 +93464,7 @@ var googleSheetsConnector = new ConnectorPlugin({
|
|
|
93395
93464
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/1UPQuggyiZmbb26CuaSr2h/032770e8739b183fa00b7625f024e536/google-sheets.svg",
|
|
93396
93465
|
parameters: parameters18,
|
|
93397
93466
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
93467
|
+
categories: ["productivity"],
|
|
93398
93468
|
onboarding: googleSheetsOnboarding,
|
|
93399
93469
|
proxyPolicy: {
|
|
93400
93470
|
allowlist: [
|
|
@@ -93696,6 +93766,7 @@ var googleSlidesConnector = new ConnectorPlugin({
|
|
|
93696
93766
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/4oyF4yTRpemMA43X49masx/e1582d25e3b4c9a63ba83df2147c1968/google_slide.png",
|
|
93697
93767
|
parameters: parameters19,
|
|
93698
93768
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
93769
|
+
categories: ["productivity"],
|
|
93699
93770
|
onboarding: googleSlidesOnboarding,
|
|
93700
93771
|
proxyPolicy: {
|
|
93701
93772
|
allowlist: [
|
|
@@ -94031,6 +94102,7 @@ var hubspotOauthConnector = new ConnectorPlugin({
|
|
|
94031
94102
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/5UcSkKkzhUMA4RsM45ynuo/43b967e36915ca0fc5d277684b204320/hubspot.svg",
|
|
94032
94103
|
parameters: parameters20,
|
|
94033
94104
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
94105
|
+
categories: ["crm"],
|
|
94034
94106
|
onboarding: hubspotOnboarding,
|
|
94035
94107
|
proxyPolicy: {
|
|
94036
94108
|
allowlist: [
|
|
@@ -94320,6 +94392,7 @@ var stripeOauthConnector = new ConnectorPlugin({
|
|
|
94320
94392
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/2QNK0u2doqp41uL0POS4Ks/7a92367e2388ec77c7f4ada143606f9a/stripe.jpeg",
|
|
94321
94393
|
parameters: parameters21,
|
|
94322
94394
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
94395
|
+
categories: ["finance"],
|
|
94323
94396
|
onboarding: stripeOnboarding,
|
|
94324
94397
|
proxyPolicy: {
|
|
94325
94398
|
allowlist: [
|
|
@@ -94607,6 +94680,7 @@ var stripeApiKeyConnector = new ConnectorPlugin({
|
|
|
94607
94680
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/2QNK0u2doqp41uL0POS4Ks/7a92367e2388ec77c7f4ada143606f9a/stripe.jpeg",
|
|
94608
94681
|
parameters: parameters22,
|
|
94609
94682
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
94683
|
+
categories: ["finance"],
|
|
94610
94684
|
onboarding: stripeApiKeyOnboarding,
|
|
94611
94685
|
systemPrompt: {
|
|
94612
94686
|
en: `### Tools
|
|
@@ -94929,6 +95003,7 @@ var airtableOauthConnector = new ConnectorPlugin({
|
|
|
94929
95003
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/19JUphfOZjyjTK6Zg4NGCf/8c56227b088cada52d3a2d9385a3be97/airtable.svg",
|
|
94930
95004
|
parameters: parameters23,
|
|
94931
95005
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
95006
|
+
categories: ["productivity"],
|
|
94932
95007
|
onboarding: airtableOauthOnboarding,
|
|
94933
95008
|
proxyPolicy: {
|
|
94934
95009
|
allowlist: [
|
|
@@ -95190,6 +95265,7 @@ var kintoneConnector = new ConnectorPlugin({
|
|
|
95190
95265
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/76nPGMJFZkMFE3UQNo2JFy/e71dc5f5d5cec1306ce0e17aafbfd9f0/kintone.png",
|
|
95191
95266
|
parameters: parameters24,
|
|
95192
95267
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
95268
|
+
categories: ["productivity"],
|
|
95193
95269
|
onboarding: kintoneOnboarding,
|
|
95194
95270
|
systemPrompt: {
|
|
95195
95271
|
en: `### Tools
|
|
@@ -95490,6 +95566,7 @@ var kintoneApiTokenConnector = new ConnectorPlugin({
|
|
|
95490
95566
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/76nPGMJFZkMFE3UQNo2JFy/e71dc5f5d5cec1306ce0e17aafbfd9f0/kintone.png",
|
|
95491
95567
|
parameters: parameters25,
|
|
95492
95568
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
95569
|
+
categories: ["productivity"],
|
|
95493
95570
|
onboarding: kintoneApiTokenOnboarding,
|
|
95494
95571
|
systemPrompt: {
|
|
95495
95572
|
en: `### Tools
|
|
@@ -95765,6 +95842,7 @@ var wixStoreConnector = new ConnectorPlugin({
|
|
|
95765
95842
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/YyFxclQFzROIYpFam6vRK/e7e75d3feac49a1cc5e433c147216d23/Wix_logo_black.svg",
|
|
95766
95843
|
parameters: parameters26,
|
|
95767
95844
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
95845
|
+
categories: ["ecommerce"],
|
|
95768
95846
|
onboarding: wixStoreOnboarding,
|
|
95769
95847
|
systemPrompt: {
|
|
95770
95848
|
en: `### Tools
|
|
@@ -96066,6 +96144,7 @@ var dbtConnector = new ConnectorPlugin({
|
|
|
96066
96144
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/4iT6ncXtdtHdkXexU0WgfZ/0367a38d245f2568eab5eb511f9ee692/dbt.png",
|
|
96067
96145
|
parameters: parameters27,
|
|
96068
96146
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
96147
|
+
categories: ["database"],
|
|
96069
96148
|
onboarding: dbtOnboarding,
|
|
96070
96149
|
systemPrompt: {
|
|
96071
96150
|
en: `### Tools
|
|
@@ -96400,6 +96479,7 @@ var squadbaseDbConnector = new ConnectorPlugin({
|
|
|
96400
96479
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/25y0XqMxIufeD3egWH3bEl/659b4ade405890654cfaf91c03a4b458/icon.svg",
|
|
96401
96480
|
parameters: parameters28,
|
|
96402
96481
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
96482
|
+
categories: ["database"],
|
|
96403
96483
|
onboarding: squadbaseDbOnboarding,
|
|
96404
96484
|
systemPrompt: {
|
|
96405
96485
|
en: `### Tools
|
|
@@ -96490,6 +96570,7 @@ var openaiConnector = new ConnectorPlugin({
|
|
|
96490
96570
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/53XJtCgUlW10x6i1X8xpxM/0bfd634069f1d74241296543cb20427a/openai.svg",
|
|
96491
96571
|
parameters: parameters29,
|
|
96492
96572
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
96573
|
+
categories: ["ai"],
|
|
96493
96574
|
systemPrompt: {
|
|
96494
96575
|
en: `### Business Logic
|
|
96495
96576
|
|
|
@@ -96564,6 +96645,7 @@ var geminiConnector = new ConnectorPlugin({
|
|
|
96564
96645
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/6K2qZQZEQq90YENfrXy5my/c83c0c3815af0a97d29ee70f37215f01/gemini.png",
|
|
96565
96646
|
parameters: parameters30,
|
|
96566
96647
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
96648
|
+
categories: ["ai"],
|
|
96567
96649
|
systemPrompt: {
|
|
96568
96650
|
en: `### Business Logic
|
|
96569
96651
|
|
|
@@ -96632,6 +96714,7 @@ var anthropicConnector = new ConnectorPlugin({
|
|
|
96632
96714
|
iconUrl: "https://www.anthropic.com/images/icons/safari-pinned-tab.svg",
|
|
96633
96715
|
parameters: parameters31,
|
|
96634
96716
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
96717
|
+
categories: ["ai"],
|
|
96635
96718
|
systemPrompt: {
|
|
96636
96719
|
en: `### Business Logic
|
|
96637
96720
|
|
|
@@ -96828,6 +96911,7 @@ var amplitudeConnector = new ConnectorPlugin({
|
|
|
96828
96911
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/2UBJSdRlFJaLq52WUCTBEB/308b59b374cf6c662ac70989860bffd7/amplitude-icon.svg",
|
|
96829
96912
|
parameters: parameters32,
|
|
96830
96913
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
96914
|
+
categories: ["marketing"],
|
|
96831
96915
|
onboarding: amplitudeOnboarding,
|
|
96832
96916
|
systemPrompt: {
|
|
96833
96917
|
en: `### Tools
|
|
@@ -97081,6 +97165,7 @@ var attioConnector = new ConnectorPlugin({
|
|
|
97081
97165
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/2qqx99vvXJojUM3tSrSWPX/1e7c35e13da6b365b8b475c1effe568f/attio.svg",
|
|
97082
97166
|
parameters: parameters33,
|
|
97083
97167
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
97168
|
+
categories: ["crm"],
|
|
97084
97169
|
onboarding: attioOnboarding,
|
|
97085
97170
|
systemPrompt: {
|
|
97086
97171
|
en: `### Tools
|
|
@@ -97539,6 +97624,7 @@ var shopifyConnector = new ConnectorPlugin({
|
|
|
97539
97624
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/57KEjZCBskKgSxgKyU4Sm0/117d681a410f48dc36f97cdd9c0593c5/shopify-icon.svg",
|
|
97540
97625
|
parameters: parameters34,
|
|
97541
97626
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
97627
|
+
categories: ["ecommerce"],
|
|
97542
97628
|
onboarding: shopifyOnboarding,
|
|
97543
97629
|
systemPrompt: {
|
|
97544
97630
|
en: `### Tools
|
|
@@ -97851,6 +97937,7 @@ var shopifyOauthConnector = new ConnectorPlugin({
|
|
|
97851
97937
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/57KEjZCBskKgSxgKyU4Sm0/117d681a410f48dc36f97cdd9c0593c5/shopify-icon.svg",
|
|
97852
97938
|
parameters: parameters35,
|
|
97853
97939
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
97940
|
+
categories: ["ecommerce"],
|
|
97854
97941
|
onboarding: shopifyOauthOnboarding,
|
|
97855
97942
|
proxyPolicy: {
|
|
97856
97943
|
allowlist: [
|
|
@@ -98093,6 +98180,7 @@ var hubspotConnector = new ConnectorPlugin({
|
|
|
98093
98180
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/5UcSkKkzhUMA4RsM45ynuo/43b967e36915ca0fc5d277684b204320/hubspot.svg",
|
|
98094
98181
|
parameters: parameters36,
|
|
98095
98182
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
98183
|
+
categories: ["crm"],
|
|
98096
98184
|
onboarding: hubspotOnboarding2,
|
|
98097
98185
|
systemPrompt: {
|
|
98098
98186
|
en: `### Tools
|
|
@@ -98361,6 +98449,7 @@ var jiraConnector = new ConnectorPlugin({
|
|
|
98361
98449
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/5zt4yjb36szSPPkCECYlPL/bc3e7223dc84fb16a1cce53a80f5afcc/jira.png",
|
|
98362
98450
|
parameters: parameters37,
|
|
98363
98451
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
98452
|
+
categories: ["productivity"],
|
|
98364
98453
|
onboarding: jiraOnboarding,
|
|
98365
98454
|
systemPrompt: {
|
|
98366
98455
|
en: `### Tools
|
|
@@ -98636,6 +98725,7 @@ var linearConnector = new ConnectorPlugin({
|
|
|
98636
98725
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/6oR77h6TeniXGdmnp2P2LX/a2ac8630ae52d164363adb0c695d9f0b/linear.webp",
|
|
98637
98726
|
parameters: parameters38,
|
|
98638
98727
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
98728
|
+
categories: ["productivity"],
|
|
98639
98729
|
onboarding: linearOnboarding,
|
|
98640
98730
|
systemPrompt: {
|
|
98641
98731
|
en: `### Tools
|
|
@@ -98898,6 +98988,7 @@ var asanaConnector = new ConnectorPlugin({
|
|
|
98898
98988
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/3eIdaoqzIIZs2Md0OoDJMf/2fa66e0841adb985da4d3120466f3ec4/asana-icon.png",
|
|
98899
98989
|
parameters: parameters39,
|
|
98900
98990
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
98991
|
+
categories: ["productivity"],
|
|
98901
98992
|
onboarding: asanaOnboarding,
|
|
98902
98993
|
systemPrompt: {
|
|
98903
98994
|
en: `### Tools
|
|
@@ -99223,6 +99314,7 @@ var clickhouseConnector = new ConnectorPlugin({
|
|
|
99223
99314
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/MencimqP92UmucqstLl51/d9f2b6160206f5454b26e223a763ab8f/clickhouse.png",
|
|
99224
99315
|
parameters: parameters40,
|
|
99225
99316
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
99317
|
+
categories: ["database"],
|
|
99226
99318
|
onboarding: clickhouseOnboarding,
|
|
99227
99319
|
systemPrompt: {
|
|
99228
99320
|
en: `### Tools
|
|
@@ -99631,6 +99723,7 @@ var mongodbConnector = new ConnectorPlugin({
|
|
|
99631
99723
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/48JSUx9HE6oSa9JrHGg2E1/12b4cac65924cac3641d4bafcef37dbe/mongodb-icon.webp",
|
|
99632
99724
|
parameters: parameters41,
|
|
99633
99725
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
99726
|
+
categories: ["database"],
|
|
99634
99727
|
onboarding: mongodbOnboarding,
|
|
99635
99728
|
systemPrompt: {
|
|
99636
99729
|
en: `### Tools
|
|
@@ -99815,6 +99908,7 @@ var notionConnector = new ConnectorPlugin({
|
|
|
99815
99908
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/797V5GDDTA8bsfKUHBCoQO/290ec49b70b68ddb4acd3bf0a6ab8bda/notion-icon.webp",
|
|
99816
99909
|
parameters: parameters42,
|
|
99817
99910
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
99911
|
+
categories: ["productivity"],
|
|
99818
99912
|
onboarding: notionOnboarding,
|
|
99819
99913
|
systemPrompt: {
|
|
99820
99914
|
en: `### Tools
|
|
@@ -100125,6 +100219,7 @@ var notionOauthConnector = new ConnectorPlugin({
|
|
|
100125
100219
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/797V5GDDTA8bsfKUHBCoQO/290ec49b70b68ddb4acd3bf0a6ab8bda/notion-icon.webp",
|
|
100126
100220
|
parameters: parameters43,
|
|
100127
100221
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
100222
|
+
categories: ["productivity"],
|
|
100128
100223
|
onboarding: notionOauthOnboarding,
|
|
100129
100224
|
proxyPolicy: {
|
|
100130
100225
|
allowlist: [
|
|
@@ -100491,6 +100586,7 @@ var metaAdsConnector = new ConnectorPlugin({
|
|
|
100491
100586
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/2vyrgcvdf3jETIFXHtbteO/de7f3288e831c9f738e44cf1f961c3bd/meta-icon.webp",
|
|
100492
100587
|
parameters: parameters44,
|
|
100493
100588
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
100589
|
+
categories: ["marketing"],
|
|
100494
100590
|
onboarding: metaAdsOnboarding,
|
|
100495
100591
|
systemPrompt: {
|
|
100496
100592
|
en: `### Tools
|
|
@@ -100943,6 +101039,7 @@ var metaAdsOauthConnector = new ConnectorPlugin({
|
|
|
100943
101039
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/2vyrgcvdf3jETIFXHtbteO/de7f3288e831c9f738e44cf1f961c3bd/meta-icon.webp",
|
|
100944
101040
|
parameters: parameters45,
|
|
100945
101041
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
101042
|
+
categories: ["marketing"],
|
|
100946
101043
|
onboarding: metaAdsOauthOnboarding,
|
|
100947
101044
|
proxyPolicy: {
|
|
100948
101045
|
allowlist: [
|
|
@@ -101411,6 +101508,7 @@ var tiktokAdsConnector = new ConnectorPlugin({
|
|
|
101411
101508
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/01jHuwvmhe4ts0wj23Hxpm/afac9fa50ac5b353927900a122e898ab/tiktok.webp",
|
|
101412
101509
|
parameters: parameters46,
|
|
101413
101510
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
101511
|
+
categories: ["marketing"],
|
|
101414
101512
|
onboarding: tiktokAdsOnboarding,
|
|
101415
101513
|
proxyPolicy: {
|
|
101416
101514
|
allowlist: [
|
|
@@ -101714,6 +101812,7 @@ var mailchimpConnector = new ConnectorPlugin({
|
|
|
101714
101812
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/19Rac6B8eGiLpQb4lKMbG3/10f567f85572aeb16f2ee6aaa6602987/mailchimp.png",
|
|
101715
101813
|
parameters: parameters47,
|
|
101716
101814
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
101815
|
+
categories: ["marketing"],
|
|
101717
101816
|
onboarding: mailchimpOnboarding,
|
|
101718
101817
|
systemPrompt: {
|
|
101719
101818
|
en: `### Tools
|
|
@@ -102067,6 +102166,7 @@ var mailchimpOauthConnector = new ConnectorPlugin({
|
|
|
102067
102166
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/19Rac6B8eGiLpQb4lKMbG3/10f567f85572aeb16f2ee6aaa6602987/mailchimp.png",
|
|
102068
102167
|
parameters: parameters48,
|
|
102069
102168
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
102169
|
+
categories: ["marketing"],
|
|
102070
102170
|
onboarding: mailchimpOauthOnboarding,
|
|
102071
102171
|
proxyPolicy: {
|
|
102072
102172
|
allowlist: [
|
|
@@ -102360,6 +102460,7 @@ var customerioConnector = new ConnectorPlugin({
|
|
|
102360
102460
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/nngohabT7oHDIgQYAVBpz/6f6c7662ef4692eb9869e3e69dd57114/customerio.png",
|
|
102361
102461
|
parameters: parameters49,
|
|
102362
102462
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
102463
|
+
categories: ["marketing"],
|
|
102363
102464
|
onboarding: customerioOnboarding,
|
|
102364
102465
|
systemPrompt: {
|
|
102365
102466
|
en: `### Tools
|
|
@@ -102581,7 +102682,8 @@ var outputSchema61 = z63.discriminatedUnion("success", [
|
|
|
102581
102682
|
z63.object({
|
|
102582
102683
|
success: z63.literal(true),
|
|
102583
102684
|
status: z63.number(),
|
|
102584
|
-
data: z63.record(z63.string(), z63.unknown())
|
|
102685
|
+
data: z63.record(z63.string(), z63.unknown()),
|
|
102686
|
+
serviceAccountEmail: z63.string()
|
|
102585
102687
|
}),
|
|
102586
102688
|
z63.object({
|
|
102587
102689
|
success: z63.literal(false),
|
|
@@ -102663,7 +102765,12 @@ var requestWithDelegationTool2 = new ConnectorTool({
|
|
|
102663
102765
|
serviceAccountEmail
|
|
102664
102766
|
};
|
|
102665
102767
|
}
|
|
102666
|
-
return {
|
|
102768
|
+
return {
|
|
102769
|
+
success: true,
|
|
102770
|
+
status: response.status,
|
|
102771
|
+
data,
|
|
102772
|
+
serviceAccountEmail
|
|
102773
|
+
};
|
|
102667
102774
|
} finally {
|
|
102668
102775
|
clearTimeout(timeout);
|
|
102669
102776
|
}
|
|
@@ -102758,6 +102865,7 @@ var gmailConnector = new ConnectorPlugin({
|
|
|
102758
102865
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/4V3rfaSc1ksFIt2eHBNIwJ/7f3be41a154a6d96dcf229ed0e5858c9/Gmail_icon__2020_.svg.png",
|
|
102759
102866
|
parameters: parameters50,
|
|
102760
102867
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
102868
|
+
categories: ["productivity"],
|
|
102761
102869
|
onboarding: gmailOnboarding,
|
|
102762
102870
|
systemPrompt: {
|
|
102763
102871
|
en: `### Tools
|
|
@@ -103120,6 +103228,7 @@ var gmailOauthConnector = new ConnectorPlugin({
|
|
|
103120
103228
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/4V3rfaSc1ksFIt2eHBNIwJ/7f3be41a154a6d96dcf229ed0e5858c9/Gmail_icon__2020_.svg.png",
|
|
103121
103229
|
parameters: parameters51,
|
|
103122
103230
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
103231
|
+
categories: ["productivity"],
|
|
103123
103232
|
onboarding: gmailOnboarding2,
|
|
103124
103233
|
proxyPolicy: {
|
|
103125
103234
|
allowlist: [
|
|
@@ -103320,11 +103429,424 @@ thread.messages.forEach(m => console.log(m.snippet));
|
|
|
103320
103429
|
}
|
|
103321
103430
|
});
|
|
103322
103431
|
|
|
103323
|
-
// ../connectors/src/connectors/
|
|
103432
|
+
// ../connectors/src/connectors/google-audit-log/tools/request-with-delegation.ts
|
|
103324
103433
|
import { z as z65 } from "zod";
|
|
103325
|
-
|
|
103326
|
-
|
|
103434
|
+
|
|
103435
|
+
// ../connectors/src/connectors/google-audit-log/parameters.ts
|
|
103436
|
+
var parameters52 = {
|
|
103437
|
+
serviceAccountKeyJsonBase64: new ParameterDefinition({
|
|
103438
|
+
slug: "service-account-key-json-base64",
|
|
103439
|
+
name: "Google Cloud Service Account JSON",
|
|
103440
|
+
description: "The service account JSON key. Domain-wide Delegation must be authorized in the Google Workspace admin console for the Admin SDK Reports API scopes (admin.reports.audit.readonly, admin.reports.usage.readonly). The Workspace admin user to impersonate is supplied per call as the `subject` argument.",
|
|
103441
|
+
envVarBaseKey: "GOOGLE_AUDIT_LOG_SERVICE_ACCOUNT_JSON_BASE64",
|
|
103442
|
+
type: "base64EncodedJson",
|
|
103443
|
+
secret: true,
|
|
103444
|
+
required: true
|
|
103445
|
+
})
|
|
103446
|
+
};
|
|
103447
|
+
|
|
103448
|
+
// ../connectors/src/connectors/google-audit-log/tools/request-with-delegation.ts
|
|
103449
|
+
var BASE_URL30 = "https://admin.googleapis.com/admin/reports/v1";
|
|
103327
103450
|
var REQUEST_TIMEOUT_MS48 = 6e4;
|
|
103451
|
+
function decodeServiceAccount4(keyJsonBase64) {
|
|
103452
|
+
const decoded = Buffer.from(keyJsonBase64, "base64").toString("utf-8");
|
|
103453
|
+
return JSON.parse(decoded);
|
|
103454
|
+
}
|
|
103455
|
+
var inputSchema63 = z65.object({
|
|
103456
|
+
toolUseIntent: z65.string().optional().describe(
|
|
103457
|
+
"Brief description of what you intend to accomplish with this tool call"
|
|
103458
|
+
),
|
|
103459
|
+
connectionId: z65.string().describe(
|
|
103460
|
+
"ID of the Google Audit Log (Admin SDK Reports) service account connection to use"
|
|
103461
|
+
),
|
|
103462
|
+
method: z65.enum(["GET"]).describe("HTTP method. Reports API is read-only."),
|
|
103463
|
+
path: z65.string().describe(
|
|
103464
|
+
"API path appended to https://admin.googleapis.com/admin/reports/v1. Examples: '/activity/users/all/applications/login', '/activity/users/{userKey}/applications/drive', '/usage/users/all/dates/2025-04-01', '/usage/dates/2025-04-01'."
|
|
103465
|
+
),
|
|
103466
|
+
subject: z65.string().describe(
|
|
103467
|
+
"Email of the Google Workspace admin user to impersonate via Domain-wide Delegation. The Reports API requires the impersonated user to have admin privileges in the Workspace."
|
|
103468
|
+
),
|
|
103469
|
+
scopes: z65.array(z65.string()).describe(
|
|
103470
|
+
"OAuth scopes the token must include. This connector is read-only \u2014 pass one or both of: ['https://www.googleapis.com/auth/admin.reports.audit.readonly'] (audit activities), ['https://www.googleapis.com/auth/admin.reports.usage.readonly'] (usage reports). For maximum coverage you can pass both."
|
|
103471
|
+
),
|
|
103472
|
+
queryParams: z65.record(z65.string(), z65.string()).optional().describe(
|
|
103473
|
+
"Query parameters to append to the URL (e.g., { startTime: '2025-04-01T00:00:00Z', endTime: '2025-04-30T23:59:59Z', maxResults: '100', pageToken: '...', eventName: 'login_success', filters: 'doc_type==document', parameters: 'accounts:num_users' })"
|
|
103474
|
+
)
|
|
103475
|
+
});
|
|
103476
|
+
var outputSchema63 = z65.discriminatedUnion("success", [
|
|
103477
|
+
z65.object({
|
|
103478
|
+
success: z65.literal(true),
|
|
103479
|
+
status: z65.number(),
|
|
103480
|
+
data: z65.record(z65.string(), z65.unknown()),
|
|
103481
|
+
serviceAccountEmail: z65.string()
|
|
103482
|
+
}),
|
|
103483
|
+
z65.object({
|
|
103484
|
+
success: z65.literal(false),
|
|
103485
|
+
error: z65.string(),
|
|
103486
|
+
serviceAccountEmail: z65.string().optional()
|
|
103487
|
+
})
|
|
103488
|
+
]);
|
|
103489
|
+
var requestWithDelegationTool3 = new ConnectorTool({
|
|
103490
|
+
name: "request_with_delegation",
|
|
103491
|
+
description: "Call the Google Workspace Admin SDK Reports API on behalf of the specified Workspace admin via Domain-wide Delegation. Read-only operations only. Pass `subject` as the admin user email and `scopes` as one or both of ['https://www.googleapis.com/auth/admin.reports.audit.readonly', 'https://www.googleapis.com/auth/admin.reports.usage.readonly']. Paths are relative to https://admin.googleapis.com/admin/reports/v1 (e.g., '/activity/users/all/applications/login', '/usage/users/all/dates/2025-04-01'). Requires Domain-wide Delegation to be authorized for the service account in the Workspace admin console.",
|
|
103492
|
+
inputSchema: inputSchema63,
|
|
103493
|
+
outputSchema: outputSchema63,
|
|
103494
|
+
async execute({ connectionId, method, path: path5, subject, scopes, queryParams }, connections) {
|
|
103495
|
+
const connection = connections.find((c6) => c6.id === connectionId);
|
|
103496
|
+
if (!connection) {
|
|
103497
|
+
return {
|
|
103498
|
+
success: false,
|
|
103499
|
+
error: `Connection ${connectionId} not found`
|
|
103500
|
+
};
|
|
103501
|
+
}
|
|
103502
|
+
const keyJsonBase64 = parameters52.serviceAccountKeyJsonBase64.getValue(connection);
|
|
103503
|
+
let serviceAccount;
|
|
103504
|
+
try {
|
|
103505
|
+
serviceAccount = decodeServiceAccount4(keyJsonBase64);
|
|
103506
|
+
} catch (err) {
|
|
103507
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
103508
|
+
return {
|
|
103509
|
+
success: false,
|
|
103510
|
+
error: `Failed to decode service account key: ${msg}`
|
|
103511
|
+
};
|
|
103512
|
+
}
|
|
103513
|
+
const serviceAccountEmail = serviceAccount.client_email;
|
|
103514
|
+
console.log(
|
|
103515
|
+
`[connector-request] google-audit-log/${connection.name}: ${method} ${path5} subject=${subject}`
|
|
103516
|
+
);
|
|
103517
|
+
try {
|
|
103518
|
+
const { GoogleAuth } = await import("google-auth-library");
|
|
103519
|
+
const auth = new GoogleAuth({
|
|
103520
|
+
credentials: {
|
|
103521
|
+
client_email: serviceAccount.client_email,
|
|
103522
|
+
private_key: serviceAccount.private_key
|
|
103523
|
+
},
|
|
103524
|
+
scopes,
|
|
103525
|
+
clientOptions: { subject }
|
|
103526
|
+
});
|
|
103527
|
+
const token = await auth.getAccessToken();
|
|
103528
|
+
if (!token) {
|
|
103529
|
+
return {
|
|
103530
|
+
success: false,
|
|
103531
|
+
error: "Failed to obtain access token",
|
|
103532
|
+
serviceAccountEmail
|
|
103533
|
+
};
|
|
103534
|
+
}
|
|
103535
|
+
let url = `${BASE_URL30}${path5.startsWith("/") ? "" : "/"}${path5}`;
|
|
103536
|
+
if (queryParams) {
|
|
103537
|
+
const searchParams = new URLSearchParams(queryParams);
|
|
103538
|
+
url += `?${searchParams.toString()}`;
|
|
103539
|
+
}
|
|
103540
|
+
const controller = new AbortController();
|
|
103541
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS48);
|
|
103542
|
+
try {
|
|
103543
|
+
const response = await fetch(url, {
|
|
103544
|
+
method,
|
|
103545
|
+
headers: {
|
|
103546
|
+
Authorization: `Bearer ${token}`,
|
|
103547
|
+
"Content-Type": "application/json"
|
|
103548
|
+
},
|
|
103549
|
+
signal: controller.signal
|
|
103550
|
+
});
|
|
103551
|
+
const data = await response.json().catch(() => ({}));
|
|
103552
|
+
if (!response.ok) {
|
|
103553
|
+
const errorObj = data?.error;
|
|
103554
|
+
const errorMessage = errorObj?.message ?? (typeof data?.message === "string" ? data.message : `HTTP ${response.status} ${response.statusText}`);
|
|
103555
|
+
return {
|
|
103556
|
+
success: false,
|
|
103557
|
+
error: errorMessage,
|
|
103558
|
+
serviceAccountEmail
|
|
103559
|
+
};
|
|
103560
|
+
}
|
|
103561
|
+
return {
|
|
103562
|
+
success: true,
|
|
103563
|
+
status: response.status,
|
|
103564
|
+
data,
|
|
103565
|
+
serviceAccountEmail
|
|
103566
|
+
};
|
|
103567
|
+
} finally {
|
|
103568
|
+
clearTimeout(timeout);
|
|
103569
|
+
}
|
|
103570
|
+
} catch (err) {
|
|
103571
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
103572
|
+
return {
|
|
103573
|
+
success: false,
|
|
103574
|
+
error: msg,
|
|
103575
|
+
serviceAccountEmail
|
|
103576
|
+
};
|
|
103577
|
+
}
|
|
103578
|
+
}
|
|
103579
|
+
});
|
|
103580
|
+
|
|
103581
|
+
// ../connectors/src/connectors/google-audit-log/setup.ts
|
|
103582
|
+
var requestWithDelegationToolName3 = `google-audit-log-service-account_${requestWithDelegationTool3.name}`;
|
|
103583
|
+
var READONLY_SCOPES3 = '["https://www.googleapis.com/auth/admin.reports.audit.readonly", "https://www.googleapis.com/auth/admin.reports.usage.readonly"]';
|
|
103584
|
+
var googleAuditLogOnboarding = new ConnectorOnboarding({
|
|
103585
|
+
connectionSetupInstructions: {
|
|
103586
|
+
ja: `Google Audit Log\uFF08\u30B5\u30FC\u30D3\u30B9\u30A2\u30AB\u30A6\u30F3\u30C8\uFF09\u30B3\u30CD\u30AF\u30B7\u30E7\u30F3\u306E\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u3092\u884C\u3044\u307E\u3059\u3002Reports API \u306F Workspace \u7BA1\u7406\u8005\u6A29\u9650\u3092\u6301\u3064\u30E6\u30FC\u30B6\u30FC\u306B\u306A\u308A\u3059\u307E\u3057\u3066\u547C\u3073\u51FA\u3059\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\u30A2\u30AF\u30BB\u30B9\u306B\u4F7F\u3046\u7BA1\u7406\u8005\u30E6\u30FC\u30B6\u30FC\u3092\u30E6\u30FC\u30B6\u30FC\u304B\u3089\u805E\u304D\u3001Project Knowledge \u306B\u8A18\u9332\u3057\u307E\u3059\u3002
|
|
103587
|
+
|
|
103588
|
+
1. \`askUserQuestion\` \u3067\u5BFE\u8C61\u306E Workspace \u7BA1\u7406\u8005\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3092\u805E\u304F:
|
|
103589
|
+
- \`type\`: \`"freeText"\`
|
|
103590
|
+
- \`question\`: \u300CAudit Log / Usage Report \u306E\u53D6\u5F97\u306B\u4F7F\u3046 Google Workspace \u7BA1\u7406\u8005\u30E6\u30FC\u30B6\u30FC\u306E\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u8907\u6570\u53EF\u3001\u30AB\u30F3\u30DE\u533A\u5207\u308A\uFF09\u3002Reports API \u3078\u306E\u6A29\u9650\u3092\u6301\u3064\u30A2\u30AB\u30A6\u30F3\u30C8\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\u300D
|
|
103591
|
+
- \`placeholder\`: \`"admin@example.com"\`
|
|
103592
|
+
|
|
103593
|
+
2. \u30E6\u30FC\u30B6\u30FC\u304B\u3089\u53D7\u3051\u53D6\u3063\u305F\u6587\u5B57\u5217\u304B\u3089\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3092\u62BD\u51FA\u3059\u308B\u3002\u5404 \`<email>\` \u306B\u3064\u3044\u3066 \`${requestWithDelegationToolName3}\` \u3092\u4EE5\u4E0B\u306E\u5F15\u6570\u3067\u547C\u3073\u3001Domain-wide Delegation \u7D4C\u7531\u3067\u30A2\u30AF\u30BB\u30B9\u53EF\u80FD\u304B\u3092\u78BA\u8A8D\u3059\u308B:
|
|
103594
|
+
- \`method\`: \`"GET"\`
|
|
103595
|
+
- \`path\`: \`"/activity/users/all/applications/login"\`
|
|
103596
|
+
- \`subject\`: \`<email>\`
|
|
103597
|
+
- \`scopes\`: \`${READONLY_SCOPES3}\`
|
|
103598
|
+
- \`queryParams\`: \`{ "maxResults": "1" }\`
|
|
103599
|
+
|
|
103600
|
+
3. \u5931\u6557\u3057\u305F\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u304C\u3042\u308C\u3070\u3001\u30A8\u30E9\u30FC\u30EC\u30B9\u30DD\u30F3\u30B9\u306E \`serviceAccountEmail\` \u30D5\u30A3\u30FC\u30EB\u30C9\u304B\u3089\u30B5\u30FC\u30D3\u30B9\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3092\u53D6\u308A\u51FA\u3057\u3001\`askUserQuestion\` \u3067\u6B21\u306E\u9078\u629E\u80A2\u3092\u63D0\u793A\u3059\u308B\u3002\`question\` \u306B\u306F\u6B21\u306E\u6848\u5185\u6587\u3092\u542B\u3081\u308B: \u300C\u6B21\u306E\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3067\u306F Reports API \u306B\u30A2\u30AF\u30BB\u30B9\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F: {\u5931\u6557\u30A2\u30C9\u30EC\u30B9\u4E00\u89A7}\u3002\u30B5\u30FC\u30D3\u30B9\u30A2\u30AB\u30A6\u30F3\u30C8 \`<serviceAccountEmail>\` \u306E Domain-wide Delegation \u304C Workspace \u7BA1\u7406\u30B3\u30F3\u30BD\u30FC\u30EB\u3067\u627F\u8A8D\u3055\u308C\u3066\u304A\u308A\u3001\u5BFE\u8C61\u30B9\u30B3\u30FC\u30D7\uFF08\`admin.reports.audit.readonly\`, \`admin.reports.usage.readonly\`\uFF09\u304C\u6709\u52B9\u5316\u3055\u308C\u3066\u3044\u308B\u304B\u3001\u307E\u305F\u6307\u5B9A\u3057\u305F\u30E6\u30FC\u30B6\u30FC\u304C Workspace \u306E\u7BA1\u7406\u8005\u30ED\u30FC\u30EB\u3092\u6301\u3063\u3066\u3044\u308B\u304B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\uFF08[\u8A2D\u5B9A\u30AC\u30A4\u30C9](https://support.google.com/a/answer/162106)\uFF09\u300D\u3002
|
|
103601
|
+
- \`options\`: \`[{ label: "\u30C9\u30E1\u30A4\u30F3\u5168\u4F53\u306E\u59D4\u4EFB\u3092\u627F\u8A8D\u3057\u305F\u306E\u3067\u30EA\u30C8\u30E9\u30A4", value: "retry" }, { label: "\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3092\u5165\u529B\u3057\u76F4\u3059", value: "restart" }]\`
|
|
103602
|
+
- \u300C\u30EA\u30C8\u30E9\u30A4\u300D: \u76F4\u524D\u306E\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u30EA\u30B9\u30C8\u3067\u30B9\u30C6\u30C3\u30D7 2 \u3092\u518D\u5B9F\u884C
|
|
103603
|
+
- \u300C\u5165\u529B\u3057\u76F4\u3059\u300D: \u30B9\u30C6\u30C3\u30D7 1 \u304B\u3089\u518D\u5B9F\u884C
|
|
103604
|
+
|
|
103605
|
+
4. \u5168\u30A2\u30C9\u30EC\u30B9\u304C\u6210\u529F\u3057\u305F\u3089 \`finalizeSetup\` \u3092\u547C\u3076\u3002\`projectKnowledge\` \u306E \`#### \u30B9\u30B3\u30FC\u30D7\` \u7BC0\u306B\u5404\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3092 1 \u884C\u305A\u3064\u5217\u6319\u3059\u308B:
|
|
103606
|
+
- \`- subject: admin@example.com\`
|
|
103607
|
+
|
|
103608
|
+
#### \u5236\u7D04
|
|
103609
|
+
- \u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u4E2D\u306B\u53D6\u5F97\u3057\u305F\u76E3\u67FB\u30ED\u30B0\u672C\u6587\u3092\u8AAD\u307F\u53D6\u3089\u306A\u3044\u3053\u3068\u3002\u8A31\u53EF\u3055\u308C\u3066\u3044\u308B\u306E\u306F\u30B9\u30C6\u30C3\u30D7 2 \u306E\u30A2\u30AF\u30BB\u30B9\u78BA\u8A8D\u306E\u307F
|
|
103610
|
+
- \u30C4\u30FC\u30EB\u547C\u3073\u51FA\u3057\u306E\u9593\u306F 1 \u6587\u3060\u3051\u66F8\u3044\u3066\u5373\u6B21\u306E\u30C4\u30FC\u30EB\u547C\u3073\u51FA\u3057`,
|
|
103611
|
+
en: `Set up the Google Audit Log (Service Account) connection. The Reports API requires impersonating a user with Workspace admin privileges. Ask the user which admin user(s) to access, verify each via Domain-wide Delegation, and record them in Project Knowledge.
|
|
103612
|
+
|
|
103613
|
+
1. Call \`askUserQuestion\` to collect target admin emails:
|
|
103614
|
+
- \`type\`: \`"freeText"\`
|
|
103615
|
+
- \`question\`: "Enter the Google Workspace admin user email(s) to use for Audit Log / Usage Report access (comma-separated for multiple). The account must have the necessary admin privileges for the Reports API."
|
|
103616
|
+
- \`placeholder\`: \`"admin@example.com"\`
|
|
103617
|
+
|
|
103618
|
+
2. Extract individual emails from the response. For each \`<email>\`, verify Domain-wide Delegation access by calling \`${requestWithDelegationToolName3}\`:
|
|
103619
|
+
- \`method\`: \`"GET"\`
|
|
103620
|
+
- \`path\`: \`"/activity/users/all/applications/login"\`
|
|
103621
|
+
- \`subject\`: \`<email>\`
|
|
103622
|
+
- \`scopes\`: \`${READONLY_SCOPES3}\`
|
|
103623
|
+
- \`queryParams\`: \`{ "maxResults": "1" }\`
|
|
103624
|
+
|
|
103625
|
+
3. For any failed email, take \`serviceAccountEmail\` from the error response and call \`askUserQuestion\`. Include this guidance in \`question\`: "Could not access the Reports API for {failed emails}. Verify that Domain-wide Delegation for service account \`<serviceAccountEmail>\` is authorized in the Workspace admin console with the scopes \`admin.reports.audit.readonly\` and \`admin.reports.usage.readonly\`, and that the impersonated user has a Workspace admin role ([setup guide](https://support.google.com/a/answer/162106))".
|
|
103626
|
+
- \`options\`: \`[{ label: "Authorized Domain-wide Delegation \u2014 retry", value: "retry" }, { label: "Re-enter the email addresses", value: "restart" }]\`
|
|
103627
|
+
- On "retry" \u2192 re-run step 2 with the previously entered email list
|
|
103628
|
+
- On "Re-enter" \u2192 re-run step 1
|
|
103629
|
+
|
|
103630
|
+
4. Once every email succeeds, call \`finalizeSetup\`. Under \`#### \u30B9\u30B3\u30FC\u30D7\` in \`projectKnowledge\`, list each email on its own line:
|
|
103631
|
+
- \`- subject: admin@example.com\`
|
|
103632
|
+
|
|
103633
|
+
#### Constraints
|
|
103634
|
+
- Do NOT read audit log contents during setup. Only the access verification call in step 2 is permitted
|
|
103635
|
+
- Write at most 1 sentence between tool calls`
|
|
103636
|
+
},
|
|
103637
|
+
dataOverviewInstructions: {
|
|
103638
|
+
en: `Pick ONE admin email from \`#### \u30B9\u30B3\u30FC\u30D7\` (a \`- subject: <email>\` line) and use it as \`subject\` for every call below. Pass \`scopes: ${READONLY_SCOPES3}\` every time.
|
|
103639
|
+
|
|
103640
|
+
1. \`method=GET\`, \`path=/activity/users/all/applications/login\`, \`queryParams={ maxResults: "10" }\` to verify recent login activity events are available.
|
|
103641
|
+
2. \`method=GET\`, \`path=/activity/users/all/applications/admin\`, \`queryParams={ maxResults: "10" }\` to inspect recent admin console events.
|
|
103642
|
+
3. \`method=GET\`, \`path=/usage/dates/{YYYY-MM-DD}\` (use yesterday's date) to fetch a customer-level usage report sample.`,
|
|
103643
|
+
ja: `\`#### \u30B9\u30B3\u30FC\u30D7\` \u306E \`- subject: <email>\` \u884C\u304B\u3089 1 \u3064\u306E\u7BA1\u7406\u8005\u3092\u9078\u3073\u3001\u4EE5\u4E0B\u306E\u30B9\u30C6\u30C3\u30D7\u3067 \`subject\` \u5F15\u6570\u3068\u3057\u3066\u4F7F\u3063\u3066\u304F\u3060\u3055\u3044\u3002\`scopes\` \u306F\u6BCE\u56DE \`${READONLY_SCOPES3}\` \u3092\u6E21\u3057\u307E\u3059\u3002
|
|
103644
|
+
|
|
103645
|
+
1. \`method=GET\`\u3001\`path=/activity/users/all/applications/login\`\u3001\`queryParams={ maxResults: "10" }\` \u3067\u76F4\u8FD1\u306E\u30ED\u30B0\u30A4\u30F3\u30A2\u30AF\u30C6\u30A3\u30D3\u30C6\u30A3\u304C\u53D6\u5F97\u3067\u304D\u308B\u3053\u3068\u3092\u78BA\u8A8D
|
|
103646
|
+
2. \`method=GET\`\u3001\`path=/activity/users/all/applications/admin\`\u3001\`queryParams={ maxResults: "10" }\` \u3067\u76F4\u8FD1\u306E\u7BA1\u7406\u30B3\u30F3\u30BD\u30FC\u30EB\u64CD\u4F5C\u3092\u78BA\u8A8D
|
|
103647
|
+
3. \`method=GET\`\u3001\`path=/usage/dates/{YYYY-MM-DD}\`\uFF08\u524D\u65E5\u306E\u65E5\u4ED8\u3092\u4F7F\u7528\uFF09\u3067\u30AB\u30B9\u30BF\u30DE\u30FC\u5358\u4F4D\u306E\u5229\u7528\u30EC\u30DD\u30FC\u30C8\u30B5\u30F3\u30D7\u30EB\u3092\u53D6\u5F97`
|
|
103648
|
+
}
|
|
103649
|
+
});
|
|
103650
|
+
|
|
103651
|
+
// ../connectors/src/connectors/google-audit-log/index.ts
|
|
103652
|
+
var tools52 = { request_with_delegation: requestWithDelegationTool3 };
|
|
103653
|
+
var googleAuditLogConnector = new ConnectorPlugin({
|
|
103654
|
+
slug: "google-audit-log",
|
|
103655
|
+
authType: AUTH_TYPES.SERVICE_ACCOUNT,
|
|
103656
|
+
name: "Google Audit Log",
|
|
103657
|
+
description: "Connect to the Google Workspace Admin SDK Reports API for audit activities and usage reports using a service account with domain-wide delegation. Read-only.",
|
|
103658
|
+
iconUrl: "https://www.gstatic.com/images/branding/product/2x/admin_2020q4_48dp.png",
|
|
103659
|
+
parameters: parameters52,
|
|
103660
|
+
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
103661
|
+
categories: ["observability"],
|
|
103662
|
+
onboarding: googleAuditLogOnboarding,
|
|
103663
|
+
systemPrompt: {
|
|
103664
|
+
en: `### Tools
|
|
103665
|
+
|
|
103666
|
+
- \`google-audit-log-service-account_request_with_delegation\`: Call the Google Workspace Admin SDK Reports API on behalf of a Workspace admin via Domain-wide Delegation. Pass \`subject\` as the admin email; the token will be issued as that user. The set of admins this connection works with is recorded in the project knowledge under "#### \u30B9\u30B3\u30FC\u30D7" as \`- subject: <email>\` lines \u2014 read those and pick a subject before calling. Always pass \`scopes\`.
|
|
103667
|
+
|
|
103668
|
+
### OAuth Scopes (pass as \`scopes\` argument)
|
|
103669
|
+
|
|
103670
|
+
This connector is read-only. Pass one or both:
|
|
103671
|
+
|
|
103672
|
+
- \`https://www.googleapis.com/auth/admin.reports.audit.readonly\` \u2014 audit activity events (Activities API)
|
|
103673
|
+
- \`https://www.googleapis.com/auth/admin.reports.usage.readonly\` \u2014 usage reports (Customer/User Usage API)
|
|
103674
|
+
|
|
103675
|
+
The Workspace admin must have authorized these scopes for the service account in the Domain-wide Delegation settings, otherwise token issuance will fail with \`unauthorized_client\`. The impersonated \`subject\` user must also have an admin role with permission to view the relevant reports.
|
|
103676
|
+
|
|
103677
|
+
Per-endpoint reference: https://developers.google.com/admin-sdk/reports/v1/reference
|
|
103678
|
+
|
|
103679
|
+
### Reports API Reference
|
|
103680
|
+
|
|
103681
|
+
#### Activities (audit logs)
|
|
103682
|
+
- GET \`/activity/users/all/applications/{applicationName}\` \u2014 list activity events across all users for an application
|
|
103683
|
+
- GET \`/activity/users/{userKey}/applications/{applicationName}\` \u2014 list activity events for a specific user (\`userKey\` is the user's email or immutable ID)
|
|
103684
|
+
- GET \`/activity/users/all/applications/{applicationName}/watch\` \u2014 (not supported here, push notifications)
|
|
103685
|
+
|
|
103686
|
+
\`applicationName\` values include: \`access_transparency\`, \`admin\`, \`calendar\`, \`chat\`, \`chrome\`, \`context_aware_access\`, \`data_studio\`, \`drive\`, \`gcp\`, \`gplus\`, \`groups\`, \`groups_enterprise\`, \`jamboard\`, \`keep\`, \`login\`, \`meet\`, \`mobile\`, \`rules\`, \`saml\`, \`token\`, \`user_accounts\`, \`vault\`.
|
|
103687
|
+
|
|
103688
|
+
Common Activities query parameters (pass via \`queryParams\`):
|
|
103689
|
+
- \`startTime\` / \`endTime\` \u2014 ISO-8601 timestamps (e.g., \`2025-04-01T00:00:00Z\`)
|
|
103690
|
+
- \`eventName\` \u2014 filter by a specific event (e.g., \`login_success\`, \`login_failure\`, \`document_open\`)
|
|
103691
|
+
- \`filters\` \u2014 comma-separated event-parameter filters (e.g., \`doc_type==document\`)
|
|
103692
|
+
- \`actorIpAddress\` \u2014 filter by IP
|
|
103693
|
+
- \`maxResults\` \u2014 page size (default 1000)
|
|
103694
|
+
- \`pageToken\` \u2014 pagination token from previous response's \`nextPageToken\`
|
|
103695
|
+
|
|
103696
|
+
#### Usage reports
|
|
103697
|
+
- GET \`/usage/dates/{date}\` \u2014 customer-level usage on a specific date (\`YYYY-MM-DD\`)
|
|
103698
|
+
- GET \`/usage/users/all/dates/{date}\` \u2014 per-user usage on a specific date
|
|
103699
|
+
- GET \`/usage/users/{userKey}/dates/{date}\` \u2014 usage for a single user on a specific date
|
|
103700
|
+
|
|
103701
|
+
Common Usage query parameters:
|
|
103702
|
+
- \`parameters\` \u2014 comma-separated metric names (e.g., \`accounts:num_users,gmail:num_emails_received\`). See https://developers.google.com/admin-sdk/reports/v1/reference/usage-ref-appendix-a for the full list.
|
|
103703
|
+
- \`filters\` \u2014 filter expression on the same metric namespace
|
|
103704
|
+
- \`maxResults\` / \`pageToken\` \u2014 pagination
|
|
103705
|
+
|
|
103706
|
+
### Business Logic
|
|
103707
|
+
|
|
103708
|
+
The business logic type for this connector is "typescript". Write handler code using the connector SDK shown below. Do NOT access credentials directly from environment variables.
|
|
103709
|
+
|
|
103710
|
+
SDK methods (client created via \`connection(connectionId)\`):
|
|
103711
|
+
|
|
103712
|
+
- \`client.requestWithDelegation(path, { subject, scopes, init? })\` \u2014 call the Reports API as the impersonated Workspace admin. Pass the minimum scopes required.
|
|
103713
|
+
|
|
103714
|
+
The method returns a standard \`Response\`. Read the body with \`.json()\`. Same path conventions as the tool.
|
|
103715
|
+
|
|
103716
|
+
#### Example
|
|
103717
|
+
|
|
103718
|
+
\`\`\`ts
|
|
103719
|
+
import type { Context } from "hono";
|
|
103720
|
+
import { connection } from "@squadbase/vite-server/connectors/google-audit-log";
|
|
103721
|
+
|
|
103722
|
+
const reports = connection("<connectionId>");
|
|
103723
|
+
|
|
103724
|
+
const SUBJECT = "admin@example.com"; // pick from "#### \u30B9\u30B3\u30FC\u30D7" in project knowledge
|
|
103725
|
+
const AUDIT = ["https://www.googleapis.com/auth/admin.reports.audit.readonly"];
|
|
103726
|
+
|
|
103727
|
+
export default async function handler(c: Context) {
|
|
103728
|
+
const { startTime, endTime } = await c.req.json<{
|
|
103729
|
+
startTime: string;
|
|
103730
|
+
endTime: string;
|
|
103731
|
+
}>();
|
|
103732
|
+
|
|
103733
|
+
const params = new URLSearchParams({
|
|
103734
|
+
startTime,
|
|
103735
|
+
endTime,
|
|
103736
|
+
maxResults: "100",
|
|
103737
|
+
});
|
|
103738
|
+
const res = await reports.requestWithDelegation(
|
|
103739
|
+
\`/activity/users/all/applications/login?\${params}\`,
|
|
103740
|
+
{ subject: SUBJECT, scopes: AUDIT },
|
|
103741
|
+
);
|
|
103742
|
+
const data = (await res.json()) as { items?: { id: { time: string }; events?: { name: string }[]; actor?: { email?: string } }[] };
|
|
103743
|
+
|
|
103744
|
+
return c.json(
|
|
103745
|
+
(data.items ?? []).map((item) => ({
|
|
103746
|
+
time: item.id.time,
|
|
103747
|
+
actor: item.actor?.email,
|
|
103748
|
+
event: item.events?.[0]?.name,
|
|
103749
|
+
})),
|
|
103750
|
+
);
|
|
103751
|
+
}
|
|
103752
|
+
\`\`\``,
|
|
103753
|
+
ja: `### \u30C4\u30FC\u30EB
|
|
103754
|
+
|
|
103755
|
+
- \`google-audit-log-service-account_request_with_delegation\`: Domain-wide Delegation \u7D4C\u7531\u3067 Workspace \u7BA1\u7406\u8005\u306B\u306A\u308A\u3059\u307E\u3057\u3066 Google Workspace Admin SDK Reports API \u3092\u547C\u3073\u51FA\u3057\u307E\u3059\u3002\u4EE3\u7406\u5BFE\u8C61\u306E\u7BA1\u7406\u8005\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3092 \`subject\` \u3068\u3057\u3066\u6E21\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u30C8\u30FC\u30AF\u30F3\u306F\u305D\u306E\u30E6\u30FC\u30B6\u30FC\u3068\u3057\u3066\u767A\u884C\u3055\u308C\u307E\u3059\u3002\u3053\u306E\u30B3\u30CD\u30AF\u30B7\u30E7\u30F3\u304C\u5BFE\u8C61\u3068\u3059\u308B\u7BA1\u7406\u8005\u306F Project Knowledge \u306E "#### \u30B9\u30B3\u30FC\u30D7" \u306B \`- subject: <email>\` \u5F62\u5F0F\u3067\u8A18\u9332\u3055\u308C\u3066\u3044\u308B\u305F\u3081\u3001\u547C\u3073\u51FA\u3057\u524D\u306B\u305D\u3053\u3092\u8AAD\u3093\u3067 subject \u3092\u6C7A\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002\`scopes\` \u3082\u6BCE\u56DE\u6E21\u3057\u3066\u304F\u3060\u3055\u3044\u3002
|
|
103756
|
+
|
|
103757
|
+
### OAuth \u30B9\u30B3\u30FC\u30D7 (\`scopes\` \u5F15\u6570\u3067\u6E21\u3059)
|
|
103758
|
+
|
|
103759
|
+
\u3053\u306E\u30B3\u30CD\u30AF\u30BF\u30FC\u306F\u8AAD\u307F\u53D6\u308A\u5C02\u7528\u3067\u3059\u3002\u6B21\u306E\u3044\u305A\u308C\u304B\u3001\u307E\u305F\u306F\u4E21\u65B9\u3092\u6E21\u3057\u3066\u304F\u3060\u3055\u3044:
|
|
103760
|
+
|
|
103761
|
+
- \`https://www.googleapis.com/auth/admin.reports.audit.readonly\` \u2014 \u76E3\u67FB\u30A2\u30AF\u30C6\u30A3\u30D3\u30C6\u30A3\u30A4\u30D9\u30F3\u30C8 (Activities API)
|
|
103762
|
+
- \`https://www.googleapis.com/auth/admin.reports.usage.readonly\` \u2014 \u5229\u7528\u30EC\u30DD\u30FC\u30C8 (Customer/User Usage API)
|
|
103763
|
+
|
|
103764
|
+
\u8981\u6C42\u3059\u308B scope \u306F Workspace \u7BA1\u7406\u8005\u304C Domain-wide Delegation \u8A2D\u5B9A\u3067\u5F53\u8A72 Service Account \u306B\u5BFE\u3057\u3066\u627F\u8A8D\u3057\u3066\u3044\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\u627F\u8A8D\u3055\u308C\u3066\u3044\u306A\u3044\u5834\u5408\u30C8\u30FC\u30AF\u30F3\u767A\u884C\u304C \`unauthorized_client\` \u3067\u5931\u6557\u3057\u307E\u3059\u3002\u307E\u305F\u4EE3\u7406\u5BFE\u8C61\u306E \`subject\` \u30E6\u30FC\u30B6\u30FC\u304C\u8A72\u5F53\u30EC\u30DD\u30FC\u30C8\u3092\u95B2\u89A7\u3067\u304D\u308B\u7BA1\u7406\u8005\u30ED\u30FC\u30EB\u3092\u6301\u3063\u3066\u3044\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
|
|
103765
|
+
|
|
103766
|
+
\u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8\u5225\u306E\u6B63\u78BA\u306A\u30EA\u30D5\u30A1\u30EC\u30F3\u30B9: https://developers.google.com/admin-sdk/reports/v1/reference
|
|
103767
|
+
|
|
103768
|
+
### Reports API \u30EA\u30D5\u30A1\u30EC\u30F3\u30B9
|
|
103769
|
+
|
|
103770
|
+
#### Activities\uFF08\u76E3\u67FB\u30ED\u30B0\uFF09
|
|
103771
|
+
- GET \`/activity/users/all/applications/{applicationName}\` \u2014 \u6307\u5B9A\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u306B\u3064\u3044\u3066\u5168\u30E6\u30FC\u30B6\u30FC\u306E\u30A2\u30AF\u30C6\u30A3\u30D3\u30C6\u30A3\u30A4\u30D9\u30F3\u30C8\u3092\u4E00\u89A7
|
|
103772
|
+
- GET \`/activity/users/{userKey}/applications/{applicationName}\` \u2014 \u6307\u5B9A\u30E6\u30FC\u30B6\u30FC\uFF08\`userKey\` \u306F\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u307E\u305F\u306F\u4E0D\u5909ID\uFF09\u306E\u30A2\u30AF\u30C6\u30A3\u30D3\u30C6\u30A3
|
|
103773
|
+
|
|
103774
|
+
\`applicationName\` \u306E\u5024: \`access_transparency\`, \`admin\`, \`calendar\`, \`chat\`, \`chrome\`, \`context_aware_access\`, \`data_studio\`, \`drive\`, \`gcp\`, \`gplus\`, \`groups\`, \`groups_enterprise\`, \`jamboard\`, \`keep\`, \`login\`, \`meet\`, \`mobile\`, \`rules\`, \`saml\`, \`token\`, \`user_accounts\`, \`vault\`\u3002
|
|
103775
|
+
|
|
103776
|
+
\u4E3B\u306A\u30AF\u30A8\u30EA\u30D1\u30E9\u30E1\u30FC\u30BF\uFF08\`queryParams\` \u306B\u6E21\u3059\uFF09:
|
|
103777
|
+
- \`startTime\` / \`endTime\` \u2014 ISO-8601 \u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\uFF08\u4F8B: \`2025-04-01T00:00:00Z\`\uFF09
|
|
103778
|
+
- \`eventName\` \u2014 \u7279\u5B9A\u306E\u30A4\u30D9\u30F3\u30C8\u3067\u30D5\u30A3\u30EB\u30BF\uFF08\u4F8B: \`login_success\`, \`login_failure\`, \`document_open\`\uFF09
|
|
103779
|
+
- \`filters\` \u2014 \u30A4\u30D9\u30F3\u30C8\u30D1\u30E9\u30E1\u30FC\u30BF\u3067\u306E\u30D5\u30A3\u30EB\u30BF\uFF08\u30AB\u30F3\u30DE\u533A\u5207\u308A\u3001\u4F8B: \`doc_type==document\`\uFF09
|
|
103780
|
+
- \`actorIpAddress\` \u2014 IP\u30A2\u30C9\u30EC\u30B9\u3067\u30D5\u30A3\u30EB\u30BF
|
|
103781
|
+
- \`maxResults\` \u2014 \u30DA\u30FC\u30B8\u30B5\u30A4\u30BA\uFF08\u30C7\u30D5\u30A9\u30EB\u30C8 1000\uFF09
|
|
103782
|
+
- \`pageToken\` \u2014 \u30EC\u30B9\u30DD\u30F3\u30B9\u306E \`nextPageToken\` \u3092\u6E21\u3057\u3066\u30DA\u30FC\u30B8\u30F3\u30B0
|
|
103783
|
+
|
|
103784
|
+
#### Usage\uFF08\u5229\u7528\u30EC\u30DD\u30FC\u30C8\uFF09
|
|
103785
|
+
- GET \`/usage/dates/{date}\` \u2014 \u6307\u5B9A\u65E5\uFF08\`YYYY-MM-DD\`\uFF09\u306E\u30AB\u30B9\u30BF\u30DE\u30FC\u5358\u4F4D\u306E\u5229\u7528\u30EC\u30DD\u30FC\u30C8
|
|
103786
|
+
- GET \`/usage/users/all/dates/{date}\` \u2014 \u6307\u5B9A\u65E5\u306E\u5168\u30E6\u30FC\u30B6\u30FC\u5229\u7528\u30EC\u30DD\u30FC\u30C8
|
|
103787
|
+
- GET \`/usage/users/{userKey}/dates/{date}\` \u2014 \u6307\u5B9A\u65E5\u306E\u7279\u5B9A\u30E6\u30FC\u30B6\u30FC\u306E\u5229\u7528\u30EC\u30DD\u30FC\u30C8
|
|
103788
|
+
|
|
103789
|
+
\u4E3B\u306A\u30AF\u30A8\u30EA\u30D1\u30E9\u30E1\u30FC\u30BF:
|
|
103790
|
+
- \`parameters\` \u2014 \u53D6\u5F97\u3059\u308B\u30E1\u30C8\u30EA\u30AF\u30B9\u540D\uFF08\u30AB\u30F3\u30DE\u533A\u5207\u308A\u3001\u4F8B: \`accounts:num_users,gmail:num_emails_received\`\uFF09\u3002\u4E00\u89A7: https://developers.google.com/admin-sdk/reports/v1/reference/usage-ref-appendix-a
|
|
103791
|
+
- \`filters\` \u2014 \u30E1\u30C8\u30EA\u30AF\u30B9\u306B\u5BFE\u3059\u308B\u30D5\u30A3\u30EB\u30BF\u5F0F
|
|
103792
|
+
- \`maxResults\` / \`pageToken\` \u2014 \u30DA\u30FC\u30B8\u30F3\u30B0
|
|
103793
|
+
|
|
103794
|
+
### Business Logic
|
|
103795
|
+
|
|
103796
|
+
\u3053\u306E\u30B3\u30CD\u30AF\u30BF\u306E\u30D3\u30B8\u30CD\u30B9\u30ED\u30B8\u30C3\u30AF\u30BF\u30A4\u30D7\u306F "typescript" \u3067\u3059\u3002\u4EE5\u4E0B\u306B\u793A\u3059\u30B3\u30CD\u30AF\u30BFSDK\u3092\u4F7F\u7528\u3057\u3066\u30CF\u30F3\u30C9\u30E9\u30B3\u30FC\u30C9\u3092\u8A18\u8FF0\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u74B0\u5883\u5909\u6570\u304B\u3089\u76F4\u63A5\u8A8D\u8A3C\u60C5\u5831\u306B\u30A2\u30AF\u30BB\u30B9\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002
|
|
103797
|
+
|
|
103798
|
+
SDK\u30E1\u30BD\u30C3\u30C9 (\`connection(connectionId)\` \u3067\u4F5C\u6210\u3057\u305F\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8):
|
|
103799
|
+
|
|
103800
|
+
- \`client.requestWithDelegation(path, { subject, scopes, init? })\` \u2014 Domain-wide Delegation \u3067\u6307\u5B9A Workspace \u7BA1\u7406\u8005\u3068\u3057\u3066 Reports API \u3092\u547C\u3076\u3002\u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8\u306B\u5FC5\u8981\u306A\u6700\u5C0F scope \u3092\u6E21\u3059\u3002
|
|
103801
|
+
|
|
103802
|
+
\u30E1\u30BD\u30C3\u30C9\u306F\u6A19\u6E96\u306E \`Response\` \u3092\u8FD4\u3057\u307E\u3059\u3002\`response.json()\` \u3067\u30DC\u30C7\u30A3\u3092\u53D6\u5F97\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u30D1\u30B9\u306E\u66F8\u304D\u65B9\u306F\u30C4\u30FC\u30EB\u3068\u540C\u3058\u3002
|
|
103803
|
+
|
|
103804
|
+
#### Example
|
|
103805
|
+
|
|
103806
|
+
\`\`\`ts
|
|
103807
|
+
import type { Context } from "hono";
|
|
103808
|
+
import { connection } from "@squadbase/vite-server/connectors/google-audit-log";
|
|
103809
|
+
|
|
103810
|
+
const reports = connection("<connectionId>");
|
|
103811
|
+
|
|
103812
|
+
const SUBJECT = "admin@example.com"; // Project Knowledge \u306E "#### \u30B9\u30B3\u30FC\u30D7" \u304B\u3089\u9078\u3076
|
|
103813
|
+
const AUDIT = ["https://www.googleapis.com/auth/admin.reports.audit.readonly"];
|
|
103814
|
+
|
|
103815
|
+
export default async function handler(c: Context) {
|
|
103816
|
+
const { startTime, endTime } = await c.req.json<{
|
|
103817
|
+
startTime: string;
|
|
103818
|
+
endTime: string;
|
|
103819
|
+
}>();
|
|
103820
|
+
|
|
103821
|
+
const params = new URLSearchParams({
|
|
103822
|
+
startTime,
|
|
103823
|
+
endTime,
|
|
103824
|
+
maxResults: "100",
|
|
103825
|
+
});
|
|
103826
|
+
const res = await reports.requestWithDelegation(
|
|
103827
|
+
\`/activity/users/all/applications/login?\${params}\`,
|
|
103828
|
+
{ subject: SUBJECT, scopes: AUDIT },
|
|
103829
|
+
);
|
|
103830
|
+
const data = (await res.json()) as { items?: { id: { time: string }; events?: { name: string }[]; actor?: { email?: string } }[] };
|
|
103831
|
+
|
|
103832
|
+
return c.json(
|
|
103833
|
+
(data.items ?? []).map((item) => ({
|
|
103834
|
+
time: item.id.time,
|
|
103835
|
+
actor: item.actor?.email,
|
|
103836
|
+
event: item.events?.[0]?.name,
|
|
103837
|
+
})),
|
|
103838
|
+
);
|
|
103839
|
+
}
|
|
103840
|
+
\`\`\``
|
|
103841
|
+
},
|
|
103842
|
+
tools: tools52
|
|
103843
|
+
});
|
|
103844
|
+
|
|
103845
|
+
// ../connectors/src/connectors/linkedin-ads/tools/list-ad-accounts.ts
|
|
103846
|
+
import { z as z66 } from "zod";
|
|
103847
|
+
var BASE_URL31 = "https://api.linkedin.com/rest/";
|
|
103848
|
+
var LINKEDIN_VERSION = "202603";
|
|
103849
|
+
var REQUEST_TIMEOUT_MS49 = 6e4;
|
|
103328
103850
|
var cachedToken26 = null;
|
|
103329
103851
|
async function getProxyToken26(config) {
|
|
103330
103852
|
if (cachedToken26 && cachedToken26.expiresAt > Date.now() + 6e4) {
|
|
@@ -103356,32 +103878,32 @@ async function getProxyToken26(config) {
|
|
|
103356
103878
|
};
|
|
103357
103879
|
return data.token;
|
|
103358
103880
|
}
|
|
103359
|
-
var
|
|
103360
|
-
toolUseIntent:
|
|
103881
|
+
var inputSchema64 = z66.object({
|
|
103882
|
+
toolUseIntent: z66.string().optional().describe(
|
|
103361
103883
|
"Brief description of what you intend to accomplish with this tool call"
|
|
103362
103884
|
),
|
|
103363
|
-
connectionId:
|
|
103885
|
+
connectionId: z66.string().describe("ID of the LinkedIn Ads OAuth connection to use")
|
|
103364
103886
|
});
|
|
103365
|
-
var
|
|
103366
|
-
|
|
103367
|
-
success:
|
|
103368
|
-
adAccounts:
|
|
103369
|
-
|
|
103370
|
-
adAccountId:
|
|
103371
|
-
name:
|
|
103887
|
+
var outputSchema64 = z66.discriminatedUnion("success", [
|
|
103888
|
+
z66.object({
|
|
103889
|
+
success: z66.literal(true),
|
|
103890
|
+
adAccounts: z66.array(
|
|
103891
|
+
z66.object({
|
|
103892
|
+
adAccountId: z66.string(),
|
|
103893
|
+
name: z66.string()
|
|
103372
103894
|
})
|
|
103373
103895
|
)
|
|
103374
103896
|
}),
|
|
103375
|
-
|
|
103376
|
-
success:
|
|
103377
|
-
error:
|
|
103897
|
+
z66.object({
|
|
103898
|
+
success: z66.literal(false),
|
|
103899
|
+
error: z66.string()
|
|
103378
103900
|
})
|
|
103379
103901
|
]);
|
|
103380
103902
|
var listAdAccountsTool3 = new ConnectorTool({
|
|
103381
103903
|
name: "listAdAccounts",
|
|
103382
103904
|
description: "List LinkedIn ad accounts accessible with the current OAuth credentials.",
|
|
103383
|
-
inputSchema:
|
|
103384
|
-
outputSchema:
|
|
103905
|
+
inputSchema: inputSchema64,
|
|
103906
|
+
outputSchema: outputSchema64,
|
|
103385
103907
|
async execute({ connectionId }, connections, config) {
|
|
103386
103908
|
const connection = connections.find((c6) => c6.id === connectionId);
|
|
103387
103909
|
if (!connection) {
|
|
@@ -103397,7 +103919,7 @@ var listAdAccountsTool3 = new ConnectorTool({
|
|
|
103397
103919
|
const token = await getProxyToken26(config.oauthProxy);
|
|
103398
103920
|
const proxyUrl = `https://${config.oauthProxy.sandboxId}.${config.oauthProxy.previewBaseDomain}/_sqcore/connections/${connectionId}/request`;
|
|
103399
103921
|
const controller = new AbortController();
|
|
103400
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
103922
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS49);
|
|
103401
103923
|
try {
|
|
103402
103924
|
const response = await fetch(proxyUrl, {
|
|
103403
103925
|
method: "POST",
|
|
@@ -103406,7 +103928,7 @@ var listAdAccountsTool3 = new ConnectorTool({
|
|
|
103406
103928
|
Authorization: `Bearer ${token}`
|
|
103407
103929
|
},
|
|
103408
103930
|
body: JSON.stringify({
|
|
103409
|
-
url: `${
|
|
103931
|
+
url: `${BASE_URL31}adAccounts?q=search&search=(status:(values:List(ACTIVE)))&pageSize=100`,
|
|
103410
103932
|
method: "GET",
|
|
103411
103933
|
headers: {
|
|
103412
103934
|
"LinkedIn-Version": LINKEDIN_VERSION,
|
|
@@ -103475,7 +103997,7 @@ var linkedinAdsOnboarding = new ConnectorOnboarding({
|
|
|
103475
103997
|
});
|
|
103476
103998
|
|
|
103477
103999
|
// ../connectors/src/connectors/linkedin-ads/parameters.ts
|
|
103478
|
-
var
|
|
104000
|
+
var parameters53 = {
|
|
103479
104001
|
adAccountId: new ParameterDefinition({
|
|
103480
104002
|
slug: "ad-account-id",
|
|
103481
104003
|
name: "Ad Account ID",
|
|
@@ -103488,10 +104010,10 @@ var parameters52 = {
|
|
|
103488
104010
|
};
|
|
103489
104011
|
|
|
103490
104012
|
// ../connectors/src/connectors/linkedin-ads/tools/request.ts
|
|
103491
|
-
import { z as
|
|
103492
|
-
var
|
|
104013
|
+
import { z as z67 } from "zod";
|
|
104014
|
+
var BASE_URL32 = "https://api.linkedin.com/rest/";
|
|
103493
104015
|
var LINKEDIN_VERSION2 = "202603";
|
|
103494
|
-
var
|
|
104016
|
+
var REQUEST_TIMEOUT_MS50 = 6e4;
|
|
103495
104017
|
var cachedToken27 = null;
|
|
103496
104018
|
async function getProxyToken27(config) {
|
|
103497
104019
|
if (cachedToken27 && cachedToken27.expiresAt > Date.now() + 6e4) {
|
|
@@ -103523,27 +104045,27 @@ async function getProxyToken27(config) {
|
|
|
103523
104045
|
};
|
|
103524
104046
|
return data.token;
|
|
103525
104047
|
}
|
|
103526
|
-
var
|
|
103527
|
-
toolUseIntent:
|
|
104048
|
+
var inputSchema65 = z67.object({
|
|
104049
|
+
toolUseIntent: z67.string().optional().describe(
|
|
103528
104050
|
"Brief description of what you intend to accomplish with this tool call"
|
|
103529
104051
|
),
|
|
103530
|
-
connectionId:
|
|
103531
|
-
method:
|
|
103532
|
-
path:
|
|
104052
|
+
connectionId: z67.string().describe("ID of the LinkedIn Ads OAuth connection to use"),
|
|
104053
|
+
method: z67.enum(["GET", "POST", "DELETE"]).describe("HTTP method"),
|
|
104054
|
+
path: z67.string().describe(
|
|
103533
104055
|
"API path appended to https://api.linkedin.com/rest/ (e.g., 'adAccounts/{adAccountId}/adCampaigns'). {adAccountId} is automatically replaced with the connection's ad account ID."
|
|
103534
104056
|
),
|
|
103535
|
-
queryParams:
|
|
103536
|
-
body:
|
|
104057
|
+
queryParams: z67.record(z67.string(), z67.string()).optional().describe("Query parameters to append to the URL"),
|
|
104058
|
+
body: z67.record(z67.string(), z67.unknown()).optional().describe("Request body (JSON). For partial updates, use the patch format: { patch: { $set: { ... } } }")
|
|
103537
104059
|
});
|
|
103538
|
-
var
|
|
103539
|
-
|
|
103540
|
-
success:
|
|
103541
|
-
status:
|
|
103542
|
-
data:
|
|
104060
|
+
var outputSchema65 = z67.discriminatedUnion("success", [
|
|
104061
|
+
z67.object({
|
|
104062
|
+
success: z67.literal(true),
|
|
104063
|
+
status: z67.number(),
|
|
104064
|
+
data: z67.unknown()
|
|
103543
104065
|
}),
|
|
103544
|
-
|
|
103545
|
-
success:
|
|
103546
|
-
error:
|
|
104066
|
+
z67.object({
|
|
104067
|
+
success: z67.literal(false),
|
|
104068
|
+
error: z67.string()
|
|
103547
104069
|
})
|
|
103548
104070
|
]);
|
|
103549
104071
|
var requestTool36 = new ConnectorTool({
|
|
@@ -103552,8 +104074,8 @@ var requestTool36 = new ConnectorTool({
|
|
|
103552
104074
|
Authentication is handled automatically via OAuth proxy.
|
|
103553
104075
|
{adAccountId} in the path is automatically replaced with the connection's ad account ID.
|
|
103554
104076
|
Required headers (LinkedIn-Version, X-Restli-Protocol-Version) are set automatically.`,
|
|
103555
|
-
inputSchema:
|
|
103556
|
-
outputSchema:
|
|
104077
|
+
inputSchema: inputSchema65,
|
|
104078
|
+
outputSchema: outputSchema65,
|
|
103557
104079
|
async execute({ connectionId, method, path: path5, queryParams, body }, connections, config) {
|
|
103558
104080
|
const connection = connections.find((c6) => c6.id === connectionId);
|
|
103559
104081
|
if (!connection) {
|
|
@@ -103566,9 +104088,9 @@ Required headers (LinkedIn-Version, X-Restli-Protocol-Version) are set automatic
|
|
|
103566
104088
|
`[connector-request] linkedin-ads/${connection.name}: ${method} ${path5}`
|
|
103567
104089
|
);
|
|
103568
104090
|
try {
|
|
103569
|
-
const adAccountId =
|
|
104091
|
+
const adAccountId = parameters53.adAccountId.tryGetValue(connection) ?? "";
|
|
103570
104092
|
const resolvedPath = adAccountId ? path5.replace(/\{adAccountId\}/g, adAccountId) : path5;
|
|
103571
|
-
let url = `${
|
|
104093
|
+
let url = `${BASE_URL32}${resolvedPath}`;
|
|
103572
104094
|
if (queryParams && Object.keys(queryParams).length > 0) {
|
|
103573
104095
|
const params = new URLSearchParams(queryParams);
|
|
103574
104096
|
const separator = url.includes("?") ? "&" : "?";
|
|
@@ -103577,7 +104099,7 @@ Required headers (LinkedIn-Version, X-Restli-Protocol-Version) are set automatic
|
|
|
103577
104099
|
const token = await getProxyToken27(config.oauthProxy);
|
|
103578
104100
|
const proxyUrl = `https://${config.oauthProxy.sandboxId}.${config.oauthProxy.previewBaseDomain}/_sqcore/connections/${connectionId}/request`;
|
|
103579
104101
|
const controller = new AbortController();
|
|
103580
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
104102
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS50);
|
|
103581
104103
|
try {
|
|
103582
104104
|
const additionalHeaders = {
|
|
103583
104105
|
"LinkedIn-Version": LINKEDIN_VERSION2,
|
|
@@ -103621,7 +104143,7 @@ Required headers (LinkedIn-Version, X-Restli-Protocol-Version) are set automatic
|
|
|
103621
104143
|
});
|
|
103622
104144
|
|
|
103623
104145
|
// ../connectors/src/connectors/linkedin-ads/index.ts
|
|
103624
|
-
var
|
|
104146
|
+
var tools53 = {
|
|
103625
104147
|
request: requestTool36,
|
|
103626
104148
|
listAdAccounts: listAdAccountsTool3
|
|
103627
104149
|
};
|
|
@@ -103631,8 +104153,9 @@ var linkedinAdsConnector = new ConnectorPlugin({
|
|
|
103631
104153
|
name: "LinkedIn Ads",
|
|
103632
104154
|
description: "Connect to LinkedIn Ads (Marketing API) for advertising campaign data and reporting using OAuth.",
|
|
103633
104155
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/3x7xd9pVJkRFY7ADIg4ycq/b94720e34cb081e9ae45dfde799a59cd/LinkedIn_icon.svg.png",
|
|
103634
|
-
parameters:
|
|
104156
|
+
parameters: parameters53,
|
|
103635
104157
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
104158
|
+
categories: ["marketing"],
|
|
103636
104159
|
onboarding: linkedinAdsOnboarding,
|
|
103637
104160
|
proxyPolicy: {
|
|
103638
104161
|
allowlist: [
|
|
@@ -103830,7 +104353,7 @@ const res = await linkedin.request("adAccounts/{adAccountId}/adCampaigns?q=searc
|
|
|
103830
104353
|
const data = await res.json();
|
|
103831
104354
|
\`\`\``
|
|
103832
104355
|
},
|
|
103833
|
-
tools:
|
|
104356
|
+
tools: tools53,
|
|
103834
104357
|
async checkConnection(_params, config) {
|
|
103835
104358
|
const { proxyFetch } = config;
|
|
103836
104359
|
try {
|
|
@@ -103874,7 +104397,7 @@ var zendeskOnboarding = new ConnectorOnboarding({
|
|
|
103874
104397
|
});
|
|
103875
104398
|
|
|
103876
104399
|
// ../connectors/src/connectors/zendesk/parameters.ts
|
|
103877
|
-
var
|
|
104400
|
+
var parameters54 = {
|
|
103878
104401
|
subdomain: new ParameterDefinition({
|
|
103879
104402
|
slug: "subdomain",
|
|
103880
104403
|
name: "Zendesk Subdomain",
|
|
@@ -103905,30 +104428,30 @@ var parameters53 = {
|
|
|
103905
104428
|
};
|
|
103906
104429
|
|
|
103907
104430
|
// ../connectors/src/connectors/zendesk/tools/request.ts
|
|
103908
|
-
import { z as
|
|
103909
|
-
var
|
|
103910
|
-
var
|
|
103911
|
-
toolUseIntent:
|
|
104431
|
+
import { z as z68 } from "zod";
|
|
104432
|
+
var REQUEST_TIMEOUT_MS51 = 6e4;
|
|
104433
|
+
var inputSchema66 = z68.object({
|
|
104434
|
+
toolUseIntent: z68.string().optional().describe(
|
|
103912
104435
|
"Brief description of what you intend to accomplish with this tool call"
|
|
103913
104436
|
),
|
|
103914
|
-
connectionId:
|
|
103915
|
-
method:
|
|
104437
|
+
connectionId: z68.string().describe("ID of the Zendesk connection to use"),
|
|
104438
|
+
method: z68.enum(["GET", "POST", "PUT", "DELETE"]).describe(
|
|
103916
104439
|
"HTTP method. GET for reading, POST for creating/searching, PUT for updating, DELETE for removing."
|
|
103917
104440
|
),
|
|
103918
|
-
path:
|
|
104441
|
+
path: z68.string().describe(
|
|
103919
104442
|
"API path appended to https://{subdomain}.zendesk.com (e.g., '/api/v2/tickets.json', '/api/v2/search.json?query=status:open')"
|
|
103920
104443
|
),
|
|
103921
|
-
body:
|
|
104444
|
+
body: z68.record(z68.string(), z68.unknown()).optional().describe("Request body (JSON) for POST/PUT requests")
|
|
103922
104445
|
});
|
|
103923
|
-
var
|
|
103924
|
-
|
|
103925
|
-
success:
|
|
103926
|
-
status:
|
|
103927
|
-
data:
|
|
104446
|
+
var outputSchema66 = z68.discriminatedUnion("success", [
|
|
104447
|
+
z68.object({
|
|
104448
|
+
success: z68.literal(true),
|
|
104449
|
+
status: z68.number(),
|
|
104450
|
+
data: z68.record(z68.string(), z68.unknown())
|
|
103928
104451
|
}),
|
|
103929
|
-
|
|
103930
|
-
success:
|
|
103931
|
-
error:
|
|
104452
|
+
z68.object({
|
|
104453
|
+
success: z68.literal(false),
|
|
104454
|
+
error: z68.string()
|
|
103932
104455
|
})
|
|
103933
104456
|
]);
|
|
103934
104457
|
var requestTool37 = new ConnectorTool({
|
|
@@ -103937,8 +104460,8 @@ var requestTool37 = new ConnectorTool({
|
|
|
103937
104460
|
Authentication is handled automatically using email/token Basic auth.
|
|
103938
104461
|
Use this tool for all Zendesk API interactions: querying tickets, users, organizations, groups, and searching.
|
|
103939
104462
|
Zendesk uses cursor-based pagination with page[size] and page[after] parameters. All endpoints return .json suffix.`,
|
|
103940
|
-
inputSchema:
|
|
103941
|
-
outputSchema:
|
|
104463
|
+
inputSchema: inputSchema66,
|
|
104464
|
+
outputSchema: outputSchema66,
|
|
103942
104465
|
async execute({ connectionId, method, path: path5, body }, connections) {
|
|
103943
104466
|
const connection = connections.find((c6) => c6.id === connectionId);
|
|
103944
104467
|
if (!connection) {
|
|
@@ -103951,15 +104474,15 @@ Zendesk uses cursor-based pagination with page[size] and page[after] parameters.
|
|
|
103951
104474
|
`[connector-request] zendesk/${connection.name}: ${method} ${path5}`
|
|
103952
104475
|
);
|
|
103953
104476
|
try {
|
|
103954
|
-
const subdomain =
|
|
103955
|
-
const email =
|
|
103956
|
-
const apiToken =
|
|
104477
|
+
const subdomain = parameters54.subdomain.getValue(connection);
|
|
104478
|
+
const email = parameters54.email.getValue(connection);
|
|
104479
|
+
const apiToken = parameters54.apiToken.getValue(connection);
|
|
103957
104480
|
const authToken = Buffer.from(`${email}/token:${apiToken}`).toString(
|
|
103958
104481
|
"base64"
|
|
103959
104482
|
);
|
|
103960
104483
|
const url = `https://${subdomain}.zendesk.com${path5.startsWith("/") ? "" : "/"}${path5}`;
|
|
103961
104484
|
const controller = new AbortController();
|
|
103962
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
104485
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS51);
|
|
103963
104486
|
try {
|
|
103964
104487
|
const response = await fetch(url, {
|
|
103965
104488
|
method,
|
|
@@ -103987,15 +104510,16 @@ Zendesk uses cursor-based pagination with page[size] and page[after] parameters.
|
|
|
103987
104510
|
});
|
|
103988
104511
|
|
|
103989
104512
|
// ../connectors/src/connectors/zendesk/index.ts
|
|
103990
|
-
var
|
|
104513
|
+
var tools54 = { request: requestTool37 };
|
|
103991
104514
|
var zendeskConnector = new ConnectorPlugin({
|
|
103992
104515
|
slug: "zendesk",
|
|
103993
104516
|
authType: AUTH_TYPES.API_KEY,
|
|
103994
104517
|
name: "Zendesk",
|
|
103995
104518
|
description: "Connect to Zendesk Support for tickets, users, organizations, and customer service data using an API token.",
|
|
103996
104519
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/7e9Q7PwV6MJRJMj543m2gl/55385fae903ccfa1599e35be9d3516aa/zendesk-icon.svg",
|
|
103997
|
-
parameters:
|
|
104520
|
+
parameters: parameters54,
|
|
103998
104521
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
104522
|
+
categories: ["crm"],
|
|
103999
104523
|
onboarding: zendeskOnboarding,
|
|
104000
104524
|
systemPrompt: {
|
|
104001
104525
|
en: `### Tools
|
|
@@ -104171,12 +104695,12 @@ export default async function handler(c: Context) {
|
|
|
104171
104695
|
- \`type:user role:agent\` \u2014 \u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u30E6\u30FC\u30B6\u30FC
|
|
104172
104696
|
- \`type:organization {name}\` \u2014 \u540D\u524D\u304C\u4E00\u81F4\u3059\u308B\u7D44\u7E54`
|
|
104173
104697
|
},
|
|
104174
|
-
tools:
|
|
104698
|
+
tools: tools54
|
|
104175
104699
|
});
|
|
104176
104700
|
|
|
104177
104701
|
// ../connectors/src/connectors/zendesk-oauth/tools/request.ts
|
|
104178
|
-
import { z as
|
|
104179
|
-
var
|
|
104702
|
+
import { z as z69 } from "zod";
|
|
104703
|
+
var REQUEST_TIMEOUT_MS52 = 6e4;
|
|
104180
104704
|
var cachedToken28 = null;
|
|
104181
104705
|
async function getProxyToken28(config) {
|
|
104182
104706
|
if (cachedToken28 && cachedToken28.expiresAt > Date.now() + 6e4) {
|
|
@@ -104208,27 +104732,27 @@ async function getProxyToken28(config) {
|
|
|
104208
104732
|
};
|
|
104209
104733
|
return data.token;
|
|
104210
104734
|
}
|
|
104211
|
-
var
|
|
104212
|
-
toolUseIntent:
|
|
104735
|
+
var inputSchema67 = z69.object({
|
|
104736
|
+
toolUseIntent: z69.string().optional().describe(
|
|
104213
104737
|
"Brief description of what you intend to accomplish with this tool call"
|
|
104214
104738
|
),
|
|
104215
|
-
connectionId:
|
|
104216
|
-
method:
|
|
104217
|
-
path:
|
|
104739
|
+
connectionId: z69.string().describe("ID of the Zendesk OAuth connection to use"),
|
|
104740
|
+
method: z69.enum(["GET", "POST", "PUT", "DELETE"]).describe("HTTP method"),
|
|
104741
|
+
path: z69.string().describe(
|
|
104218
104742
|
"API path appended to the Zendesk base URL (e.g., '/api/v2/tickets.json', '/api/v2/search.json?query=status:open')"
|
|
104219
104743
|
),
|
|
104220
|
-
queryParams:
|
|
104221
|
-
body:
|
|
104744
|
+
queryParams: z69.record(z69.string(), z69.string()).optional().describe("Query parameters to append to the URL"),
|
|
104745
|
+
body: z69.record(z69.string(), z69.unknown()).optional().describe("Request body (JSON) for POST/PUT requests")
|
|
104222
104746
|
});
|
|
104223
|
-
var
|
|
104224
|
-
|
|
104225
|
-
success:
|
|
104226
|
-
status:
|
|
104227
|
-
data:
|
|
104747
|
+
var outputSchema67 = z69.discriminatedUnion("success", [
|
|
104748
|
+
z69.object({
|
|
104749
|
+
success: z69.literal(true),
|
|
104750
|
+
status: z69.number(),
|
|
104751
|
+
data: z69.record(z69.string(), z69.unknown())
|
|
104228
104752
|
}),
|
|
104229
|
-
|
|
104230
|
-
success:
|
|
104231
|
-
error:
|
|
104753
|
+
z69.object({
|
|
104754
|
+
success: z69.literal(false),
|
|
104755
|
+
error: z69.string()
|
|
104232
104756
|
})
|
|
104233
104757
|
]);
|
|
104234
104758
|
var requestTool38 = new ConnectorTool({
|
|
@@ -104237,8 +104761,8 @@ var requestTool38 = new ConnectorTool({
|
|
|
104237
104761
|
Authentication is handled automatically via OAuth proxy.
|
|
104238
104762
|
Use this tool for all Zendesk API interactions: querying tickets, users, organizations, groups, and searching.
|
|
104239
104763
|
Zendesk uses cursor-based pagination with page[size] and page[after] parameters. All endpoint paths end with .json.`,
|
|
104240
|
-
inputSchema:
|
|
104241
|
-
outputSchema:
|
|
104764
|
+
inputSchema: inputSchema67,
|
|
104765
|
+
outputSchema: outputSchema67,
|
|
104242
104766
|
async execute({ connectionId, method, path: path5, queryParams, body }, connections, config) {
|
|
104243
104767
|
const connection = connections.find((c6) => c6.id === connectionId);
|
|
104244
104768
|
if (!connection) {
|
|
@@ -104260,7 +104784,7 @@ Zendesk uses cursor-based pagination with page[size] and page[after] parameters.
|
|
|
104260
104784
|
const token = await getProxyToken28(config.oauthProxy);
|
|
104261
104785
|
const proxyUrl = `https://${config.oauthProxy.sandboxId}.${config.oauthProxy.previewBaseDomain}/_sqcore/connections/${connectionId}/request`;
|
|
104262
104786
|
const controller = new AbortController();
|
|
104263
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
104787
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS52);
|
|
104264
104788
|
try {
|
|
104265
104789
|
const response = await fetch(proxyUrl, {
|
|
104266
104790
|
method: "POST",
|
|
@@ -104329,18 +104853,19 @@ var zendeskOauthOnboarding = new ConnectorOnboarding({
|
|
|
104329
104853
|
});
|
|
104330
104854
|
|
|
104331
104855
|
// ../connectors/src/connectors/zendesk-oauth/parameters.ts
|
|
104332
|
-
var
|
|
104856
|
+
var parameters55 = {};
|
|
104333
104857
|
|
|
104334
104858
|
// ../connectors/src/connectors/zendesk-oauth/index.ts
|
|
104335
|
-
var
|
|
104859
|
+
var tools55 = { request: requestTool38 };
|
|
104336
104860
|
var zendeskOauthConnector = new ConnectorPlugin({
|
|
104337
104861
|
slug: "zendesk",
|
|
104338
104862
|
authType: AUTH_TYPES.OAUTH,
|
|
104339
104863
|
name: "Zendesk",
|
|
104340
104864
|
description: "Connect to Zendesk Support for tickets, users, organizations, and customer service data using OAuth.",
|
|
104341
104865
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/7e9Q7PwV6MJRJMj543m2gl/55385fae903ccfa1599e35be9d3516aa/zendesk-icon.svg",
|
|
104342
|
-
parameters:
|
|
104866
|
+
parameters: parameters55,
|
|
104343
104867
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
104868
|
+
categories: ["crm"],
|
|
104344
104869
|
onboarding: zendeskOauthOnboarding,
|
|
104345
104870
|
proxyPolicy: {
|
|
104346
104871
|
allowlist: [
|
|
@@ -104468,7 +104993,7 @@ const res = await zendesk.request("/api/v2/tickets.json?page[size]=10");
|
|
|
104468
104993
|
const data = await res.json();
|
|
104469
104994
|
\`\`\``
|
|
104470
104995
|
},
|
|
104471
|
-
tools:
|
|
104996
|
+
tools: tools55,
|
|
104472
104997
|
async checkConnection(_params, config) {
|
|
104473
104998
|
const { proxyFetch } = config;
|
|
104474
104999
|
try {
|
|
@@ -104507,7 +105032,7 @@ var intercomOnboarding = new ConnectorOnboarding({
|
|
|
104507
105032
|
});
|
|
104508
105033
|
|
|
104509
105034
|
// ../connectors/src/connectors/intercom/parameters.ts
|
|
104510
|
-
var
|
|
105035
|
+
var parameters56 = {
|
|
104511
105036
|
accessToken: new ParameterDefinition({
|
|
104512
105037
|
slug: "access-token",
|
|
104513
105038
|
name: "Access Token",
|
|
@@ -104520,32 +105045,32 @@ var parameters55 = {
|
|
|
104520
105045
|
};
|
|
104521
105046
|
|
|
104522
105047
|
// ../connectors/src/connectors/intercom/tools/request.ts
|
|
104523
|
-
import { z as
|
|
104524
|
-
var
|
|
105048
|
+
import { z as z70 } from "zod";
|
|
105049
|
+
var BASE_URL33 = "https://api.intercom.io";
|
|
104525
105050
|
var API_VERSION = "2.11";
|
|
104526
|
-
var
|
|
104527
|
-
var
|
|
104528
|
-
toolUseIntent:
|
|
105051
|
+
var REQUEST_TIMEOUT_MS53 = 6e4;
|
|
105052
|
+
var inputSchema68 = z70.object({
|
|
105053
|
+
toolUseIntent: z70.string().optional().describe(
|
|
104529
105054
|
"Brief description of what you intend to accomplish with this tool call"
|
|
104530
105055
|
),
|
|
104531
|
-
connectionId:
|
|
104532
|
-
method:
|
|
105056
|
+
connectionId: z70.string().describe("ID of the Intercom connection to use"),
|
|
105057
|
+
method: z70.enum(["GET", "POST", "PUT", "DELETE"]).describe(
|
|
104533
105058
|
"HTTP method. GET for reading, POST for creating/searching, PUT for updating, DELETE for removing."
|
|
104534
105059
|
),
|
|
104535
|
-
path:
|
|
105060
|
+
path: z70.string().describe(
|
|
104536
105061
|
"API path appended to https://api.intercom.io (e.g., '/contacts', '/conversations', '/contacts/search')"
|
|
104537
105062
|
),
|
|
104538
|
-
body:
|
|
105063
|
+
body: z70.record(z70.string(), z70.unknown()).optional().describe("Request body (JSON) for POST/PUT requests")
|
|
104539
105064
|
});
|
|
104540
|
-
var
|
|
104541
|
-
|
|
104542
|
-
success:
|
|
104543
|
-
status:
|
|
104544
|
-
data:
|
|
105065
|
+
var outputSchema68 = z70.discriminatedUnion("success", [
|
|
105066
|
+
z70.object({
|
|
105067
|
+
success: z70.literal(true),
|
|
105068
|
+
status: z70.number(),
|
|
105069
|
+
data: z70.record(z70.string(), z70.unknown())
|
|
104545
105070
|
}),
|
|
104546
|
-
|
|
104547
|
-
success:
|
|
104548
|
-
error:
|
|
105071
|
+
z70.object({
|
|
105072
|
+
success: z70.literal(false),
|
|
105073
|
+
error: z70.string()
|
|
104549
105074
|
})
|
|
104550
105075
|
]);
|
|
104551
105076
|
var requestTool39 = new ConnectorTool({
|
|
@@ -104556,8 +105081,8 @@ Use this tool for all Intercom API interactions: querying contacts, conversation
|
|
|
104556
105081
|
Intercom uses cursor-based pagination with the starting_after parameter from pages.next.starting_after in the response.
|
|
104557
105082
|
Search endpoints (contacts/search, conversations/search) use POST with a query object in the body.
|
|
104558
105083
|
The Intercom-Version header is set to 2.11 automatically.`,
|
|
104559
|
-
inputSchema:
|
|
104560
|
-
outputSchema:
|
|
105084
|
+
inputSchema: inputSchema68,
|
|
105085
|
+
outputSchema: outputSchema68,
|
|
104561
105086
|
async execute({ connectionId, method, path: path5, body }, connections) {
|
|
104562
105087
|
const connection = connections.find((c6) => c6.id === connectionId);
|
|
104563
105088
|
if (!connection) {
|
|
@@ -104570,10 +105095,10 @@ The Intercom-Version header is set to 2.11 automatically.`,
|
|
|
104570
105095
|
`[connector-request] intercom/${connection.name}: ${method} ${path5}`
|
|
104571
105096
|
);
|
|
104572
105097
|
try {
|
|
104573
|
-
const accessToken =
|
|
104574
|
-
const url = `${
|
|
105098
|
+
const accessToken = parameters56.accessToken.getValue(connection);
|
|
105099
|
+
const url = `${BASE_URL33}${path5.startsWith("/") ? "" : "/"}${path5}`;
|
|
104575
105100
|
const controller = new AbortController();
|
|
104576
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
105101
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS53);
|
|
104577
105102
|
try {
|
|
104578
105103
|
const response = await fetch(url, {
|
|
104579
105104
|
method,
|
|
@@ -104604,15 +105129,16 @@ The Intercom-Version header is set to 2.11 automatically.`,
|
|
|
104604
105129
|
});
|
|
104605
105130
|
|
|
104606
105131
|
// ../connectors/src/connectors/intercom/index.ts
|
|
104607
|
-
var
|
|
105132
|
+
var tools56 = { request: requestTool39 };
|
|
104608
105133
|
var intercomConnector = new ConnectorPlugin({
|
|
104609
105134
|
slug: "intercom",
|
|
104610
105135
|
authType: AUTH_TYPES.API_KEY,
|
|
104611
105136
|
name: "Intercom",
|
|
104612
105137
|
description: "Connect to Intercom for contacts, conversations, companies, and customer engagement data using an Access Token.",
|
|
104613
105138
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/sb2cRMGClpId0LKiSqsok/ae90a0849f21ffe3faf73e04a5676b45/intercom.svg",
|
|
104614
|
-
parameters:
|
|
105139
|
+
parameters: parameters56,
|
|
104615
105140
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
105141
|
+
categories: ["crm"],
|
|
104616
105142
|
onboarding: intercomOnboarding,
|
|
104617
105143
|
systemPrompt: {
|
|
104618
105144
|
en: `### Tools
|
|
@@ -104808,13 +105334,13 @@ export default async function handler(c: Context) {
|
|
|
104808
105334
|
- \u8AD6\u7406\u6F14\u7B97\u5B50: \`AND\`, \`OR\`\uFF08\u8907\u6570\u30D5\u30A3\u30EB\u30BF\u306E\u7D50\u5408\uFF09
|
|
104809
105335
|
- \u65E5\u4ED8\u30D5\u30A3\u30FC\u30EB\u30C9\u306FUnix\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u3092\u4F7F\u7528`
|
|
104810
105336
|
},
|
|
104811
|
-
tools:
|
|
105337
|
+
tools: tools56
|
|
104812
105338
|
});
|
|
104813
105339
|
|
|
104814
105340
|
// ../connectors/src/connectors/intercom-oauth/tools/request.ts
|
|
104815
|
-
import { z as
|
|
104816
|
-
var
|
|
104817
|
-
var
|
|
105341
|
+
import { z as z71 } from "zod";
|
|
105342
|
+
var BASE_URL34 = "https://api.intercom.io";
|
|
105343
|
+
var REQUEST_TIMEOUT_MS54 = 6e4;
|
|
104818
105344
|
var cachedToken29 = null;
|
|
104819
105345
|
async function getProxyToken29(config) {
|
|
104820
105346
|
if (cachedToken29 && cachedToken29.expiresAt > Date.now() + 6e4) {
|
|
@@ -104846,27 +105372,27 @@ async function getProxyToken29(config) {
|
|
|
104846
105372
|
};
|
|
104847
105373
|
return data.token;
|
|
104848
105374
|
}
|
|
104849
|
-
var
|
|
104850
|
-
toolUseIntent:
|
|
105375
|
+
var inputSchema69 = z71.object({
|
|
105376
|
+
toolUseIntent: z71.string().optional().describe(
|
|
104851
105377
|
"Brief description of what you intend to accomplish with this tool call"
|
|
104852
105378
|
),
|
|
104853
|
-
connectionId:
|
|
104854
|
-
method:
|
|
104855
|
-
path:
|
|
105379
|
+
connectionId: z71.string().describe("ID of the Intercom OAuth connection to use"),
|
|
105380
|
+
method: z71.enum(["GET", "POST", "PUT", "DELETE"]).describe("HTTP method"),
|
|
105381
|
+
path: z71.string().describe(
|
|
104856
105382
|
"API path appended to https://api.intercom.io (e.g., '/contacts', '/conversations', '/contacts/search')"
|
|
104857
105383
|
),
|
|
104858
|
-
queryParams:
|
|
104859
|
-
body:
|
|
105384
|
+
queryParams: z71.record(z71.string(), z71.string()).optional().describe("Query parameters to append to the URL"),
|
|
105385
|
+
body: z71.record(z71.string(), z71.unknown()).optional().describe("Request body (JSON) for POST/PUT requests")
|
|
104860
105386
|
});
|
|
104861
|
-
var
|
|
104862
|
-
|
|
104863
|
-
success:
|
|
104864
|
-
status:
|
|
104865
|
-
data:
|
|
105387
|
+
var outputSchema69 = z71.discriminatedUnion("success", [
|
|
105388
|
+
z71.object({
|
|
105389
|
+
success: z71.literal(true),
|
|
105390
|
+
status: z71.number(),
|
|
105391
|
+
data: z71.record(z71.string(), z71.unknown())
|
|
104866
105392
|
}),
|
|
104867
|
-
|
|
104868
|
-
success:
|
|
104869
|
-
error:
|
|
105393
|
+
z71.object({
|
|
105394
|
+
success: z71.literal(false),
|
|
105395
|
+
error: z71.string()
|
|
104870
105396
|
})
|
|
104871
105397
|
]);
|
|
104872
105398
|
var requestTool40 = new ConnectorTool({
|
|
@@ -104876,8 +105402,8 @@ Authentication is handled automatically via OAuth proxy.
|
|
|
104876
105402
|
The Intercom-Version header (2.11) is set automatically.
|
|
104877
105403
|
Use this tool for all Intercom API interactions: querying contacts, conversations, companies, articles, tags, and segments.
|
|
104878
105404
|
Search endpoints (contacts/search, conversations/search) use POST with a query object in the body.`,
|
|
104879
|
-
inputSchema:
|
|
104880
|
-
outputSchema:
|
|
105405
|
+
inputSchema: inputSchema69,
|
|
105406
|
+
outputSchema: outputSchema69,
|
|
104881
105407
|
async execute({ connectionId, method, path: path5, queryParams, body }, connections, config) {
|
|
104882
105408
|
const connection = connections.find((c6) => c6.id === connectionId);
|
|
104883
105409
|
if (!connection) {
|
|
@@ -104890,7 +105416,7 @@ Search endpoints (contacts/search, conversations/search) use POST with a query o
|
|
|
104890
105416
|
`[connector-request] intercom-oauth/${connection.name}: ${method} ${path5}`
|
|
104891
105417
|
);
|
|
104892
105418
|
try {
|
|
104893
|
-
let url = `${
|
|
105419
|
+
let url = `${BASE_URL34}${path5.startsWith("/") ? "" : "/"}${path5}`;
|
|
104894
105420
|
if (queryParams) {
|
|
104895
105421
|
const searchParams = new URLSearchParams(queryParams);
|
|
104896
105422
|
const separator = url.includes("?") ? "&" : "?";
|
|
@@ -104899,7 +105425,7 @@ Search endpoints (contacts/search, conversations/search) use POST with a query o
|
|
|
104899
105425
|
const token = await getProxyToken29(config.oauthProxy);
|
|
104900
105426
|
const proxyUrl = `https://${config.oauthProxy.sandboxId}.${config.oauthProxy.previewBaseDomain}/_sqcore/connections/${connectionId}/request`;
|
|
104901
105427
|
const controller = new AbortController();
|
|
104902
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
105428
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS54);
|
|
104903
105429
|
try {
|
|
104904
105430
|
const response = await fetch(proxyUrl, {
|
|
104905
105431
|
method: "POST",
|
|
@@ -104969,18 +105495,19 @@ var intercomOauthOnboarding = new ConnectorOnboarding({
|
|
|
104969
105495
|
});
|
|
104970
105496
|
|
|
104971
105497
|
// ../connectors/src/connectors/intercom-oauth/parameters.ts
|
|
104972
|
-
var
|
|
105498
|
+
var parameters57 = {};
|
|
104973
105499
|
|
|
104974
105500
|
// ../connectors/src/connectors/intercom-oauth/index.ts
|
|
104975
|
-
var
|
|
105501
|
+
var tools57 = { request: requestTool40 };
|
|
104976
105502
|
var intercomOauthConnector = new ConnectorPlugin({
|
|
104977
105503
|
slug: "intercom",
|
|
104978
105504
|
authType: AUTH_TYPES.OAUTH,
|
|
104979
105505
|
name: "Intercom",
|
|
104980
105506
|
description: "Connect to Intercom for contacts, conversations, companies, and customer engagement data using OAuth.",
|
|
104981
105507
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/sb2cRMGClpId0LKiSqsok/ae90a0849f21ffe3faf73e04a5676b45/intercom.svg",
|
|
104982
|
-
parameters:
|
|
105508
|
+
parameters: parameters57,
|
|
104983
105509
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
105510
|
+
categories: ["crm"],
|
|
104984
105511
|
onboarding: intercomOauthOnboarding,
|
|
104985
105512
|
proxyPolicy: {
|
|
104986
105513
|
allowlist: [
|
|
@@ -105108,7 +105635,7 @@ const res = await intercom.request("/contacts?per_page=10");
|
|
|
105108
105635
|
const data = await res.json();
|
|
105109
105636
|
\`\`\``
|
|
105110
105637
|
},
|
|
105111
|
-
tools:
|
|
105638
|
+
tools: tools57,
|
|
105112
105639
|
async checkConnection(_params, config) {
|
|
105113
105640
|
const { proxyFetch } = config;
|
|
105114
105641
|
try {
|
|
@@ -105153,7 +105680,7 @@ NOTE: The Query API endpoints (insights, funnels, retention) require a bookmark_
|
|
|
105153
105680
|
});
|
|
105154
105681
|
|
|
105155
105682
|
// ../connectors/src/connectors/mixpanel/parameters.ts
|
|
105156
|
-
var
|
|
105683
|
+
var parameters58 = {
|
|
105157
105684
|
serviceAccountUsername: new ParameterDefinition({
|
|
105158
105685
|
slug: "service-account-username",
|
|
105159
105686
|
name: "Service Account Username",
|
|
@@ -105193,35 +105720,35 @@ var parameters57 = {
|
|
|
105193
105720
|
};
|
|
105194
105721
|
|
|
105195
105722
|
// ../connectors/src/connectors/mixpanel/tools/request.ts
|
|
105196
|
-
import { z as
|
|
105197
|
-
var
|
|
105198
|
-
var
|
|
105199
|
-
toolUseIntent:
|
|
105723
|
+
import { z as z72 } from "zod";
|
|
105724
|
+
var REQUEST_TIMEOUT_MS55 = 6e4;
|
|
105725
|
+
var inputSchema70 = z72.object({
|
|
105726
|
+
toolUseIntent: z72.string().optional().describe(
|
|
105200
105727
|
"Brief description of what you intend to accomplish with this tool call"
|
|
105201
105728
|
),
|
|
105202
|
-
connectionId:
|
|
105203
|
-
method:
|
|
105729
|
+
connectionId: z72.string().describe("ID of the Mixpanel connection to use"),
|
|
105730
|
+
method: z72.enum(["GET", "POST"]).describe(
|
|
105204
105731
|
"HTTP method. GET for most Query API and Export endpoints. POST for Engage (profile query) endpoint."
|
|
105205
105732
|
),
|
|
105206
|
-
url:
|
|
105733
|
+
url: z72.string().describe(
|
|
105207
105734
|
"Full URL including query parameters (e.g., 'https://mixpanel.com/api/query/insights?project_id=12345&bookmark_id=67890'). The project_id query parameter is added automatically if not present."
|
|
105208
105735
|
),
|
|
105209
|
-
body:
|
|
105736
|
+
body: z72.string().optional().describe(
|
|
105210
105737
|
"Request body for POST requests. Use application/x-www-form-urlencoded format for the Engage endpoint, or JSON string for other POST endpoints."
|
|
105211
105738
|
),
|
|
105212
|
-
contentType:
|
|
105739
|
+
contentType: z72.enum(["application/json", "application/x-www-form-urlencoded"]).optional().describe(
|
|
105213
105740
|
"Content-Type header. Defaults to application/json. Use application/x-www-form-urlencoded for the Engage endpoint."
|
|
105214
105741
|
)
|
|
105215
105742
|
});
|
|
105216
|
-
var
|
|
105217
|
-
|
|
105218
|
-
success:
|
|
105219
|
-
status:
|
|
105220
|
-
data:
|
|
105743
|
+
var outputSchema70 = z72.discriminatedUnion("success", [
|
|
105744
|
+
z72.object({
|
|
105745
|
+
success: z72.literal(true),
|
|
105746
|
+
status: z72.number(),
|
|
105747
|
+
data: z72.unknown()
|
|
105221
105748
|
}),
|
|
105222
|
-
|
|
105223
|
-
success:
|
|
105224
|
-
error:
|
|
105749
|
+
z72.object({
|
|
105750
|
+
success: z72.literal(false),
|
|
105751
|
+
error: z72.string()
|
|
105225
105752
|
})
|
|
105226
105753
|
]);
|
|
105227
105754
|
var requestTool41 = new ConnectorTool({
|
|
@@ -105242,8 +105769,8 @@ Key endpoints:
|
|
|
105242
105769
|
- GET {exportBase}?from_date=YYYY-MM-DD&to_date=YYYY-MM-DD \u2014 Export raw events (JSONL)
|
|
105243
105770
|
|
|
105244
105771
|
Rate limit: 60 queries/hour, 5 concurrent queries for Query API.`,
|
|
105245
|
-
inputSchema:
|
|
105246
|
-
outputSchema:
|
|
105772
|
+
inputSchema: inputSchema70,
|
|
105773
|
+
outputSchema: outputSchema70,
|
|
105247
105774
|
async execute({ connectionId, method, url, body, contentType }, connections) {
|
|
105248
105775
|
const connection = connections.find((c6) => c6.id === connectionId);
|
|
105249
105776
|
if (!connection) {
|
|
@@ -105256,9 +105783,9 @@ Rate limit: 60 queries/hour, 5 concurrent queries for Query API.`,
|
|
|
105256
105783
|
`[connector-request] mixpanel/${connection.name}: ${method} ${url}`
|
|
105257
105784
|
);
|
|
105258
105785
|
try {
|
|
105259
|
-
const username =
|
|
105260
|
-
const secret =
|
|
105261
|
-
const projectId =
|
|
105786
|
+
const username = parameters58.serviceAccountUsername.getValue(connection);
|
|
105787
|
+
const secret = parameters58.serviceAccountSecret.getValue(connection);
|
|
105788
|
+
const projectId = parameters58.projectId.getValue(connection);
|
|
105262
105789
|
const authToken = btoa(`${username}:${secret}`);
|
|
105263
105790
|
let finalUrl = url;
|
|
105264
105791
|
const urlObj = new URL(url);
|
|
@@ -105267,7 +105794,7 @@ Rate limit: 60 queries/hour, 5 concurrent queries for Query API.`,
|
|
|
105267
105794
|
finalUrl = urlObj.toString();
|
|
105268
105795
|
}
|
|
105269
105796
|
const controller = new AbortController();
|
|
105270
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
105797
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS55);
|
|
105271
105798
|
try {
|
|
105272
105799
|
const headers = {
|
|
105273
105800
|
Authorization: `Basic ${authToken}`,
|
|
@@ -105318,15 +105845,16 @@ Rate limit: 60 queries/hour, 5 concurrent queries for Query API.`,
|
|
|
105318
105845
|
});
|
|
105319
105846
|
|
|
105320
105847
|
// ../connectors/src/connectors/mixpanel/index.ts
|
|
105321
|
-
var
|
|
105848
|
+
var tools58 = { request: requestTool41 };
|
|
105322
105849
|
var mixpanelConnector = new ConnectorPlugin({
|
|
105323
105850
|
slug: "mixpanel",
|
|
105324
105851
|
authType: AUTH_TYPES.API_KEY,
|
|
105325
105852
|
name: "Mixpanel",
|
|
105326
105853
|
description: "Connect to Mixpanel for product analytics, event tracking, and user behavior analysis.",
|
|
105327
105854
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/7ykz0vNRjMqvTVrxS8wsj1/b2cd795be5b373877dee77cc6147c758/images__3_.png",
|
|
105328
|
-
parameters:
|
|
105855
|
+
parameters: parameters58,
|
|
105329
105856
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
105857
|
+
categories: ["marketing"],
|
|
105330
105858
|
onboarding: mixpanelOnboarding,
|
|
105331
105859
|
systemPrompt: {
|
|
105332
105860
|
en: `### Tools
|
|
@@ -105448,7 +105976,7 @@ export default async function handler(c: Context) {
|
|
|
105448
105976
|
|
|
105449
105977
|
\u91CD\u8981: Insights\u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8\u306F\u3001Mixpanel UI\u306E\u65E2\u5B58\u30EC\u30DD\u30FC\u30C8\u306Ebookmark_id\u304C\u5FC5\u8981\u3067\u3059\u3002\u30A2\u30C9\u30DB\u30C3\u30AF\u306A\u30A4\u30D9\u30F3\u30C8\u5206\u6790\u306B\u306F\u3001Export API\u3067\u751F\u30A4\u30D9\u30F3\u30C8\u3092\u53D6\u5F97\u3057\u3001\u30B3\u30FC\u30C9\u4E0A\u3067\u96C6\u8A08\u3057\u3066\u304F\u3060\u3055\u3044\u3002Export API\u304C\u6700\u3082\u67D4\u8EDF\u3067\u5E83\u304F\u30A2\u30AF\u30BB\u30B9\u53EF\u80FD\u306A\u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8\u3067\u3059\u3002`
|
|
105450
105978
|
},
|
|
105451
|
-
tools:
|
|
105979
|
+
tools: tools58
|
|
105452
105980
|
});
|
|
105453
105981
|
|
|
105454
105982
|
// ../connectors/src/connectors/grafana/setup.ts
|
|
@@ -105464,7 +105992,7 @@ var grafanaOnboarding = new ConnectorOnboarding({
|
|
|
105464
105992
|
});
|
|
105465
105993
|
|
|
105466
105994
|
// ../connectors/src/connectors/grafana/parameters.ts
|
|
105467
|
-
var
|
|
105995
|
+
var parameters59 = {
|
|
105468
105996
|
url: new ParameterDefinition({
|
|
105469
105997
|
slug: "url",
|
|
105470
105998
|
name: "Grafana URL",
|
|
@@ -105486,30 +106014,30 @@ var parameters58 = {
|
|
|
105486
106014
|
};
|
|
105487
106015
|
|
|
105488
106016
|
// ../connectors/src/connectors/grafana/tools/request.ts
|
|
105489
|
-
import { z as
|
|
105490
|
-
var
|
|
105491
|
-
var
|
|
105492
|
-
toolUseIntent:
|
|
106017
|
+
import { z as z73 } from "zod";
|
|
106018
|
+
var REQUEST_TIMEOUT_MS56 = 6e4;
|
|
106019
|
+
var inputSchema71 = z73.object({
|
|
106020
|
+
toolUseIntent: z73.string().optional().describe(
|
|
105493
106021
|
"Brief description of what you intend to accomplish with this tool call"
|
|
105494
106022
|
),
|
|
105495
|
-
connectionId:
|
|
105496
|
-
method:
|
|
106023
|
+
connectionId: z73.string().describe("ID of the Grafana connection to use"),
|
|
106024
|
+
method: z73.enum(["GET", "POST", "PUT", "PATCH", "DELETE"]).describe(
|
|
105497
106025
|
"HTTP method. GET for reading resources (datasources, dashboards, alerts). POST for queries and creating resources. PUT/PATCH for updates. DELETE for removal."
|
|
105498
106026
|
),
|
|
105499
|
-
path:
|
|
106027
|
+
path: z73.string().describe(
|
|
105500
106028
|
"API path relative to the Grafana base URL (e.g., '/api/datasources', '/api/search', '/api/ds/query'). Must start with '/'."
|
|
105501
106029
|
),
|
|
105502
|
-
body:
|
|
106030
|
+
body: z73.record(z73.string(), z73.unknown()).optional().describe("Request body (JSON). Required for POST/PUT/PATCH requests.")
|
|
105503
106031
|
});
|
|
105504
|
-
var
|
|
105505
|
-
|
|
105506
|
-
success:
|
|
105507
|
-
status:
|
|
105508
|
-
data:
|
|
106032
|
+
var outputSchema71 = z73.discriminatedUnion("success", [
|
|
106033
|
+
z73.object({
|
|
106034
|
+
success: z73.literal(true),
|
|
106035
|
+
status: z73.number(),
|
|
106036
|
+
data: z73.unknown()
|
|
105509
106037
|
}),
|
|
105510
|
-
|
|
105511
|
-
success:
|
|
105512
|
-
error:
|
|
106038
|
+
z73.object({
|
|
106039
|
+
success: z73.literal(false),
|
|
106040
|
+
error: z73.string()
|
|
105513
106041
|
})
|
|
105514
106042
|
]);
|
|
105515
106043
|
var requestTool42 = new ConnectorTool({
|
|
@@ -105518,8 +106046,8 @@ var requestTool42 = new ConnectorTool({
|
|
|
105518
106046
|
Authentication is handled automatically using the configured API Key or Service Account Token via Bearer token.
|
|
105519
106047
|
Use this tool to interact with Grafana resources: datasources, dashboards, alerts, annotations, and to execute datasource queries via the unified query API (/api/ds/query).
|
|
105520
106048
|
The path must start with '/' and is appended to the configured Grafana instance URL.`,
|
|
105521
|
-
inputSchema:
|
|
105522
|
-
outputSchema:
|
|
106049
|
+
inputSchema: inputSchema71,
|
|
106050
|
+
outputSchema: outputSchema71,
|
|
105523
106051
|
async execute({ connectionId, method, path: path5, body }, connections) {
|
|
105524
106052
|
const connection = connections.find((c6) => c6.id === connectionId);
|
|
105525
106053
|
if (!connection) {
|
|
@@ -105532,13 +106060,13 @@ The path must start with '/' and is appended to the configured Grafana instance
|
|
|
105532
106060
|
`[connector-request] grafana/${connection.name}: ${method} ${path5}`
|
|
105533
106061
|
);
|
|
105534
106062
|
try {
|
|
105535
|
-
const baseUrl =
|
|
105536
|
-
const apiKey =
|
|
106063
|
+
const baseUrl = parameters59.url.getValue(connection).replace(/\/+$/, "");
|
|
106064
|
+
const apiKey = parameters59.apiKey.getValue(connection);
|
|
105537
106065
|
const url = `${baseUrl}${path5}`;
|
|
105538
106066
|
const controller = new AbortController();
|
|
105539
106067
|
const timeout = setTimeout(
|
|
105540
106068
|
() => controller.abort(),
|
|
105541
|
-
|
|
106069
|
+
REQUEST_TIMEOUT_MS56
|
|
105542
106070
|
);
|
|
105543
106071
|
try {
|
|
105544
106072
|
const response = await fetch(url, {
|
|
@@ -105568,15 +106096,16 @@ The path must start with '/' and is appended to the configured Grafana instance
|
|
|
105568
106096
|
});
|
|
105569
106097
|
|
|
105570
106098
|
// ../connectors/src/connectors/grafana/index.ts
|
|
105571
|
-
var
|
|
106099
|
+
var tools59 = { request: requestTool42 };
|
|
105572
106100
|
var grafanaConnector = new ConnectorPlugin({
|
|
105573
106101
|
slug: "grafana",
|
|
105574
106102
|
authType: AUTH_TYPES.API_KEY,
|
|
105575
106103
|
name: "Grafana",
|
|
105576
106104
|
description: "Connect to Grafana for monitoring dashboards, datasource queries, and alerting.",
|
|
105577
106105
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/3nGaPhV94lXQsHcCtv4mXz/0559d42f83066e8ba79e78410806750c/grafana-icon.webp",
|
|
105578
|
-
parameters:
|
|
106106
|
+
parameters: parameters59,
|
|
105579
106107
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
106108
|
+
categories: ["observability"],
|
|
105580
106109
|
onboarding: grafanaOnboarding,
|
|
105581
106110
|
systemPrompt: {
|
|
105582
106111
|
en: `### Tools
|
|
@@ -105696,7 +106225,7 @@ export default async function handler(c: Context) {
|
|
|
105696
106225
|
- \`GET /api/org\` \u2014 \u73FE\u5728\u306E\u7D44\u7E54\u3092\u53D6\u5F97
|
|
105697
106226
|
- \`GET /api/health\` \u2014 \u30D8\u30EB\u30B9\u30C1\u30A7\u30C3\u30AF`
|
|
105698
106227
|
},
|
|
105699
|
-
tools:
|
|
106228
|
+
tools: tools59
|
|
105700
106229
|
});
|
|
105701
106230
|
|
|
105702
106231
|
// ../connectors/src/connectors/backlog/setup.ts
|
|
@@ -105714,7 +106243,7 @@ var backlogOnboarding = new ConnectorOnboarding({
|
|
|
105714
106243
|
});
|
|
105715
106244
|
|
|
105716
106245
|
// ../connectors/src/connectors/backlog/parameters.ts
|
|
105717
|
-
var
|
|
106246
|
+
var parameters60 = {
|
|
105718
106247
|
spaceUrl: new ParameterDefinition({
|
|
105719
106248
|
slug: "space-url",
|
|
105720
106249
|
name: "Backlog Space URL",
|
|
@@ -105736,24 +106265,24 @@ var parameters59 = {
|
|
|
105736
106265
|
};
|
|
105737
106266
|
|
|
105738
106267
|
// ../connectors/src/connectors/backlog/tools/request.ts
|
|
105739
|
-
import { z as
|
|
105740
|
-
var
|
|
105741
|
-
var
|
|
105742
|
-
toolUseIntent:
|
|
105743
|
-
connectionId:
|
|
105744
|
-
method:
|
|
105745
|
-
path:
|
|
105746
|
-
body:
|
|
106268
|
+
import { z as z74 } from "zod";
|
|
106269
|
+
var REQUEST_TIMEOUT_MS57 = 6e4;
|
|
106270
|
+
var inputSchema72 = z74.object({
|
|
106271
|
+
toolUseIntent: z74.string().optional().describe("Brief description of what you intend to accomplish with this tool call"),
|
|
106272
|
+
connectionId: z74.string().describe("ID of the Backlog connection to use"),
|
|
106273
|
+
method: z74.enum(["GET", "POST", "PUT", "PATCH", "DELETE"]).describe("HTTP method. Use GET to read resources, POST to create, PATCH/PUT to update, DELETE to remove."),
|
|
106274
|
+
path: z74.string().describe("API path relative to /api/v2/ (e.g., 'space', 'projects', 'issues?projectId[]=12345'). Query parameters can be appended. The apiKey query parameter is added automatically \u2014 do NOT include it."),
|
|
106275
|
+
body: z74.record(z74.string(), z74.unknown()).optional().describe("Request body as JSON object. Required for POST, PUT, and PATCH requests (e.g., issue creation, comment addition).")
|
|
105747
106276
|
});
|
|
105748
|
-
var
|
|
105749
|
-
|
|
105750
|
-
success:
|
|
105751
|
-
status:
|
|
105752
|
-
data:
|
|
106277
|
+
var outputSchema72 = z74.discriminatedUnion("success", [
|
|
106278
|
+
z74.object({
|
|
106279
|
+
success: z74.literal(true),
|
|
106280
|
+
status: z74.number(),
|
|
106281
|
+
data: z74.union([z74.record(z74.string(), z74.unknown()), z74.array(z74.unknown())])
|
|
105753
106282
|
}),
|
|
105754
|
-
|
|
105755
|
-
success:
|
|
105756
|
-
error:
|
|
106283
|
+
z74.object({
|
|
106284
|
+
success: z74.literal(false),
|
|
106285
|
+
error: z74.string()
|
|
105757
106286
|
})
|
|
105758
106287
|
]);
|
|
105759
106288
|
var requestTool43 = new ConnectorTool({
|
|
@@ -105763,8 +106292,8 @@ Authentication is handled automatically by appending the apiKey query parameter
|
|
|
105763
106292
|
Use this tool for all Backlog operations: listing projects, searching and creating issues, managing wikis, retrieving users, and more.
|
|
105764
106293
|
The base URL and API key are configured per connection \u2014 only specify the API path relative to /api/v2/.
|
|
105765
106294
|
Do NOT include the apiKey parameter yourself; it is injected automatically.`,
|
|
105766
|
-
inputSchema:
|
|
105767
|
-
outputSchema:
|
|
106295
|
+
inputSchema: inputSchema72,
|
|
106296
|
+
outputSchema: outputSchema72,
|
|
105768
106297
|
async execute({ connectionId, method, path: path5, body }, connections) {
|
|
105769
106298
|
const connection = connections.find((c6) => c6.id === connectionId);
|
|
105770
106299
|
if (!connection) {
|
|
@@ -105772,12 +106301,12 @@ Do NOT include the apiKey parameter yourself; it is injected automatically.`,
|
|
|
105772
106301
|
}
|
|
105773
106302
|
console.log(`[connector-request] backlog-api-key/${connection.name}: ${method} ${path5}`);
|
|
105774
106303
|
try {
|
|
105775
|
-
const spaceUrl =
|
|
105776
|
-
const apiKey =
|
|
106304
|
+
const spaceUrl = parameters60.spaceUrl.getValue(connection);
|
|
106305
|
+
const apiKey = parameters60.apiKey.getValue(connection);
|
|
105777
106306
|
const separator = path5.includes("?") ? "&" : "?";
|
|
105778
106307
|
const url = `${spaceUrl.replace(/\/+$/, "")}/api/v2/${path5}${separator}apiKey=${apiKey}`;
|
|
105779
106308
|
const controller = new AbortController();
|
|
105780
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
106309
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS57);
|
|
105781
106310
|
try {
|
|
105782
106311
|
const headers = {
|
|
105783
106312
|
Accept: "application/json"
|
|
@@ -105813,15 +106342,16 @@ Do NOT include the apiKey parameter yourself; it is injected automatically.`,
|
|
|
105813
106342
|
});
|
|
105814
106343
|
|
|
105815
106344
|
// ../connectors/src/connectors/backlog/index.ts
|
|
105816
|
-
var
|
|
106345
|
+
var tools60 = { request: requestTool43 };
|
|
105817
106346
|
var backlogConnector = new ConnectorPlugin({
|
|
105818
106347
|
slug: "backlog",
|
|
105819
106348
|
authType: AUTH_TYPES.API_KEY,
|
|
105820
106349
|
name: "Backlog",
|
|
105821
106350
|
description: "Connect to Nulab Backlog for project management, issue tracking, and wiki data retrieval using API key authentication.",
|
|
105822
106351
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/6KcVBGf3mUHnuCOQgQMvtT/e8558c7990e40e3be46948e9476190fb/backlog-favicon.svg",
|
|
105823
|
-
parameters:
|
|
106352
|
+
parameters: parameters60,
|
|
105824
106353
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
106354
|
+
categories: ["productivity"],
|
|
105825
106355
|
onboarding: backlogOnboarding,
|
|
105826
106356
|
systemPrompt: {
|
|
105827
106357
|
en: `### Tools
|
|
@@ -105969,7 +106499,7 @@ await backlog.request("/api/v2/issues", {
|
|
|
105969
106499
|
- sort: "created", "updated", "issueType", "category", "priority" \u7B49
|
|
105970
106500
|
- order: "asc" \u307E\u305F\u306F "desc"`
|
|
105971
106501
|
},
|
|
105972
|
-
tools:
|
|
106502
|
+
tools: tools60
|
|
105973
106503
|
});
|
|
105974
106504
|
|
|
105975
106505
|
// ../connectors/src/connectors/gamma/setup.ts
|
|
@@ -105985,7 +106515,7 @@ var gammaOnboarding = new ConnectorOnboarding({
|
|
|
105985
106515
|
});
|
|
105986
106516
|
|
|
105987
106517
|
// ../connectors/src/connectors/gamma/parameters.ts
|
|
105988
|
-
var
|
|
106518
|
+
var parameters61 = {
|
|
105989
106519
|
apiKey: new ParameterDefinition({
|
|
105990
106520
|
slug: "api-key",
|
|
105991
106521
|
name: "Gamma API Key",
|
|
@@ -105998,29 +106528,29 @@ var parameters60 = {
|
|
|
105998
106528
|
};
|
|
105999
106529
|
|
|
106000
106530
|
// ../connectors/src/connectors/gamma/tools/request.ts
|
|
106001
|
-
import { z as
|
|
106002
|
-
var
|
|
106003
|
-
var
|
|
106004
|
-
var
|
|
106005
|
-
toolUseIntent:
|
|
106531
|
+
import { z as z75 } from "zod";
|
|
106532
|
+
var BASE_URL35 = "https://public-api.gamma.app/v1.0";
|
|
106533
|
+
var REQUEST_TIMEOUT_MS58 = 6e4;
|
|
106534
|
+
var inputSchema73 = z75.object({
|
|
106535
|
+
toolUseIntent: z75.string().optional().describe(
|
|
106006
106536
|
"Brief description of what you intend to accomplish with this tool call"
|
|
106007
106537
|
),
|
|
106008
|
-
connectionId:
|
|
106009
|
-
method:
|
|
106010
|
-
path:
|
|
106538
|
+
connectionId: z75.string().describe("ID of the Gamma connection to use"),
|
|
106539
|
+
method: z75.enum(["GET", "POST"]).describe("HTTP method. GET for listing resources, POST for creating."),
|
|
106540
|
+
path: z75.string().describe(
|
|
106011
106541
|
"API path (e.g., '/themes', '/folders', '/generations', '/generations/{generationId}')"
|
|
106012
106542
|
),
|
|
106013
|
-
body:
|
|
106543
|
+
body: z75.record(z75.string(), z75.unknown()).optional().describe("Request body (JSON) for POST requests")
|
|
106014
106544
|
});
|
|
106015
|
-
var
|
|
106016
|
-
|
|
106017
|
-
success:
|
|
106018
|
-
status:
|
|
106019
|
-
data:
|
|
106545
|
+
var outputSchema73 = z75.discriminatedUnion("success", [
|
|
106546
|
+
z75.object({
|
|
106547
|
+
success: z75.literal(true),
|
|
106548
|
+
status: z75.number(),
|
|
106549
|
+
data: z75.unknown()
|
|
106020
106550
|
}),
|
|
106021
|
-
|
|
106022
|
-
success:
|
|
106023
|
-
error:
|
|
106551
|
+
z75.object({
|
|
106552
|
+
success: z75.literal(false),
|
|
106553
|
+
error: z75.string()
|
|
106024
106554
|
})
|
|
106025
106555
|
]);
|
|
106026
106556
|
var requestTool44 = new ConnectorTool({
|
|
@@ -106029,8 +106559,8 @@ var requestTool44 = new ConnectorTool({
|
|
|
106029
106559
|
Authentication is handled automatically using the API Key (X-API-KEY header).
|
|
106030
106560
|
Use this tool for listing themes, listing folders, checking generation status, and other read operations.
|
|
106031
106561
|
For creating presentations/documents, prefer the gamma_generate tool instead.`,
|
|
106032
|
-
inputSchema:
|
|
106033
|
-
outputSchema:
|
|
106562
|
+
inputSchema: inputSchema73,
|
|
106563
|
+
outputSchema: outputSchema73,
|
|
106034
106564
|
async execute({ connectionId, method, path: path5, body }, connections) {
|
|
106035
106565
|
const connection = connections.find((c6) => c6.id === connectionId);
|
|
106036
106566
|
if (!connection) {
|
|
@@ -106043,10 +106573,10 @@ For creating presentations/documents, prefer the gamma_generate tool instead.`,
|
|
|
106043
106573
|
`[connector-request] gamma/${connection.name}: ${method} ${path5}`
|
|
106044
106574
|
);
|
|
106045
106575
|
try {
|
|
106046
|
-
const apiKey =
|
|
106047
|
-
const url = `${
|
|
106576
|
+
const apiKey = parameters61.apiKey.getValue(connection);
|
|
106577
|
+
const url = `${BASE_URL35}${path5}`;
|
|
106048
106578
|
const controller = new AbortController();
|
|
106049
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
106579
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS58);
|
|
106050
106580
|
try {
|
|
106051
106581
|
const response = await fetch(url, {
|
|
106052
106582
|
method,
|
|
@@ -106075,35 +106605,35 @@ For creating presentations/documents, prefer the gamma_generate tool instead.`,
|
|
|
106075
106605
|
});
|
|
106076
106606
|
|
|
106077
106607
|
// ../connectors/src/connectors/gamma/tools/generate.ts
|
|
106078
|
-
import { z as
|
|
106079
|
-
var
|
|
106608
|
+
import { z as z76 } from "zod";
|
|
106609
|
+
var BASE_URL36 = "https://public-api.gamma.app/v1.0";
|
|
106080
106610
|
var POLL_INTERVAL_MS3 = 5e3;
|
|
106081
106611
|
var MAX_POLL_DURATION_MS = 3e5;
|
|
106082
|
-
var
|
|
106083
|
-
toolUseIntent:
|
|
106612
|
+
var inputSchema74 = z76.object({
|
|
106613
|
+
toolUseIntent: z76.string().optional().describe(
|
|
106084
106614
|
"Brief description of what you intend to accomplish with this tool call"
|
|
106085
106615
|
),
|
|
106086
|
-
connectionId:
|
|
106087
|
-
inputText:
|
|
106616
|
+
connectionId: z76.string().describe("ID of the Gamma connection to use"),
|
|
106617
|
+
inputText: z76.string().describe(
|
|
106088
106618
|
"Content for the generation. Can include text and image URLs. Max ~400,000 characters."
|
|
106089
106619
|
),
|
|
106090
|
-
textMode:
|
|
106620
|
+
textMode: z76.enum(["generate", "condense", "preserve"]).describe(
|
|
106091
106621
|
"How inputText is modified: 'generate' creates new content from the topic, 'condense' shortens existing text, 'preserve' keeps text as-is."
|
|
106092
106622
|
),
|
|
106093
|
-
format:
|
|
106094
|
-
numCards:
|
|
106095
|
-
themeId:
|
|
106623
|
+
format: z76.enum(["presentation", "document", "webpage", "social"]).optional().describe("Type of artifact to create. Defaults to 'presentation'."),
|
|
106624
|
+
numCards: z76.number().int().min(1).max(75).optional().describe("Number of cards/slides. Defaults to 10."),
|
|
106625
|
+
themeId: z76.string().optional().describe(
|
|
106096
106626
|
"Theme ID for look and feel. Use gamma_request GET /themes to list available themes."
|
|
106097
106627
|
),
|
|
106098
|
-
tone:
|
|
106628
|
+
tone: z76.string().optional().describe(
|
|
106099
106629
|
"Tone/voice of the output (e.g., 'professional', 'casual', 'academic'). Max 500 chars."
|
|
106100
106630
|
),
|
|
106101
|
-
audience:
|
|
106631
|
+
audience: z76.string().optional().describe(
|
|
106102
106632
|
"Target audience description (e.g., 'marketing executives'). Max 500 chars."
|
|
106103
106633
|
),
|
|
106104
|
-
language:
|
|
106105
|
-
textAmount:
|
|
106106
|
-
imageSource:
|
|
106634
|
+
language: z76.string().optional().describe("Output language code (e.g., 'en', 'ja'). Defaults to 'en'."),
|
|
106635
|
+
textAmount: z76.enum(["brief", "medium", "detailed", "extensive"]).optional().describe("Text volume per card. Defaults to 'medium'."),
|
|
106636
|
+
imageSource: z76.enum([
|
|
106107
106637
|
"aiGenerated",
|
|
106108
106638
|
"pictographic",
|
|
106109
106639
|
"pexels",
|
|
@@ -106115,26 +106645,26 @@ var inputSchema73 = z75.object({
|
|
|
106115
106645
|
"placeholder",
|
|
106116
106646
|
"noImages"
|
|
106117
106647
|
]).optional().describe("Image source. Defaults to 'aiGenerated'."),
|
|
106118
|
-
additionalInstructions:
|
|
106648
|
+
additionalInstructions: z76.string().optional().describe(
|
|
106119
106649
|
"Additional specifications for content, layout, and aesthetics. Max 5000 chars."
|
|
106120
106650
|
),
|
|
106121
|
-
exportAs:
|
|
106651
|
+
exportAs: z76.enum(["pdf", "pptx", "png"]).optional().describe("Export file format. If omitted, no export file is generated.")
|
|
106122
106652
|
});
|
|
106123
|
-
var
|
|
106124
|
-
|
|
106125
|
-
success:
|
|
106126
|
-
generationId:
|
|
106127
|
-
gammaId:
|
|
106128
|
-
gammaUrl:
|
|
106129
|
-
exportUrl:
|
|
106130
|
-
credits:
|
|
106131
|
-
deducted:
|
|
106132
|
-
remaining:
|
|
106653
|
+
var outputSchema74 = z76.discriminatedUnion("success", [
|
|
106654
|
+
z76.object({
|
|
106655
|
+
success: z76.literal(true),
|
|
106656
|
+
generationId: z76.string(),
|
|
106657
|
+
gammaId: z76.string(),
|
|
106658
|
+
gammaUrl: z76.string(),
|
|
106659
|
+
exportUrl: z76.string().optional(),
|
|
106660
|
+
credits: z76.object({
|
|
106661
|
+
deducted: z76.number(),
|
|
106662
|
+
remaining: z76.number()
|
|
106133
106663
|
}).optional()
|
|
106134
106664
|
}),
|
|
106135
|
-
|
|
106136
|
-
success:
|
|
106137
|
-
error:
|
|
106665
|
+
z76.object({
|
|
106666
|
+
success: z76.literal(false),
|
|
106667
|
+
error: z76.string()
|
|
106138
106668
|
})
|
|
106139
106669
|
]);
|
|
106140
106670
|
var generateTool = new ConnectorTool({
|
|
@@ -106143,8 +106673,8 @@ var generateTool = new ConnectorTool({
|
|
|
106143
106673
|
This tool creates the generation, then automatically polls until completion and returns the result URL.
|
|
106144
106674
|
Use gamma_request GET /themes first if you want to pick a specific theme.
|
|
106145
106675
|
Gamma does NOT support image uploads. To visualize data, embed raw numbers directly into inputText as structured text (markdown tables, bullet lists with figures) \u2014 Gamma AI will render charts and visuals from the data.`,
|
|
106146
|
-
inputSchema:
|
|
106147
|
-
outputSchema:
|
|
106676
|
+
inputSchema: inputSchema74,
|
|
106677
|
+
outputSchema: outputSchema74,
|
|
106148
106678
|
async execute({
|
|
106149
106679
|
connectionId,
|
|
106150
106680
|
inputText,
|
|
@@ -106171,7 +106701,7 @@ Gamma does NOT support image uploads. To visualize data, embed raw numbers direc
|
|
|
106171
106701
|
`[connector-generate] gamma/${connection.name}: creating ${format2 ?? "presentation"}`
|
|
106172
106702
|
);
|
|
106173
106703
|
try {
|
|
106174
|
-
const apiKey =
|
|
106704
|
+
const apiKey = parameters61.apiKey.getValue(connection);
|
|
106175
106705
|
const headers = {
|
|
106176
106706
|
"X-API-KEY": apiKey,
|
|
106177
106707
|
"Content-Type": "application/json"
|
|
@@ -106193,7 +106723,7 @@ Gamma does NOT support image uploads. To visualize data, embed raw numbers direc
|
|
|
106193
106723
|
if (textAmount) textOptions.amount = textAmount;
|
|
106194
106724
|
if (Object.keys(textOptions).length > 0) body.textOptions = textOptions;
|
|
106195
106725
|
if (imageSource) body.imageOptions = { source: imageSource };
|
|
106196
|
-
const createRes = await fetch(`${
|
|
106726
|
+
const createRes = await fetch(`${BASE_URL36}/generations`, {
|
|
106197
106727
|
method: "POST",
|
|
106198
106728
|
headers,
|
|
106199
106729
|
body: JSON.stringify(body)
|
|
@@ -106213,7 +106743,7 @@ Gamma does NOT support image uploads. To visualize data, embed raw numbers direc
|
|
|
106213
106743
|
const deadline = Date.now() + MAX_POLL_DURATION_MS;
|
|
106214
106744
|
while (Date.now() < deadline) {
|
|
106215
106745
|
await new Promise((resolve) => setTimeout(resolve, POLL_INTERVAL_MS3));
|
|
106216
|
-
const pollRes = await fetch(`${
|
|
106746
|
+
const pollRes = await fetch(`${BASE_URL36}/generations/${generationId}`, {
|
|
106217
106747
|
method: "GET",
|
|
106218
106748
|
headers
|
|
106219
106749
|
});
|
|
@@ -106251,15 +106781,16 @@ Gamma does NOT support image uploads. To visualize data, embed raw numbers direc
|
|
|
106251
106781
|
});
|
|
106252
106782
|
|
|
106253
106783
|
// ../connectors/src/connectors/gamma/index.ts
|
|
106254
|
-
var
|
|
106784
|
+
var tools61 = { request: requestTool44, generate: generateTool };
|
|
106255
106785
|
var gammaConnector = new ConnectorPlugin({
|
|
106256
106786
|
slug: "gamma",
|
|
106257
106787
|
authType: AUTH_TYPES.API_KEY,
|
|
106258
106788
|
name: "Gamma",
|
|
106259
106789
|
description: "Connect to Gamma for AI-powered presentation, document, webpage, and social post generation.",
|
|
106260
106790
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/KoMGPpPcgtB9oDYe1OBjS/1ba7eb061c4497106bf6d249866dc471/gamma.svg",
|
|
106261
|
-
parameters:
|
|
106791
|
+
parameters: parameters61,
|
|
106262
106792
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
106793
|
+
categories: ["productivity"],
|
|
106263
106794
|
onboarding: gammaOnboarding,
|
|
106264
106795
|
systemPrompt: {
|
|
106265
106796
|
en: `### Tools
|
|
@@ -106411,7 +106942,7 @@ export default async function handler(c: Context) {
|
|
|
106411
106942
|
#### \u30C7\u30FC\u30BF\u306E\u53EF\u8996\u5316
|
|
106412
106943
|
Gamma\u306F\u753B\u50CF\u306E\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\u3002\u30C7\u30FC\u30BF\u3092\u53EF\u8996\u5316\u3057\u305F\u3044\u5834\u5408\uFF08\u30C1\u30E3\u30FC\u30C8\u3001\u30B0\u30E9\u30D5\u3001\u30C6\u30FC\u30D6\u30EB\u306A\u3069\uFF09\u306F\u3001\`inputText\` \u306B\u6570\u5024\u3084\u30C7\u30FC\u30BF\u3092\u69CB\u9020\u5316\u30C6\u30AD\u30B9\u30C8\uFF08\u30DE\u30FC\u30AF\u30C0\u30A6\u30F3\u30C6\u30FC\u30D6\u30EB\u3001\u6570\u5024\u4ED8\u304D\u7B87\u6761\u66F8\u304D\u306A\u3069\uFF09\u3068\u3057\u3066\u76F4\u63A5\u57CB\u3081\u8FBC\u3093\u3067\u304F\u3060\u3055\u3044\u3002Gamma AI\u304C\u30C7\u30FC\u30BF\u304B\u3089\u9069\u5207\u306A\u30D3\u30B8\u30E5\u30A2\u30EB\u8981\u7D20\u3092\u751F\u6210\u3057\u307E\u3059\u3002\u30ED\u30FC\u30AB\u30EB\u3067\u30C1\u30E3\u30FC\u30C8\u753B\u50CF\u3092\u751F\u6210\u3057\u3066\u542B\u3081\u308B\u306E\u3067\u306F\u306A\u304F\u3001\u30C7\u30FC\u30BF\u306E\u5024\u3092\u30A4\u30F3\u30E9\u30A4\u30F3\u3067\u6E21\u3057\u3066Gamma\u306B\u53EF\u8996\u5316\u3055\u305B\u3066\u304F\u3060\u3055\u3044\u3002`
|
|
106413
106944
|
},
|
|
106414
|
-
tools:
|
|
106945
|
+
tools: tools61
|
|
106415
106946
|
});
|
|
106416
106947
|
|
|
106417
106948
|
// ../connectors/src/connectors/sentry/setup.ts
|
|
@@ -106427,7 +106958,7 @@ var sentryOnboarding = new ConnectorOnboarding({
|
|
|
106427
106958
|
});
|
|
106428
106959
|
|
|
106429
106960
|
// ../connectors/src/connectors/sentry/parameters.ts
|
|
106430
|
-
var
|
|
106961
|
+
var parameters62 = {
|
|
106431
106962
|
organizationSlug: new ParameterDefinition({
|
|
106432
106963
|
slug: "organization-slug",
|
|
106433
106964
|
name: "Sentry Organization Slug",
|
|
@@ -106449,29 +106980,29 @@ var parameters61 = {
|
|
|
106449
106980
|
};
|
|
106450
106981
|
|
|
106451
106982
|
// ../connectors/src/connectors/sentry/tools/request.ts
|
|
106452
|
-
import { z as
|
|
106453
|
-
var
|
|
106454
|
-
var
|
|
106455
|
-
var
|
|
106456
|
-
toolUseIntent:
|
|
106983
|
+
import { z as z77 } from "zod";
|
|
106984
|
+
var BASE_URL37 = "https://sentry.io/api/0";
|
|
106985
|
+
var REQUEST_TIMEOUT_MS59 = 6e4;
|
|
106986
|
+
var inputSchema75 = z77.object({
|
|
106987
|
+
toolUseIntent: z77.string().optional().describe(
|
|
106457
106988
|
"Brief description of what you intend to accomplish with this tool call"
|
|
106458
106989
|
),
|
|
106459
|
-
connectionId:
|
|
106460
|
-
method:
|
|
106461
|
-
path:
|
|
106990
|
+
connectionId: z77.string().describe("ID of the Sentry connection to use"),
|
|
106991
|
+
method: z77.enum(["GET", "POST", "PUT", "DELETE"]).describe("HTTP method"),
|
|
106992
|
+
path: z77.string().describe(
|
|
106462
106993
|
"API path appended to https://sentry.io/api/0 (e.g., '/organizations/{organizationSlug}/projects/', '/projects/{organizationSlug}/{project}/issues/'). {organizationSlug} is automatically replaced with the configured organization slug."
|
|
106463
106994
|
),
|
|
106464
|
-
body:
|
|
106995
|
+
body: z77.record(z77.string(), z77.unknown()).optional().describe("JSON request body for POST/PUT requests")
|
|
106465
106996
|
});
|
|
106466
|
-
var
|
|
106467
|
-
|
|
106468
|
-
success:
|
|
106469
|
-
status:
|
|
106470
|
-
data:
|
|
106997
|
+
var outputSchema75 = z77.discriminatedUnion("success", [
|
|
106998
|
+
z77.object({
|
|
106999
|
+
success: z77.literal(true),
|
|
107000
|
+
status: z77.number(),
|
|
107001
|
+
data: z77.unknown()
|
|
106471
107002
|
}),
|
|
106472
|
-
|
|
106473
|
-
success:
|
|
106474
|
-
error:
|
|
107003
|
+
z77.object({
|
|
107004
|
+
success: z77.literal(false),
|
|
107005
|
+
error: z77.string()
|
|
106475
107006
|
})
|
|
106476
107007
|
]);
|
|
106477
107008
|
var requestTool45 = new ConnectorTool({
|
|
@@ -106480,8 +107011,8 @@ var requestTool45 = new ConnectorTool({
|
|
|
106480
107011
|
Supports GET, POST, PUT, and DELETE methods.
|
|
106481
107012
|
Authentication is handled automatically via Bearer token.
|
|
106482
107013
|
{organizationSlug} in the path is automatically replaced with the configured organization slug.`,
|
|
106483
|
-
inputSchema:
|
|
106484
|
-
outputSchema:
|
|
107014
|
+
inputSchema: inputSchema75,
|
|
107015
|
+
outputSchema: outputSchema75,
|
|
106485
107016
|
async execute({ connectionId, method, path: path5, body }, connections) {
|
|
106486
107017
|
const connection = connections.find((c6) => c6.id === connectionId);
|
|
106487
107018
|
if (!connection) {
|
|
@@ -106494,15 +107025,15 @@ Authentication is handled automatically via Bearer token.
|
|
|
106494
107025
|
`[connector-request] sentry/${connection.name}: ${method} ${path5}`
|
|
106495
107026
|
);
|
|
106496
107027
|
try {
|
|
106497
|
-
const authToken =
|
|
106498
|
-
const organizationSlug =
|
|
107028
|
+
const authToken = parameters62.authToken.getValue(connection);
|
|
107029
|
+
const organizationSlug = parameters62.organizationSlug.getValue(connection);
|
|
106499
107030
|
const resolvedPath = path5.replace(
|
|
106500
107031
|
/\{organizationSlug\}/g,
|
|
106501
107032
|
organizationSlug
|
|
106502
107033
|
);
|
|
106503
|
-
const url = `${
|
|
107034
|
+
const url = `${BASE_URL37}${resolvedPath.startsWith("/") ? "" : "/"}${resolvedPath}`;
|
|
106504
107035
|
const controller = new AbortController();
|
|
106505
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
107036
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS59);
|
|
106506
107037
|
try {
|
|
106507
107038
|
const response = await fetch(url, {
|
|
106508
107039
|
method,
|
|
@@ -106531,15 +107062,16 @@ Authentication is handled automatically via Bearer token.
|
|
|
106531
107062
|
});
|
|
106532
107063
|
|
|
106533
107064
|
// ../connectors/src/connectors/sentry/index.ts
|
|
106534
|
-
var
|
|
107065
|
+
var tools62 = { request: requestTool45 };
|
|
106535
107066
|
var sentryConnector = new ConnectorPlugin({
|
|
106536
107067
|
slug: "sentry",
|
|
106537
107068
|
authType: AUTH_TYPES.API_KEY,
|
|
106538
107069
|
name: "Sentry",
|
|
106539
107070
|
description: "Connect to Sentry for error tracking and performance monitoring data.",
|
|
106540
107071
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/4B8ZEGFGjTeMWNnXQb1dAL/ac10f813f02353f5b0cbe64fb5c06d8f/sentry.svg",
|
|
106541
|
-
parameters:
|
|
107072
|
+
parameters: parameters62,
|
|
106542
107073
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
107074
|
+
categories: ["observability"],
|
|
106543
107075
|
onboarding: sentryOnboarding,
|
|
106544
107076
|
systemPrompt: {
|
|
106545
107077
|
en: `### Tools
|
|
@@ -106707,10 +107239,10 @@ events.forEach(e => console.log(e.dateCreated, e.message));
|
|
|
106707
107239
|
await sentry.updateIssue("12345", { status: "resolved" });
|
|
106708
107240
|
\`\`\``
|
|
106709
107241
|
},
|
|
106710
|
-
tools:
|
|
107242
|
+
tools: tools62,
|
|
106711
107243
|
async checkConnection(params) {
|
|
106712
|
-
const authToken = params[
|
|
106713
|
-
const organizationSlug = params[
|
|
107244
|
+
const authToken = params[parameters62.authToken.slug];
|
|
107245
|
+
const organizationSlug = params[parameters62.organizationSlug.slug];
|
|
106714
107246
|
if (!authToken || !organizationSlug) {
|
|
106715
107247
|
return {
|
|
106716
107248
|
success: false,
|
|
@@ -106756,7 +107288,7 @@ var salesforceOnboarding = new ConnectorOnboarding({
|
|
|
106756
107288
|
});
|
|
106757
107289
|
|
|
106758
107290
|
// ../connectors/src/connectors/salesforce/parameters.ts
|
|
106759
|
-
var
|
|
107291
|
+
var parameters63 = {
|
|
106760
107292
|
instanceUrl: new ParameterDefinition({
|
|
106761
107293
|
slug: "instance-url",
|
|
106762
107294
|
name: "Instance URL",
|
|
@@ -106787,30 +107319,30 @@ var parameters62 = {
|
|
|
106787
107319
|
};
|
|
106788
107320
|
|
|
106789
107321
|
// ../connectors/src/connectors/salesforce/tools/request.ts
|
|
106790
|
-
import { z as
|
|
106791
|
-
var
|
|
106792
|
-
var
|
|
106793
|
-
toolUseIntent:
|
|
107322
|
+
import { z as z78 } from "zod";
|
|
107323
|
+
var REQUEST_TIMEOUT_MS60 = 6e4;
|
|
107324
|
+
var inputSchema76 = z78.object({
|
|
107325
|
+
toolUseIntent: z78.string().optional().describe(
|
|
106794
107326
|
"Brief description of what you intend to accomplish with this tool call"
|
|
106795
107327
|
),
|
|
106796
|
-
connectionId:
|
|
106797
|
-
method:
|
|
107328
|
+
connectionId: z78.string().describe("ID of the Salesforce connection to use"),
|
|
107329
|
+
method: z78.enum(["GET", "POST", "PATCH", "DELETE"]).describe(
|
|
106798
107330
|
"HTTP method. GET for reading resources and SOQL queries, POST for creating, PATCH for updating, DELETE for removing."
|
|
106799
107331
|
),
|
|
106800
|
-
path:
|
|
107332
|
+
path: z78.string().describe(
|
|
106801
107333
|
"API path appended to the instance URL (e.g., '/services/data/v60.0/sobjects/Account', '/services/data/v60.0/query?q=SELECT+Id,Name+FROM+Account+LIMIT+5'). Always start the path with '/services/data/'."
|
|
106802
107334
|
),
|
|
106803
|
-
body:
|
|
107335
|
+
body: z78.record(z78.string(), z78.unknown()).optional().describe("Request body (JSON) for POST/PATCH requests")
|
|
106804
107336
|
});
|
|
106805
|
-
var
|
|
106806
|
-
|
|
106807
|
-
success:
|
|
106808
|
-
status:
|
|
106809
|
-
data:
|
|
107337
|
+
var outputSchema76 = z78.discriminatedUnion("success", [
|
|
107338
|
+
z78.object({
|
|
107339
|
+
success: z78.literal(true),
|
|
107340
|
+
status: z78.number(),
|
|
107341
|
+
data: z78.record(z78.string(), z78.unknown())
|
|
106810
107342
|
}),
|
|
106811
|
-
|
|
106812
|
-
success:
|
|
106813
|
-
error:
|
|
107343
|
+
z78.object({
|
|
107344
|
+
success: z78.literal(false),
|
|
107345
|
+
error: z78.string()
|
|
106814
107346
|
})
|
|
106815
107347
|
]);
|
|
106816
107348
|
function normalizeInstanceUrl(raw) {
|
|
@@ -106826,8 +107358,8 @@ var requestTool46 = new ConnectorTool({
|
|
|
106826
107358
|
Authentication is handled automatically using the OAuth 2.0 Client Credentials Flow (External Client App or Connected App Consumer Key + Secret). An access token is obtained on each request, so the tool user only provides the API path.
|
|
106827
107359
|
Use this tool for all Salesforce interactions: describing sObjects, running SOQL queries (GET /services/data/vXX.X/query?q=...), reading/creating/updating standard (Account, Contact, Opportunity, Lead, Case) and custom objects.
|
|
106828
107360
|
Prefer SOQL via the /query endpoint for filtered, joined, or aggregated reads rather than paginating /sobjects/{Type} endpoints.`,
|
|
106829
|
-
inputSchema:
|
|
106830
|
-
outputSchema:
|
|
107361
|
+
inputSchema: inputSchema76,
|
|
107362
|
+
outputSchema: outputSchema76,
|
|
106831
107363
|
async execute({ connectionId, method, path: path5, body }, connections) {
|
|
106832
107364
|
const connection = connections.find((c6) => c6.id === connectionId);
|
|
106833
107365
|
if (!connection) {
|
|
@@ -106840,9 +107372,9 @@ Prefer SOQL via the /query endpoint for filtered, joined, or aggregated reads ra
|
|
|
106840
107372
|
`[connector-request] salesforce/${connection.name}: ${method} ${path5}`
|
|
106841
107373
|
);
|
|
106842
107374
|
try {
|
|
106843
|
-
const instanceUrlParam =
|
|
106844
|
-
const clientId =
|
|
106845
|
-
const clientSecret =
|
|
107375
|
+
const instanceUrlParam = parameters63.instanceUrl.getValue(connection);
|
|
107376
|
+
const clientId = parameters63.clientId.getValue(connection);
|
|
107377
|
+
const clientSecret = parameters63.clientSecret.getValue(connection);
|
|
106846
107378
|
const instanceUrl = normalizeInstanceUrl(instanceUrlParam);
|
|
106847
107379
|
const tokenBody = new URLSearchParams({
|
|
106848
107380
|
grant_type: "client_credentials",
|
|
@@ -106873,7 +107405,7 @@ Prefer SOQL via the /query endpoint for filtered, joined, or aggregated reads ra
|
|
|
106873
107405
|
const resolvedInstanceUrl = tokenJson.instance_url ?? instanceUrl;
|
|
106874
107406
|
const url = `${resolvedInstanceUrl}${path5.startsWith("/") ? "" : "/"}${path5}`;
|
|
106875
107407
|
const controller = new AbortController();
|
|
106876
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
107408
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS60);
|
|
106877
107409
|
try {
|
|
106878
107410
|
const response = await fetch(url, {
|
|
106879
107411
|
method,
|
|
@@ -106917,15 +107449,16 @@ Prefer SOQL via the /query endpoint for filtered, joined, or aggregated reads ra
|
|
|
106917
107449
|
});
|
|
106918
107450
|
|
|
106919
107451
|
// ../connectors/src/connectors/salesforce/index.ts
|
|
106920
|
-
var
|
|
107452
|
+
var tools63 = { request: requestTool46 };
|
|
106921
107453
|
var salesforceConnector = new ConnectorPlugin({
|
|
106922
107454
|
slug: "salesforce",
|
|
106923
107455
|
authType: AUTH_TYPES.API_KEY,
|
|
106924
107456
|
name: "Salesforce",
|
|
106925
107457
|
description: "Connect to Salesforce CRM for accounts, contacts, opportunities, leads, cases, and custom objects via SOQL and the REST API.",
|
|
106926
107458
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/6vZlbrUKhxXIiuvWJlb8YB/bbc5e08b88de46c8ed338a74c7d0abb3/salesforce-icon.png",
|
|
106927
|
-
parameters:
|
|
107459
|
+
parameters: parameters63,
|
|
106928
107460
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
107461
|
+
categories: ["crm"],
|
|
106929
107462
|
onboarding: salesforceOnboarding,
|
|
106930
107463
|
systemPrompt: {
|
|
106931
107464
|
en: `### Tools
|
|
@@ -107071,7 +107604,7 @@ export default async function handler(c: Context) {
|
|
|
107071
107604
|
- \u96C6\u8A08: \`GROUP BY\`, \`HAVING\`, \`COUNT()\`, \`SUM()\`, \`AVG()\`, \`MIN()\`, \`MAX()\`
|
|
107072
107605
|
- \u89AA\u2192\u5B50\u30B5\u30D6\u30AF\u30A8\u30EA: \`SELECT Id, Name, (SELECT Id, Email FROM Contacts) FROM Account\``
|
|
107073
107606
|
},
|
|
107074
|
-
tools:
|
|
107607
|
+
tools: tools63
|
|
107075
107608
|
});
|
|
107076
107609
|
|
|
107077
107610
|
// ../connectors/src/connectors/influxdb/setup.ts
|
|
@@ -107133,7 +107666,7 @@ var influxdbOnboarding = new ConnectorOnboarding({
|
|
|
107133
107666
|
});
|
|
107134
107667
|
|
|
107135
107668
|
// ../connectors/src/connectors/influxdb/parameters.ts
|
|
107136
|
-
var
|
|
107669
|
+
var parameters64 = {
|
|
107137
107670
|
url: new ParameterDefinition({
|
|
107138
107671
|
slug: "url",
|
|
107139
107672
|
name: "InfluxDB URL",
|
|
@@ -107173,35 +107706,35 @@ var parameters63 = {
|
|
|
107173
107706
|
};
|
|
107174
107707
|
|
|
107175
107708
|
// ../connectors/src/connectors/influxdb/tools/request.ts
|
|
107176
|
-
import { z as
|
|
107177
|
-
var
|
|
107178
|
-
var
|
|
107179
|
-
toolUseIntent:
|
|
107709
|
+
import { z as z79 } from "zod";
|
|
107710
|
+
var REQUEST_TIMEOUT_MS61 = 6e4;
|
|
107711
|
+
var inputSchema77 = z79.object({
|
|
107712
|
+
toolUseIntent: z79.string().optional().describe(
|
|
107180
107713
|
"Brief description of what you intend to accomplish with this tool call"
|
|
107181
107714
|
),
|
|
107182
|
-
connectionId:
|
|
107183
|
-
method:
|
|
107715
|
+
connectionId: z79.string().describe("ID of the InfluxDB connection to use"),
|
|
107716
|
+
method: z79.enum(["GET", "POST", "DELETE"]).describe(
|
|
107184
107717
|
"HTTP method. POST for SQL/InfluxQL/Flux queries and writes, GET for metadata endpoints, DELETE for delete endpoints."
|
|
107185
107718
|
),
|
|
107186
|
-
path:
|
|
107719
|
+
path: z79.string().describe(
|
|
107187
107720
|
"API path appended to the InfluxDB base URL. Use '/api/v3/query_sql' for InfluxDB 3 SQL, '/api/v3/query_influxql' for InfluxDB 3 InfluxQL, '/api/v2/query?org={org}' for InfluxDB 2 Flux, '/api/v2/write?org={org}&bucket={bucket}' for writes."
|
|
107188
107721
|
),
|
|
107189
|
-
body:
|
|
107722
|
+
body: z79.union([z79.record(z79.string(), z79.unknown()), z79.string()]).optional().describe(
|
|
107190
107723
|
"Request body. JSON object for query endpoints ({ db, q } for InfluxDB 3 SQL; { query, type } for v2 query); raw string for Flux queries and line-protocol writes."
|
|
107191
107724
|
),
|
|
107192
|
-
contentType:
|
|
107725
|
+
contentType: z79.string().optional().describe(
|
|
107193
107726
|
"Content-Type header override. Use 'application/vnd.flux' for Flux queries and 'text/plain; charset=utf-8' for line-protocol writes. Defaults to 'application/json'."
|
|
107194
107727
|
)
|
|
107195
107728
|
});
|
|
107196
|
-
var
|
|
107197
|
-
|
|
107198
|
-
success:
|
|
107199
|
-
status:
|
|
107200
|
-
data:
|
|
107729
|
+
var outputSchema77 = z79.discriminatedUnion("success", [
|
|
107730
|
+
z79.object({
|
|
107731
|
+
success: z79.literal(true),
|
|
107732
|
+
status: z79.number(),
|
|
107733
|
+
data: z79.unknown()
|
|
107201
107734
|
}),
|
|
107202
|
-
|
|
107203
|
-
success:
|
|
107204
|
-
error:
|
|
107735
|
+
z79.object({
|
|
107736
|
+
success: z79.literal(false),
|
|
107737
|
+
error: z79.string()
|
|
107205
107738
|
})
|
|
107206
107739
|
]);
|
|
107207
107740
|
var requestTool47 = new ConnectorTool({
|
|
@@ -107210,8 +107743,8 @@ var requestTool47 = new ConnectorTool({
|
|
|
107210
107743
|
Authentication is handled automatically using the API token (\`Authorization: Token {token}\`). The instance URL is resolved from the connection.
|
|
107211
107744
|
Use this tool for all InfluxDB interactions: running SQL / InfluxQL / Flux queries, writing line protocol, and managing buckets / databases.
|
|
107212
107745
|
For read-only data exploration prefer SQL (InfluxDB 3) or InfluxQL queries \u2014 they return JSON that is straightforward to parse. Flux queries return annotated CSV.`,
|
|
107213
|
-
inputSchema:
|
|
107214
|
-
outputSchema:
|
|
107746
|
+
inputSchema: inputSchema77,
|
|
107747
|
+
outputSchema: outputSchema77,
|
|
107215
107748
|
async execute({ connectionId, method, path: path5, body, contentType }, connections) {
|
|
107216
107749
|
const connection = connections.find((c6) => c6.id === connectionId);
|
|
107217
107750
|
if (!connection) {
|
|
@@ -107224,11 +107757,11 @@ For read-only data exploration prefer SQL (InfluxDB 3) or InfluxQL queries \u201
|
|
|
107224
107757
|
`[connector-request] influxdb/${connection.name}: ${method} ${path5}`
|
|
107225
107758
|
);
|
|
107226
107759
|
try {
|
|
107227
|
-
const url =
|
|
107228
|
-
const token =
|
|
107760
|
+
const url = parameters64.url.getValue(connection).replace(/\/$/, "");
|
|
107761
|
+
const token = parameters64.token.getValue(connection);
|
|
107229
107762
|
const fullUrl = `${url}${path5.startsWith("/") ? "" : "/"}${path5}`;
|
|
107230
107763
|
const controller = new AbortController();
|
|
107231
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
107764
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS61);
|
|
107232
107765
|
const resolvedContentType = contentType ?? (typeof body === "string" ? "text/plain; charset=utf-8" : "application/json");
|
|
107233
107766
|
const serializedBody = body === void 0 ? void 0 : typeof body === "string" ? body : JSON.stringify(body);
|
|
107234
107767
|
try {
|
|
@@ -107282,15 +107815,16 @@ For read-only data exploration prefer SQL (InfluxDB 3) or InfluxQL queries \u201
|
|
|
107282
107815
|
});
|
|
107283
107816
|
|
|
107284
107817
|
// ../connectors/src/connectors/influxdb/index.ts
|
|
107285
|
-
var
|
|
107818
|
+
var tools64 = { request: requestTool47 };
|
|
107286
107819
|
var influxdbConnector = new ConnectorPlugin({
|
|
107287
107820
|
slug: "influxdb",
|
|
107288
107821
|
authType: AUTH_TYPES.API_KEY,
|
|
107289
107822
|
name: "InfluxDB",
|
|
107290
107823
|
description: "Connect to InfluxDB (Cloud or OSS) to query time-series data with SQL, InfluxQL, or Flux and to write line protocol.",
|
|
107291
107824
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/J1JauVRNmahSVTVrpPfQK/18350d8d3f2dc3be25e8e36ee52914a0/influxdb.png",
|
|
107292
|
-
parameters:
|
|
107825
|
+
parameters: parameters64,
|
|
107293
107826
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
107827
|
+
categories: ["database"],
|
|
107294
107828
|
onboarding: influxdbOnboarding,
|
|
107295
107829
|
systemPrompt: {
|
|
107296
107830
|
en: `### Variant Detection
|
|
@@ -107436,7 +107970,7 @@ export default async function handler(c: Context) {
|
|
|
107436
107970
|
- \u96C6\u8A08: \`AVG\`, \`SUM\`, \`MIN\`, \`MAX\`, \`COUNT\`\u3002\u6642\u9593\u30D0\u30B1\u30C3\u30C8: \`date_bin('5 minutes', time)\`
|
|
107437
107971
|
- measurement \u4E00\u89A7: \`SHOW TABLES\`\u3001\u5217\u4E00\u89A7: \`SHOW COLUMNS FROM <measurement>\``
|
|
107438
107972
|
},
|
|
107439
|
-
tools:
|
|
107973
|
+
tools: tools64,
|
|
107440
107974
|
async checkConnection(params) {
|
|
107441
107975
|
const url = (params.url ?? "").replace(/\/$/, "");
|
|
107442
107976
|
const token = params.token;
|
|
@@ -107532,6 +108066,7 @@ var plugins = {
|
|
|
107532
108066
|
customerio: customerioConnector,
|
|
107533
108067
|
gmail: gmailConnector,
|
|
107534
108068
|
gmailOauth: gmailOauthConnector,
|
|
108069
|
+
googleAuditLog: googleAuditLogConnector,
|
|
107535
108070
|
linkedinAds: linkedinAdsConnector,
|
|
107536
108071
|
zendesk: zendeskConnector,
|
|
107537
108072
|
zendeskOauth: zendeskOauthConnector,
|
|
@@ -107770,62 +108305,62 @@ import { watch as fsWatch2 } from "fs";
|
|
|
107770
108305
|
import path2 from "path";
|
|
107771
108306
|
|
|
107772
108307
|
// src/types/server-logic.ts
|
|
107773
|
-
import { z as
|
|
107774
|
-
var parameterMetaSchema =
|
|
107775
|
-
name:
|
|
107776
|
-
type:
|
|
107777
|
-
description:
|
|
107778
|
-
required:
|
|
107779
|
-
default:
|
|
107780
|
-
});
|
|
107781
|
-
var serverLogicCacheConfigSchema =
|
|
107782
|
-
ttl:
|
|
107783
|
-
staleWhileRevalidate:
|
|
107784
|
-
});
|
|
107785
|
-
var serverLogicSchemaObjectSchema =
|
|
107786
|
-
() =>
|
|
107787
|
-
type:
|
|
107788
|
-
format:
|
|
107789
|
-
description:
|
|
107790
|
-
nullable:
|
|
107791
|
-
enum:
|
|
108308
|
+
import { z as z80 } from "zod";
|
|
108309
|
+
var parameterMetaSchema = z80.object({
|
|
108310
|
+
name: z80.string(),
|
|
108311
|
+
type: z80.enum(["string", "number", "boolean"]),
|
|
108312
|
+
description: z80.string(),
|
|
108313
|
+
required: z80.boolean().optional(),
|
|
108314
|
+
default: z80.union([z80.string(), z80.number(), z80.boolean()]).optional()
|
|
108315
|
+
});
|
|
108316
|
+
var serverLogicCacheConfigSchema = z80.object({
|
|
108317
|
+
ttl: z80.number(),
|
|
108318
|
+
staleWhileRevalidate: z80.boolean().optional()
|
|
108319
|
+
});
|
|
108320
|
+
var serverLogicSchemaObjectSchema = z80.lazy(
|
|
108321
|
+
() => z80.object({
|
|
108322
|
+
type: z80.enum(["string", "number", "integer", "boolean", "object", "array", "null"]).optional(),
|
|
108323
|
+
format: z80.string().optional(),
|
|
108324
|
+
description: z80.string().optional(),
|
|
108325
|
+
nullable: z80.boolean().optional(),
|
|
108326
|
+
enum: z80.array(z80.union([z80.string(), z80.number(), z80.boolean(), z80.null()])).optional(),
|
|
107792
108327
|
items: serverLogicSchemaObjectSchema.optional(),
|
|
107793
|
-
properties:
|
|
107794
|
-
required:
|
|
107795
|
-
additionalProperties:
|
|
107796
|
-
minimum:
|
|
107797
|
-
maximum:
|
|
107798
|
-
minLength:
|
|
107799
|
-
maxLength:
|
|
107800
|
-
pattern:
|
|
108328
|
+
properties: z80.record(z80.string(), serverLogicSchemaObjectSchema).optional(),
|
|
108329
|
+
required: z80.array(z80.string()).optional(),
|
|
108330
|
+
additionalProperties: z80.union([z80.boolean(), serverLogicSchemaObjectSchema]).optional(),
|
|
108331
|
+
minimum: z80.number().optional(),
|
|
108332
|
+
maximum: z80.number().optional(),
|
|
108333
|
+
minLength: z80.number().optional(),
|
|
108334
|
+
maxLength: z80.number().optional(),
|
|
108335
|
+
pattern: z80.string().optional()
|
|
107801
108336
|
})
|
|
107802
108337
|
);
|
|
107803
|
-
var serverLogicMediaTypeSchema =
|
|
108338
|
+
var serverLogicMediaTypeSchema = z80.object({
|
|
107804
108339
|
schema: serverLogicSchemaObjectSchema.optional(),
|
|
107805
|
-
example:
|
|
108340
|
+
example: z80.unknown().optional()
|
|
107806
108341
|
});
|
|
107807
|
-
var serverLogicResponseSchema =
|
|
107808
|
-
description:
|
|
107809
|
-
content:
|
|
108342
|
+
var serverLogicResponseSchema = z80.object({
|
|
108343
|
+
description: z80.string().optional(),
|
|
108344
|
+
content: z80.record(z80.string(), serverLogicMediaTypeSchema).optional()
|
|
107810
108345
|
});
|
|
107811
108346
|
var jsonBaseFields = {
|
|
107812
|
-
description:
|
|
107813
|
-
parameters:
|
|
108347
|
+
description: z80.string(),
|
|
108348
|
+
parameters: z80.array(parameterMetaSchema).optional(),
|
|
107814
108349
|
response: serverLogicResponseSchema.optional(),
|
|
107815
108350
|
cache: serverLogicCacheConfigSchema.optional()
|
|
107816
108351
|
};
|
|
107817
|
-
var jsonSqlServerLogicSchema =
|
|
108352
|
+
var jsonSqlServerLogicSchema = z80.object({
|
|
107818
108353
|
...jsonBaseFields,
|
|
107819
|
-
type:
|
|
107820
|
-
query:
|
|
107821
|
-
connectionId:
|
|
108354
|
+
type: z80.literal("sql").optional(),
|
|
108355
|
+
query: z80.string(),
|
|
108356
|
+
connectionId: z80.string()
|
|
107822
108357
|
});
|
|
107823
|
-
var jsonTypeScriptServerLogicSchema =
|
|
108358
|
+
var jsonTypeScriptServerLogicSchema = z80.object({
|
|
107824
108359
|
...jsonBaseFields,
|
|
107825
|
-
type:
|
|
107826
|
-
handlerPath:
|
|
108360
|
+
type: z80.literal("typescript"),
|
|
108361
|
+
handlerPath: z80.string()
|
|
107827
108362
|
});
|
|
107828
|
-
var anyJsonServerLogicSchema =
|
|
108363
|
+
var anyJsonServerLogicSchema = z80.union([
|
|
107829
108364
|
jsonTypeScriptServerLogicSchema,
|
|
107830
108365
|
jsonSqlServerLogicSchema
|
|
107831
108366
|
]);
|