@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/main.js
CHANGED
|
@@ -909,17 +909,17 @@ var require_nacl_fast = __commonJS({
|
|
|
909
909
|
}
|
|
910
910
|
var sigma = new Uint8Array([101, 120, 112, 97, 110, 100, 32, 51, 50, 45, 98, 121, 116, 101, 32, 107]);
|
|
911
911
|
function crypto_stream_salsa20_xor(c6, cpos, m6, mpos, b6, n6, k6) {
|
|
912
|
-
var
|
|
912
|
+
var z81 = new Uint8Array(16), x6 = new Uint8Array(64);
|
|
913
913
|
var u6, i6;
|
|
914
|
-
for (i6 = 0; i6 < 16; i6++)
|
|
915
|
-
for (i6 = 0; i6 < 8; i6++)
|
|
914
|
+
for (i6 = 0; i6 < 16; i6++) z81[i6] = 0;
|
|
915
|
+
for (i6 = 0; i6 < 8; i6++) z81[i6] = n6[i6];
|
|
916
916
|
while (b6 >= 64) {
|
|
917
|
-
crypto_core_salsa20(x6,
|
|
917
|
+
crypto_core_salsa20(x6, z81, k6, sigma);
|
|
918
918
|
for (i6 = 0; i6 < 64; i6++) c6[cpos + i6] = m6[mpos + i6] ^ x6[i6];
|
|
919
919
|
u6 = 1;
|
|
920
920
|
for (i6 = 8; i6 < 16; i6++) {
|
|
921
|
-
u6 = u6 + (
|
|
922
|
-
|
|
921
|
+
u6 = u6 + (z81[i6] & 255) | 0;
|
|
922
|
+
z81[i6] = u6 & 255;
|
|
923
923
|
u6 >>>= 8;
|
|
924
924
|
}
|
|
925
925
|
b6 -= 64;
|
|
@@ -927,30 +927,30 @@ var require_nacl_fast = __commonJS({
|
|
|
927
927
|
mpos += 64;
|
|
928
928
|
}
|
|
929
929
|
if (b6 > 0) {
|
|
930
|
-
crypto_core_salsa20(x6,
|
|
930
|
+
crypto_core_salsa20(x6, z81, k6, sigma);
|
|
931
931
|
for (i6 = 0; i6 < b6; i6++) c6[cpos + i6] = m6[mpos + i6] ^ x6[i6];
|
|
932
932
|
}
|
|
933
933
|
return 0;
|
|
934
934
|
}
|
|
935
935
|
function crypto_stream_salsa20(c6, cpos, b6, n6, k6) {
|
|
936
|
-
var
|
|
936
|
+
var z81 = new Uint8Array(16), x6 = new Uint8Array(64);
|
|
937
937
|
var u6, i6;
|
|
938
|
-
for (i6 = 0; i6 < 16; i6++)
|
|
939
|
-
for (i6 = 0; i6 < 8; i6++)
|
|
938
|
+
for (i6 = 0; i6 < 16; i6++) z81[i6] = 0;
|
|
939
|
+
for (i6 = 0; i6 < 8; i6++) z81[i6] = n6[i6];
|
|
940
940
|
while (b6 >= 64) {
|
|
941
|
-
crypto_core_salsa20(x6,
|
|
941
|
+
crypto_core_salsa20(x6, z81, k6, sigma);
|
|
942
942
|
for (i6 = 0; i6 < 64; i6++) c6[cpos + i6] = x6[i6];
|
|
943
943
|
u6 = 1;
|
|
944
944
|
for (i6 = 8; i6 < 16; i6++) {
|
|
945
|
-
u6 = u6 + (
|
|
946
|
-
|
|
945
|
+
u6 = u6 + (z81[i6] & 255) | 0;
|
|
946
|
+
z81[i6] = u6 & 255;
|
|
947
947
|
u6 >>>= 8;
|
|
948
948
|
}
|
|
949
949
|
b6 -= 64;
|
|
950
950
|
cpos += 64;
|
|
951
951
|
}
|
|
952
952
|
if (b6 > 0) {
|
|
953
|
-
crypto_core_salsa20(x6,
|
|
953
|
+
crypto_core_salsa20(x6, z81, k6, sigma);
|
|
954
954
|
for (i6 = 0; i6 < b6; i6++) c6[cpos + i6] = x6[i6];
|
|
955
955
|
}
|
|
956
956
|
return 0;
|
|
@@ -1830,12 +1830,12 @@ var require_nacl_fast = __commonJS({
|
|
|
1830
1830
|
for (a6 = 0; a6 < 16; a6++) o6[a6] = c6[a6];
|
|
1831
1831
|
}
|
|
1832
1832
|
function crypto_scalarmult(q6, n6, p6) {
|
|
1833
|
-
var
|
|
1833
|
+
var z81 = new Uint8Array(32);
|
|
1834
1834
|
var x6 = new Float64Array(80), r6, i6;
|
|
1835
1835
|
var a6 = gf(), b6 = gf(), c6 = gf(), d6 = gf(), e6 = gf(), f6 = gf();
|
|
1836
|
-
for (i6 = 0; i6 < 31; i6++)
|
|
1837
|
-
|
|
1838
|
-
|
|
1836
|
+
for (i6 = 0; i6 < 31; i6++) z81[i6] = n6[i6];
|
|
1837
|
+
z81[31] = n6[31] & 127 | 64;
|
|
1838
|
+
z81[0] &= 248;
|
|
1839
1839
|
unpack25519(x6, p6);
|
|
1840
1840
|
for (i6 = 0; i6 < 16; i6++) {
|
|
1841
1841
|
b6[i6] = x6[i6];
|
|
@@ -1843,7 +1843,7 @@ var require_nacl_fast = __commonJS({
|
|
|
1843
1843
|
}
|
|
1844
1844
|
a6[0] = d6[0] = 1;
|
|
1845
1845
|
for (i6 = 254; i6 >= 0; --i6) {
|
|
1846
|
-
r6 =
|
|
1846
|
+
r6 = z81[i6 >>> 3] >>> (i6 & 7) & 1;
|
|
1847
1847
|
sel25519(a6, b6, r6);
|
|
1848
1848
|
sel25519(c6, d6, r6);
|
|
1849
1849
|
A2(e6, a6, c6);
|
|
@@ -4860,8 +4860,8 @@ var require_poly1305 = __commonJS({
|
|
|
4860
4860
|
});
|
|
4861
4861
|
var u6 = {}, w6;
|
|
4862
4862
|
for (w6 in b6) b6.hasOwnProperty(w6) && (u6[w6] = b6[w6]);
|
|
4863
|
-
var x6 = "object" === typeof window, y3 = "function" === typeof importScripts,
|
|
4864
|
-
if (
|
|
4863
|
+
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;
|
|
4864
|
+
if (z81) B2 = y3 ? __require("path").dirname(B2) + "/" : __dirname + "/", C2 = function(a6, c6) {
|
|
4865
4865
|
var d6 = H2(a6);
|
|
4866
4866
|
if (d6) return c6 ? d6 : d6.toString();
|
|
4867
4867
|
F2 || (F2 = __require("fs"));
|
|
@@ -5117,7 +5117,7 @@ var require_poly1305 = __commonJS({
|
|
|
5117
5117
|
function H2(a6) {
|
|
5118
5118
|
if (a6.startsWith(V)) {
|
|
5119
5119
|
a6 = a6.slice(V.length);
|
|
5120
|
-
if ("boolean" === typeof
|
|
5120
|
+
if ("boolean" === typeof z81 && z81) {
|
|
5121
5121
|
var c6 = Buffer.from(a6, "base64");
|
|
5122
5122
|
c6 = new Uint8Array(c6.buffer, c6.byteOffset, c6.byteLength);
|
|
5123
5123
|
} else try {
|
|
@@ -39040,14 +39040,14 @@ var init_NormalizedSchema = __esm({
|
|
|
39040
39040
|
throw new Error("@smithy/core/schema - cannot iterate non-struct schema.");
|
|
39041
39041
|
}
|
|
39042
39042
|
const struct = this.getSchema();
|
|
39043
|
-
const
|
|
39043
|
+
const z81 = struct[4].length;
|
|
39044
39044
|
let it = struct[anno.it];
|
|
39045
|
-
if (it &&
|
|
39045
|
+
if (it && z81 === it.length) {
|
|
39046
39046
|
yield* it;
|
|
39047
39047
|
return;
|
|
39048
39048
|
}
|
|
39049
|
-
it = Array(
|
|
39050
|
-
for (let i6 = 0; i6 <
|
|
39049
|
+
it = Array(z81);
|
|
39050
|
+
for (let i6 = 0; i6 < z81; ++i6) {
|
|
39051
39051
|
const k6 = struct[4][i6];
|
|
39052
39052
|
const v7 = member([struct[5][i6], 0], k6);
|
|
39053
39053
|
yield it[i6] = [k6, v7];
|
|
@@ -39723,12 +39723,12 @@ var init_split_header = __esm({
|
|
|
39723
39723
|
"../../node_modules/@smithy/core/dist-es/submodules/serde/split-header.js"() {
|
|
39724
39724
|
"use strict";
|
|
39725
39725
|
splitHeader = (value) => {
|
|
39726
|
-
const
|
|
39726
|
+
const z81 = value.length;
|
|
39727
39727
|
const values = [];
|
|
39728
39728
|
let withinQuotes = false;
|
|
39729
39729
|
let prevChar = void 0;
|
|
39730
39730
|
let anchor = 0;
|
|
39731
|
-
for (let i6 = 0; i6 <
|
|
39731
|
+
for (let i6 = 0; i6 < z81; ++i6) {
|
|
39732
39732
|
const char = value[i6];
|
|
39733
39733
|
switch (char) {
|
|
39734
39734
|
case `"`:
|
|
@@ -39749,12 +39749,12 @@ var init_split_header = __esm({
|
|
|
39749
39749
|
values.push(value.slice(anchor));
|
|
39750
39750
|
return values.map((v7) => {
|
|
39751
39751
|
v7 = v7.trim();
|
|
39752
|
-
const
|
|
39753
|
-
if (
|
|
39752
|
+
const z82 = v7.length;
|
|
39753
|
+
if (z82 < 2) {
|
|
39754
39754
|
return v7;
|
|
39755
39755
|
}
|
|
39756
|
-
if (v7[0] === `"` && v7[
|
|
39757
|
-
v7 = v7.slice(1,
|
|
39756
|
+
if (v7[0] === `"` && v7[z82 - 1] === `"`) {
|
|
39757
|
+
v7 = v7.slice(1, z82 - 1);
|
|
39758
39758
|
}
|
|
39759
39759
|
return v7.replace(/\\"/g, '"');
|
|
39760
39760
|
});
|
|
@@ -41152,11 +41152,11 @@ var init_EndpointCache = __esm({
|
|
|
41152
41152
|
}
|
|
41153
41153
|
hash(endpointParams) {
|
|
41154
41154
|
let buffer = "";
|
|
41155
|
-
const { parameters:
|
|
41156
|
-
if (
|
|
41155
|
+
const { parameters: parameters65 } = this;
|
|
41156
|
+
if (parameters65.length === 0) {
|
|
41157
41157
|
return false;
|
|
41158
41158
|
}
|
|
41159
|
-
for (const param of
|
|
41159
|
+
for (const param of parameters65) {
|
|
41160
41160
|
const val = String(endpointParams[param] ?? "");
|
|
41161
41161
|
if (val.includes("|;")) {
|
|
41162
41162
|
return false;
|
|
@@ -41873,15 +41873,15 @@ var init_resolveEndpoint = __esm({
|
|
|
41873
41873
|
init_utils();
|
|
41874
41874
|
resolveEndpoint = (ruleSetObject, options) => {
|
|
41875
41875
|
const { endpointParams, logger: logger2 } = options;
|
|
41876
|
-
const { parameters:
|
|
41876
|
+
const { parameters: parameters65, rules } = ruleSetObject;
|
|
41877
41877
|
options.logger?.debug?.(`${debugId} Initial EndpointParams: ${toDebugString(endpointParams)}`);
|
|
41878
|
-
const paramsWithDefault = Object.entries(
|
|
41878
|
+
const paramsWithDefault = Object.entries(parameters65).filter(([, v7]) => v7.default != null).map(([k6, v7]) => [k6, v7.default]);
|
|
41879
41879
|
if (paramsWithDefault.length > 0) {
|
|
41880
41880
|
for (const [paramKey, paramDefaultValue] of paramsWithDefault) {
|
|
41881
41881
|
endpointParams[paramKey] = endpointParams[paramKey] ?? paramDefaultValue;
|
|
41882
41882
|
}
|
|
41883
41883
|
}
|
|
41884
|
-
const requiredParams = Object.entries(
|
|
41884
|
+
const requiredParams = Object.entries(parameters65).filter(([, v7]) => v7.required).map(([k6]) => k6);
|
|
41885
41885
|
for (const requiredParam of requiredParams) {
|
|
41886
41886
|
if (endpointParams[requiredParam] == null) {
|
|
41887
41887
|
throw new EndpointError(`Missing required parameter: '${requiredParam}'`);
|
|
@@ -47491,8 +47491,8 @@ var init_ProtocolLib = __esm({
|
|
|
47491
47491
|
constructor(queryCompat = false) {
|
|
47492
47492
|
this.queryCompat = queryCompat;
|
|
47493
47493
|
}
|
|
47494
|
-
resolveRestContentType(defaultContentType,
|
|
47495
|
-
const members =
|
|
47494
|
+
resolveRestContentType(defaultContentType, inputSchema78) {
|
|
47495
|
+
const members = inputSchema78.getMemberSchemas();
|
|
47496
47496
|
const httpPayloadMember = Object.values(members).find((m6) => {
|
|
47497
47497
|
return !!m6.getMergedTraits().httpPayload;
|
|
47498
47498
|
});
|
|
@@ -47507,7 +47507,7 @@ var init_ProtocolLib = __esm({
|
|
|
47507
47507
|
} else {
|
|
47508
47508
|
return defaultContentType;
|
|
47509
47509
|
}
|
|
47510
|
-
} else if (!
|
|
47510
|
+
} else if (!inputSchema78.isUnitSchema()) {
|
|
47511
47511
|
const hasBody = Object.values(members).find((m6) => {
|
|
47512
47512
|
const { httpQuery, httpQueryParams, httpHeader, httpLabel, httpPrefixHeaders } = m6.getMergedTraits();
|
|
47513
47513
|
const noPrefixHeaders = httpPrefixHeaders === void 0;
|
|
@@ -48350,9 +48350,9 @@ var init_AwsRestJsonProtocol = __esm({
|
|
|
48350
48350
|
}
|
|
48351
48351
|
async serializeRequest(operationSchema, input, context) {
|
|
48352
48352
|
const request2 = await super.serializeRequest(operationSchema, input, context);
|
|
48353
|
-
const
|
|
48353
|
+
const inputSchema78 = NormalizedSchema.of(operationSchema.input);
|
|
48354
48354
|
if (!request2.headers["content-type"]) {
|
|
48355
|
-
const contentType = this.mixin.resolveRestContentType(this.getDefaultContentType(),
|
|
48355
|
+
const contentType = this.mixin.resolveRestContentType(this.getDefaultContentType(), inputSchema78);
|
|
48356
48356
|
if (contentType) {
|
|
48357
48357
|
request2.headers["content-type"] = contentType;
|
|
48358
48358
|
}
|
|
@@ -48364,8 +48364,8 @@ var init_AwsRestJsonProtocol = __esm({
|
|
|
48364
48364
|
}
|
|
48365
48365
|
async deserializeResponse(operationSchema, context, response) {
|
|
48366
48366
|
const output = await super.deserializeResponse(operationSchema, context, response);
|
|
48367
|
-
const
|
|
48368
|
-
for (const [name, member2] of
|
|
48367
|
+
const outputSchema78 = NormalizedSchema.of(operationSchema.output);
|
|
48368
|
+
for (const [name, member2] of outputSchema78.structIterator()) {
|
|
48369
48369
|
if (member2.getMemberTraits().httpPayload && !(name in output)) {
|
|
48370
48370
|
output[name] = null;
|
|
48371
48371
|
}
|
|
@@ -52229,22 +52229,22 @@ var init_loadCognitoIdentity = __esm({
|
|
|
52229
52229
|
});
|
|
52230
52230
|
|
|
52231
52231
|
// ../../node_modules/@aws-sdk/credential-provider-cognito-identity/dist-es/fromCognitoIdentity.js
|
|
52232
|
-
function fromCognitoIdentity(
|
|
52232
|
+
function fromCognitoIdentity(parameters65) {
|
|
52233
52233
|
return async (awsIdentityProperties) => {
|
|
52234
|
-
|
|
52234
|
+
parameters65.logger?.debug("@aws-sdk/credential-provider-cognito-identity - fromCognitoIdentity");
|
|
52235
52235
|
const { GetCredentialsForIdentityCommand: GetCredentialsForIdentityCommand2, CognitoIdentityClient: CognitoIdentityClient2 } = await Promise.resolve().then(() => (init_loadCognitoIdentity(), loadCognitoIdentity_exports));
|
|
52236
|
-
const fromConfigs = (property) =>
|
|
52237
|
-
const { Credentials: { AccessKeyId = throwOnMissingAccessKeyId(
|
|
52236
|
+
const fromConfigs = (property) => parameters65.clientConfig?.[property] ?? parameters65.parentClientConfig?.[property] ?? awsIdentityProperties?.callerClientConfig?.[property];
|
|
52237
|
+
const { Credentials: { AccessKeyId = throwOnMissingAccessKeyId(parameters65.logger), Expiration, SecretKey = throwOnMissingSecretKey(parameters65.logger), SessionToken } = throwOnMissingCredentials(parameters65.logger) } = await (parameters65.client ?? new CognitoIdentityClient2(Object.assign({}, parameters65.clientConfig ?? {}, {
|
|
52238
52238
|
region: fromConfigs("region"),
|
|
52239
52239
|
profile: fromConfigs("profile"),
|
|
52240
52240
|
userAgentAppId: fromConfigs("userAgentAppId")
|
|
52241
52241
|
}))).send(new GetCredentialsForIdentityCommand2({
|
|
52242
|
-
CustomRoleArn:
|
|
52243
|
-
IdentityId:
|
|
52244
|
-
Logins:
|
|
52242
|
+
CustomRoleArn: parameters65.customRoleArn,
|
|
52243
|
+
IdentityId: parameters65.identityId,
|
|
52244
|
+
Logins: parameters65.logins ? await resolveLogins(parameters65.logins) : void 0
|
|
52245
52245
|
}));
|
|
52246
52246
|
return {
|
|
52247
|
-
identityId:
|
|
52247
|
+
identityId: parameters65.identityId,
|
|
52248
52248
|
accessKeyId: AccessKeyId,
|
|
52249
52249
|
secretAccessKey: SecretKey,
|
|
52250
52250
|
sessionToken: SessionToken,
|
|
@@ -64805,11 +64805,11 @@ var require_bignumber = __commonJS({
|
|
|
64805
64805
|
return n6 > 0 || n6 === i6 ? i6 : i6 - 1;
|
|
64806
64806
|
}
|
|
64807
64807
|
function coeffToString(a6) {
|
|
64808
|
-
var s6,
|
|
64808
|
+
var s6, z81, i6 = 1, j6 = a6.length, r6 = a6[0] + "";
|
|
64809
64809
|
for (; i6 < j6; ) {
|
|
64810
64810
|
s6 = a6[i6++] + "";
|
|
64811
|
-
|
|
64812
|
-
for (;
|
|
64811
|
+
z81 = LOG_BASE - s6.length;
|
|
64812
|
+
for (; z81--; s6 = "0" + s6) ;
|
|
64813
64813
|
r6 += s6;
|
|
64814
64814
|
}
|
|
64815
64815
|
for (j6 = r6.length; r6.charCodeAt(--j6) === 48; ) ;
|
|
@@ -64842,15 +64842,15 @@ var require_bignumber = __commonJS({
|
|
|
64842
64842
|
function toExponential(str, e6) {
|
|
64843
64843
|
return (str.length > 1 ? str.charAt(0) + "." + str.slice(1) : str) + (e6 < 0 ? "e" : "e+") + e6;
|
|
64844
64844
|
}
|
|
64845
|
-
function toFixedPoint(str, e6,
|
|
64845
|
+
function toFixedPoint(str, e6, z81) {
|
|
64846
64846
|
var len, zs;
|
|
64847
64847
|
if (e6 < 0) {
|
|
64848
|
-
for (zs =
|
|
64848
|
+
for (zs = z81 + "."; ++e6; zs += z81) ;
|
|
64849
64849
|
str = zs + str;
|
|
64850
64850
|
} else {
|
|
64851
64851
|
len = str.length;
|
|
64852
64852
|
if (++e6 > len) {
|
|
64853
|
-
for (zs =
|
|
64853
|
+
for (zs = z81, e6 -= len; --e6; zs += z81) ;
|
|
64854
64854
|
str += zs;
|
|
64855
64855
|
} else if (e6 < len) {
|
|
64856
64856
|
str = str.slice(0, e6) + "." + str.slice(e6);
|
|
@@ -86468,6 +86468,7 @@ var ConnectorPlugin = class _ConnectorPlugin {
|
|
|
86468
86468
|
releaseFlag;
|
|
86469
86469
|
proxyPolicy;
|
|
86470
86470
|
experimentalAttributes;
|
|
86471
|
+
categories;
|
|
86471
86472
|
onboarding;
|
|
86472
86473
|
systemPrompt;
|
|
86473
86474
|
tools;
|
|
@@ -86483,6 +86484,7 @@ var ConnectorPlugin = class _ConnectorPlugin {
|
|
|
86483
86484
|
this.releaseFlag = config.releaseFlag;
|
|
86484
86485
|
this.proxyPolicy = config.proxyPolicy;
|
|
86485
86486
|
this.experimentalAttributes = config.experimentalAttributes;
|
|
86487
|
+
this.categories = config.categories ?? [];
|
|
86486
86488
|
this.onboarding = config.onboarding;
|
|
86487
86489
|
this.systemPrompt = config.systemPrompt;
|
|
86488
86490
|
this.tools = config.tools;
|
|
@@ -86847,6 +86849,7 @@ var snowflakeConnector = new ConnectorPlugin({
|
|
|
86847
86849
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/6oyVtAcP3pMlXaOrts9unk/b7a9dc25d15c388b66e983041b855447/snowflake.svg",
|
|
86848
86850
|
parameters,
|
|
86849
86851
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
86852
|
+
categories: ["database"],
|
|
86850
86853
|
onboarding: snowflakeOnboarding,
|
|
86851
86854
|
systemPrompt: {
|
|
86852
86855
|
en: `### Tools
|
|
@@ -87130,6 +87133,7 @@ var snowflakePatConnector = new ConnectorPlugin({
|
|
|
87130
87133
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/6oyVtAcP3pMlXaOrts9unk/b7a9dc25d15c388b66e983041b855447/snowflake.svg",
|
|
87131
87134
|
parameters: parameters2,
|
|
87132
87135
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
87136
|
+
categories: ["database"],
|
|
87133
87137
|
onboarding: snowflakeOnboarding,
|
|
87134
87138
|
systemPrompt: {
|
|
87135
87139
|
en: `### Tools
|
|
@@ -87493,6 +87497,7 @@ var postgresqlConnector = new ConnectorPlugin({
|
|
|
87493
87497
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/42AHi2uqteUn65MyqdN6V7/a0f68f12af6aac96bbcda5980f43de07/elephant.png",
|
|
87494
87498
|
parameters: parameters3,
|
|
87495
87499
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
87500
|
+
categories: ["database"],
|
|
87496
87501
|
onboarding: postgresqlOnboarding,
|
|
87497
87502
|
systemPrompt: {
|
|
87498
87503
|
en: `### Tools
|
|
@@ -87692,6 +87697,7 @@ var mysqlConnector = new ConnectorPlugin({
|
|
|
87692
87697
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/6ghPFeGgl7uBs5NHH1a4L/512c9433beec5b595caa41f04921c1f9/logo-mysql-170x115.png",
|
|
87693
87698
|
parameters: parameters4,
|
|
87694
87699
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
87700
|
+
categories: ["database"],
|
|
87695
87701
|
onboarding: mysqlOnboarding,
|
|
87696
87702
|
systemPrompt: {
|
|
87697
87703
|
en: `### Tools
|
|
@@ -88066,6 +88072,7 @@ var bigqueryConnector = new ConnectorPlugin({
|
|
|
88066
88072
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/6nlehQyOmdbktG5hOYkYMr/6ca559140d5ddc7dadc5eac88858a563/bigquery.svg",
|
|
88067
88073
|
parameters: parameters5,
|
|
88068
88074
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
88075
|
+
categories: ["database"],
|
|
88069
88076
|
onboarding: bigqueryOnboarding,
|
|
88070
88077
|
systemPrompt: {
|
|
88071
88078
|
en: `### Tools
|
|
@@ -88596,6 +88603,7 @@ var bigqueryOauthConnector = new ConnectorPlugin({
|
|
|
88596
88603
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/6nlehQyOmdbktG5hOYkYMr/6ca559140d5ddc7dadc5eac88858a563/bigquery.svg",
|
|
88597
88604
|
parameters: parameters6,
|
|
88598
88605
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
88606
|
+
categories: ["database"],
|
|
88599
88607
|
onboarding: bigqueryOnboarding2,
|
|
88600
88608
|
proxyPolicy: {
|
|
88601
88609
|
allowlist: [
|
|
@@ -88866,6 +88874,7 @@ var awsAthenaConnector = new ConnectorPlugin({
|
|
|
88866
88874
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/5x0vIHtUHfJJMZUv4RFOYZ/5059bac389f0169542f39cdb4b387d2c/Athena.svg",
|
|
88867
88875
|
parameters: parameters7,
|
|
88868
88876
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
88877
|
+
categories: ["database"],
|
|
88869
88878
|
onboarding: awsAthenaOnboarding,
|
|
88870
88879
|
systemPrompt: {
|
|
88871
88880
|
en: `### Tools
|
|
@@ -89238,6 +89247,7 @@ var redshiftConnector = new ConnectorPlugin({
|
|
|
89238
89247
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/AEwW2psmrnZ7htTVsgA9t/a637e31707c5d760be73ce1d8ec75580/aws-redshift-logo.svg",
|
|
89239
89248
|
parameters: parameters8,
|
|
89240
89249
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
89250
|
+
categories: ["database"],
|
|
89241
89251
|
onboarding: redshiftOnboarding,
|
|
89242
89252
|
systemPrompt: {
|
|
89243
89253
|
en: `### Tools
|
|
@@ -89524,6 +89534,7 @@ var databricksConnector = new ConnectorPlugin({
|
|
|
89524
89534
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/6QgcrfpQOKg18P7DdgKerd/af55bf0d871339049824dd167b97a29f/databricks-icon.svg",
|
|
89525
89535
|
parameters: parameters9,
|
|
89526
89536
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
89537
|
+
categories: ["database"],
|
|
89527
89538
|
onboarding: databricksOnboarding,
|
|
89528
89539
|
systemPrompt: {
|
|
89529
89540
|
en: `### Tools
|
|
@@ -89730,6 +89741,7 @@ var airtableConnector = new ConnectorPlugin({
|
|
|
89730
89741
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/19JUphfOZjyjTK6Zg4NGCf/8c56227b088cada52d3a2d9385a3be97/airtable.svg",
|
|
89731
89742
|
parameters: parameters10,
|
|
89732
89743
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
89744
|
+
categories: ["productivity"],
|
|
89733
89745
|
onboarding: airtableOnboarding,
|
|
89734
89746
|
systemPrompt: {
|
|
89735
89747
|
en: `### Tools
|
|
@@ -90211,6 +90223,7 @@ var googleAdsConnector = new ConnectorPlugin({
|
|
|
90211
90223
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/1NGvmgvCxX7Tn11EST2N3N/a745fe7c63d360ed40a27ddaad3af168/google-ads.svg",
|
|
90212
90224
|
parameters: parameters11,
|
|
90213
90225
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
90226
|
+
categories: ["marketing"],
|
|
90214
90227
|
onboarding: googleAdsOnboarding,
|
|
90215
90228
|
proxyPolicy: {
|
|
90216
90229
|
allowlist: [
|
|
@@ -90516,6 +90529,7 @@ var googleAnalyticsConnector = new ConnectorPlugin({
|
|
|
90516
90529
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/7fs0ipzxuD9mACDzBATtxX/3c53ed90d15c96483e4f78cb29dab5e9/google-analytics.svg",
|
|
90517
90530
|
parameters: parameters12,
|
|
90518
90531
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
90532
|
+
categories: ["marketing"],
|
|
90519
90533
|
onboarding: googleAnalyticsOnboarding,
|
|
90520
90534
|
systemPrompt: {
|
|
90521
90535
|
en: `### Tools
|
|
@@ -91081,6 +91095,7 @@ var googleAnalyticsOauthConnector = new ConnectorPlugin({
|
|
|
91081
91095
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/7fs0ipzxuD9mACDzBATtxX/3c53ed90d15c96483e4f78cb29dab5e9/google-analytics.svg",
|
|
91082
91096
|
parameters: parameters13,
|
|
91083
91097
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
91098
|
+
categories: ["marketing"],
|
|
91084
91099
|
onboarding: googleAnalyticsOauthOnboarding,
|
|
91085
91100
|
proxyPolicy: {
|
|
91086
91101
|
allowlist: [
|
|
@@ -91309,7 +91324,8 @@ var outputSchema21 = z21.discriminatedUnion("success", [
|
|
|
91309
91324
|
z21.object({
|
|
91310
91325
|
success: z21.literal(true),
|
|
91311
91326
|
status: z21.number(),
|
|
91312
|
-
data: z21.record(z21.string(), z21.unknown())
|
|
91327
|
+
data: z21.record(z21.string(), z21.unknown()),
|
|
91328
|
+
serviceAccountEmail: z21.string()
|
|
91313
91329
|
}),
|
|
91314
91330
|
z21.object({
|
|
91315
91331
|
success: z21.literal(false),
|
|
@@ -91390,7 +91406,12 @@ var requestTool5 = new ConnectorTool({
|
|
|
91390
91406
|
serviceAccountEmail
|
|
91391
91407
|
};
|
|
91392
91408
|
}
|
|
91393
|
-
return {
|
|
91409
|
+
return {
|
|
91410
|
+
success: true,
|
|
91411
|
+
status: response.status,
|
|
91412
|
+
data,
|
|
91413
|
+
serviceAccountEmail
|
|
91414
|
+
};
|
|
91394
91415
|
} finally {
|
|
91395
91416
|
clearTimeout(timeout);
|
|
91396
91417
|
}
|
|
@@ -91437,7 +91458,8 @@ var outputSchema22 = z22.discriminatedUnion("success", [
|
|
|
91437
91458
|
z22.object({
|
|
91438
91459
|
success: z22.literal(true),
|
|
91439
91460
|
status: z22.number(),
|
|
91440
|
-
data: z22.record(z22.string(), z22.unknown())
|
|
91461
|
+
data: z22.record(z22.string(), z22.unknown()),
|
|
91462
|
+
serviceAccountEmail: z22.string()
|
|
91441
91463
|
}),
|
|
91442
91464
|
z22.object({
|
|
91443
91465
|
success: z22.literal(false),
|
|
@@ -91519,7 +91541,12 @@ var requestWithDelegationTool = new ConnectorTool({
|
|
|
91519
91541
|
serviceAccountEmail
|
|
91520
91542
|
};
|
|
91521
91543
|
}
|
|
91522
|
-
return {
|
|
91544
|
+
return {
|
|
91545
|
+
success: true,
|
|
91546
|
+
status: response.status,
|
|
91547
|
+
data,
|
|
91548
|
+
serviceAccountEmail
|
|
91549
|
+
};
|
|
91523
91550
|
} finally {
|
|
91524
91551
|
clearTimeout(timeout);
|
|
91525
91552
|
}
|
|
@@ -91541,7 +91568,18 @@ var READONLY_SCOPES = '["https://www.googleapis.com/auth/calendar.readonly"]';
|
|
|
91541
91568
|
var SERVICE_ACCOUNT_KEY_PARAM_SLUG = parameters14.serviceAccountKeyJsonBase64.slug;
|
|
91542
91569
|
var googleCalendarOnboarding = new ConnectorOnboarding({
|
|
91543
91570
|
connectionSetupInstructions: {
|
|
91544
|
-
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
|
|
91571
|
+
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
|
|
91572
|
+
|
|
91573
|
+
## \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
|
|
91574
|
+
|
|
91575
|
+
\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
|
|
91576
|
+
|
|
91577
|
+
\`${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:
|
|
91578
|
+
- \`method\`: \`"GET"\`
|
|
91579
|
+
- \`path\`: \`"/users/me/calendarList"\`
|
|
91580
|
+
- \`scopes\`: \`${READONLY_SCOPES}\`
|
|
91581
|
+
|
|
91582
|
+
\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
|
|
91545
91583
|
|
|
91546
91584
|
## \u30B9\u30C6\u30C3\u30D7 1: \u30A2\u30AF\u30BB\u30B9\u65B9\u6CD5\u3092\u9078\u629E
|
|
91547
91585
|
|
|
@@ -91553,52 +91591,60 @@ var googleCalendarOnboarding = new ConnectorOnboarding({
|
|
|
91553
91591
|
- \`{ 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" }\`
|
|
91554
91592
|
- \`{ label: "\u4E21\u65B9\u3092\u7D44\u307F\u5408\u308F\u305B\u308B", value: "both" }\`
|
|
91555
91593
|
|
|
91556
|
-
## \u30B9\u30C6\u30C3\u30D7 2: \u30B5\u30FC\u30D3\u30B9\u30A2\u30AB\u30A6\u30F3\u30C8\u7D4C\u8DEF
|
|
91594
|
+
## \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)
|
|
91595
|
+
|
|
91596
|
+
\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
|
|
91597
|
+
|
|
91598
|
+
1. \`askUserQuestion\` \u3067\u30AB\u30EC\u30F3\u30C0\u30FC ID \u3092\u805E\u304F:
|
|
91599
|
+
- \`type\`: \`"freeText"\`
|
|
91600
|
+
- \`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
|
|
91601
|
+
- \`placeholder\`: \`"alice@example.com, c_xxx@group.calendar.google.com"\`
|
|
91557
91602
|
|
|
91558
|
-
|
|
91603
|
+
2. \u5165\u529B\u3055\u308C\u305F\u5404\u30AB\u30EC\u30F3\u30C0\u30FC ID \`<id>\` \u306B\u3064\u3044\u3066 \`${requestToolName}\` \u3067\u758E\u901A\u78BA\u8A8D:
|
|
91559
91604
|
- \`method\`: \`"GET"\`
|
|
91560
|
-
- \`path\`: \`"/
|
|
91605
|
+
- \`path\`: \`"/calendars/<id>"\`
|
|
91561
91606
|
- \`scopes\`: \`${READONLY_SCOPES}\`
|
|
91607
|
+
- \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
|
|
91608
|
+
- \u5931\u6557 (404 / 403 \u7B49) \u306F\u30A2\u30AF\u30BB\u30B9\u4E0D\u53EF\u3068\u3057\u3066\u8A18\u9332
|
|
91562
91609
|
|
|
91563
|
-
|
|
91564
|
-
- \
|
|
91565
|
-
- \
|
|
91566
|
-
- \`type\`: \`"multiSelect"\`
|
|
91567
|
-
- \`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
|
|
91568
|
-
- \`options\`: \u5404\u30AB\u30EC\u30F3\u30C0\u30FC\u306B\u3064\u3044\u3066 \`label\`: \`"<\u30AB\u30EC\u30F3\u30C0\u30FC\u540D>"\`\u3001\`value\`: \`"<calendarId>"\`
|
|
91610
|
+
3. \u7D50\u679C\u306B\u5FDC\u3058\u3066\u5206\u5C90:
|
|
91611
|
+
- **\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
|
|
91612
|
+
- **\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
|
|
91569
91613
|
|
|
91570
|
-
## \u30B9\u30C6\u30C3\u30D7 3: \u30C9\u30E1\u30A4\u30F3\u5168\u4F53\u306E\u59D4\u4EFB\u7D4C\u8DEF
|
|
91614
|
+
## \u30B9\u30C6\u30C3\u30D7 3: \u30C9\u30E1\u30A4\u30F3\u5168\u4F53\u306E\u59D4\u4EFB\u7D4C\u8DEF (\`"delegation"\` \u307E\u305F\u306F \`"both"\` \u306E\u5834\u5408)
|
|
91615
|
+
|
|
91616
|
+
\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
|
|
91571
91617
|
|
|
91572
91618
|
1. \`askUserQuestion\` \u3067\u5BFE\u8C61\u30E6\u30FC\u30B6\u30FC\u306E\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3092\u805E\u304F:
|
|
91573
91619
|
- \`type\`: \`"freeText"\`
|
|
91574
|
-
- \`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\
|
|
91620
|
+
- \`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
|
|
91575
91621
|
- \`placeholder\`: \`"alice@example.com, bob@example.com"\`
|
|
91576
91622
|
|
|
91577
|
-
2. \
|
|
91623
|
+
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:
|
|
91578
91624
|
- \`method\`: \`"GET"\`
|
|
91579
91625
|
- \`path\`: \`"/users/me/calendarList"\`
|
|
91580
91626
|
- \`subject\`: \`<email>\`
|
|
91581
91627
|
- \`scopes\`: \`${READONLY_SCOPES}\`
|
|
91582
91628
|
|
|
91583
|
-
3. \
|
|
91584
|
-
-
|
|
91585
|
-
-
|
|
91629
|
+
3. \u7D50\u679C\u306B\u5FDC\u3058\u3066\u5206\u5C90:
|
|
91630
|
+
- **\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
|
|
91631
|
+
- **\u4E00\u90E8\u307E\u305F\u306F\u5168\u4EF6\u6210\u529F**: \`askUserQuestion\` \u3067\u30AB\u30EC\u30F3\u30C0\u30FC\u3092\u7D5E\u308A\u8FBC\u307E\u305B\u308B
|
|
91586
91632
|
- \`type\`: \`"multiSelect"\`
|
|
91587
91633
|
- \`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
|
|
91588
|
-
- \`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>"\`
|
|
91634
|
+
- \`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>"\`
|
|
91589
91635
|
- \u4E00\u90E8\u5931\u6557\u304C\u3042\u308C\u3070\u3001\u305D\u306E\u65E8\u3092 1 \u6587\u3067\u77ED\u304F\u4F1D\u3048\u308B
|
|
91590
91636
|
|
|
91591
91637
|
## \u30B9\u30C6\u30C3\u30D7 4: Project Knowledge \u306B\u8A18\u9332
|
|
91592
91638
|
|
|
91593
|
-
\u30B9\u30C6\u30C3\u30D7 2 \u3068 3 \u3067\
|
|
91639
|
+
\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:
|
|
91594
91640
|
- \u30C9\u30E1\u30A4\u30F3\u5168\u4F53\u306E\u59D4\u4EFB\u7D4C\u7531: \`- calendar: <calendarId> (delegation, subject: <subject>, name: "<\u30AB\u30EC\u30F3\u30C0\u30FC\u540D>")\`
|
|
91595
91641
|
- \u30B5\u30FC\u30D3\u30B9\u30A2\u30AB\u30A6\u30F3\u30C8\u7D4C\u8DEF: \`- calendar: <calendarId> (service-account, name: "<\u30AB\u30EC\u30F3\u30C0\u30FC\u540D>")\`
|
|
91596
91642
|
|
|
91597
|
-
## \u30B9\u30C6\u30C3\u30D7 5: \u6700\u7D42\u7684\u306B\u30AB\u30EC\u30F3\u30C0\u30FC\u304C 0 \u4EF6\u306E\
|
|
91643
|
+
## \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
|
|
91598
91644
|
|
|
91599
|
-
\u6700\u7D42\u7684\u306B\
|
|
91645
|
+
\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:
|
|
91600
91646
|
|
|
91601
|
-
- \`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\
|
|
91647
|
+
- \`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
|
|
91602
91648
|
- \`options\`: \u3053\u3053\u307E\u3067\u306B\u8A66\u3057\u305F\u7D4C\u8DEF\u306B\u5FDC\u3058\u3066\u4EE5\u4E0B\u3092\u7D44\u307F\u5408\u308F\u305B\u308B:
|
|
91603
91649
|
- \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" }\`
|
|
91604
91650
|
- \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" }\`
|
|
@@ -91606,17 +91652,28 @@ var googleCalendarOnboarding = new ConnectorOnboarding({
|
|
|
91606
91652
|
- \u5E38\u306B: \`{ label: "\u5225\u306E\u30B5\u30FC\u30D3\u30B9\u30A2\u30AB\u30A6\u30F3\u30C8\u3067\u8A2D\u5B9A\u3057\u76F4\u3059", value: "change-service-account" }\`
|
|
91607
91653
|
|
|
91608
91654
|
\u9078\u629E\u7D50\u679C\u306B\u5FDC\u3058\u305F\u6319\u52D5:
|
|
91609
|
-
- "retry": \u76F4\u524D\u306E\u7D4C\u8DEF\u3092\u518D probe (\
|
|
91655
|
+
- "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)
|
|
91610
91656
|
- "restart": \u30B9\u30C6\u30C3\u30D7 1 \u304B\u3089\u518D\u5B9F\u884C
|
|
91611
91657
|
- "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:
|
|
91612
91658
|
- \`parameterSlug\`: \`"${SERVICE_ACCOUNT_KEY_PARAM_SLUG}"\`
|
|
91613
|
-
- \u5B8C\u4E86\u5F8C\u3001\u30B9\u30C6\u30C3\u30D7
|
|
91659
|
+
- \u5B8C\u4E86\u5F8C\u3001\u30B9\u30C6\u30C3\u30D7 0 \u304B\u3089\u518D\u5B9F\u884C
|
|
91614
91660
|
|
|
91615
91661
|
## \u5236\u7D04
|
|
91616
91662
|
|
|
91617
91663
|
- \u4E0A\u8A18\u4EE5\u5916\u306E API \u547C\u3073\u51FA\u3057\u3092 setup \u4E2D\u306B\u884C\u308F\u306A\u3044
|
|
91618
91664
|
- \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`,
|
|
91619
|
-
en: `Set up the Google Calendar connection. Ask the user how they want to access calendars
|
|
91665
|
+
en: `Set up the Google Calendar connection. Ask the user how they want to access calendars and record the target calendars in Project Knowledge.
|
|
91666
|
+
|
|
91667
|
+
## Step 0: Get the service account email
|
|
91668
|
+
|
|
91669
|
+
We need the service account email so we can show it to the user in the next steps.
|
|
91670
|
+
|
|
91671
|
+
Call \`${requestToolName}\` once and remember the \`serviceAccountEmail\` from the response:
|
|
91672
|
+
- \`method\`: \`"GET"\`
|
|
91673
|
+
- \`path\`: \`"/users/me/calendarList"\`
|
|
91674
|
+
- \`scopes\`: \`${READONLY_SCOPES}\`
|
|
91675
|
+
|
|
91676
|
+
\`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.
|
|
91620
91677
|
|
|
91621
91678
|
## Step 1: Choose the access method
|
|
91622
91679
|
|
|
@@ -91628,50 +91685,58 @@ Call \`askUserQuestion\`:
|
|
|
91628
91685
|
- \`{ label: "Calendars of users in your organization (via Domain-wide Delegation)", value: "delegation" }\`
|
|
91629
91686
|
- \`{ label: "Both", value: "both" }\`
|
|
91630
91687
|
|
|
91631
|
-
## Step 2:
|
|
91688
|
+
## Step 2: Service-account path (when \`"service-account"\` or \`"both"\`)
|
|
91689
|
+
|
|
91690
|
+
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).
|
|
91691
|
+
|
|
91692
|
+
1. Ask the user for calendar IDs:
|
|
91693
|
+
- \`type\`: \`"freeText"\`
|
|
91694
|
+
- \`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."
|
|
91695
|
+
- \`placeholder\`: \`"alice@example.com, c_xxx@group.calendar.google.com"\`
|
|
91632
91696
|
|
|
91633
|
-
|
|
91697
|
+
2. For each calendar ID \`<id>\`, verify access by calling \`${requestToolName}\`:
|
|
91634
91698
|
- \`method\`: \`"GET"\`
|
|
91635
|
-
- \`path\`: \`"/
|
|
91699
|
+
- \`path\`: \`"/calendars/<id>"\`
|
|
91636
91700
|
- \`scopes\`: \`${READONLY_SCOPES}\`
|
|
91701
|
+
- On success, capture \`data.summary\` as the calendar name
|
|
91702
|
+
- On failure (404 / 403 / etc.), record the ID as inaccessible
|
|
91637
91703
|
|
|
91638
|
-
|
|
91639
|
-
-
|
|
91640
|
-
-
|
|
91641
|
-
|
|
91642
|
-
|
|
91643
|
-
- \`options\`: For each calendar, \`label\`: \`"<calendar name>"\`, \`value\`: \`"<calendarId>"\`
|
|
91704
|
+
3. Branch on the results:
|
|
91705
|
+
- **All IDs failed**: if the access method is \`"service-account"\` only, jump to Step 5. If \`"both"\`, continue to Step 3.
|
|
91706
|
+
- **Any success**: take the verified calendars as the selection for Step 4. If some failed, mention them briefly in one sentence.
|
|
91707
|
+
|
|
91708
|
+
## Step 3: Domain-wide Delegation path (when \`"delegation"\` or \`"both"\`)
|
|
91644
91709
|
|
|
91645
|
-
|
|
91710
|
+
Discover calendars from each Workspace user and let the user narrow them down.
|
|
91646
91711
|
|
|
91647
|
-
1. Ask the user for target emails:
|
|
91712
|
+
1. Ask the user for the target Workspace user emails:
|
|
91648
91713
|
- \`type\`: \`"freeText"\`
|
|
91649
|
-
- \`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
|
|
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 service account \`<serviceAccountEmail>\` in advance ([admin setup guide](https://support.google.com/a/answer/162106))."
|
|
91650
91715
|
- \`placeholder\`: \`"alice@example.com, bob@example.com"\`
|
|
91651
91716
|
|
|
91652
|
-
2.
|
|
91717
|
+
2. For each email \`<email>\`, list calendars accessible to that user via \`${requestWithDelegationToolName}\`:
|
|
91653
91718
|
- \`method\`: \`"GET"\`
|
|
91654
91719
|
- \`path\`: \`"/users/me/calendarList"\`
|
|
91655
91720
|
- \`subject\`: \`<email>\`
|
|
91656
91721
|
- \`scopes\`: \`${READONLY_SCOPES}\`
|
|
91657
91722
|
|
|
91658
91723
|
3. Branch on the results:
|
|
91659
|
-
- All emails failed
|
|
91660
|
-
- Any success
|
|
91724
|
+
- **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.
|
|
91725
|
+
- **Any success**: ask the user to narrow down via \`askUserQuestion\`:
|
|
91661
91726
|
- \`type\`: \`"multiSelect"\`
|
|
91662
91727
|
- \`question\`: "Select the calendars to use (multiple allowed)"
|
|
91663
|
-
- \`options\`: For each calendar, \`label\`: \`"<calendar name> (owner: <the subject used>)"\`, \`value\`: \`"<calendarId>"\`
|
|
91664
|
-
- If some emails failed, mention
|
|
91728
|
+
- \`options\`: For each discovered calendar, \`label\`: \`"<calendar name> (owner: <the subject used>)"\`, \`value\`: \`"<calendarId>"\`
|
|
91729
|
+
- If some emails failed, mention them briefly in one sentence.
|
|
91665
91730
|
|
|
91666
91731
|
## Step 4: Record in Project Knowledge
|
|
91667
91732
|
|
|
91668
|
-
Aggregate the calendarIds
|
|
91733
|
+
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:
|
|
91669
91734
|
- Via Domain-wide Delegation: \`- calendar: <calendarId> (delegation, subject: <subject>, name: "<calendar name>")\`
|
|
91670
91735
|
- Via service account: \`- calendar: <calendarId> (service-account, name: "<calendar name>")\`
|
|
91671
91736
|
|
|
91672
91737
|
## Step 5: Escalation when zero calendars are selected
|
|
91673
91738
|
|
|
91674
|
-
|
|
91739
|
+
When no calendars end up selected, call \`askUserQuestion\`:
|
|
91675
91740
|
|
|
91676
91741
|
- \`question\`: "No accessible calendars found. Please do one of the following before continuing. Service account: \`<serviceAccountEmail>\`."
|
|
91677
91742
|
- \`options\`: Combine these based on which paths were attempted:
|
|
@@ -91681,11 +91746,11 @@ If the final selected calendar set is empty (every attempted path returned nothi
|
|
|
91681
91746
|
- Always: \`{ label: "Use a different service account", value: "change-service-account" }\`
|
|
91682
91747
|
|
|
91683
91748
|
Behavior per selection:
|
|
91684
|
-
- "retry": re-probe the path that was just attempted (
|
|
91749
|
+
- "retry": re-probe the path that was just attempted (the agent decides the exact retry plan)
|
|
91685
91750
|
- "restart": re-run from Step 1
|
|
91686
91751
|
- "change-service-account": call \`updateConnectionParameters\` to have the user re-upload the service account JSON:
|
|
91687
91752
|
- \`parameterSlug\`: \`"${SERVICE_ACCOUNT_KEY_PARAM_SLUG}"\`
|
|
91688
|
-
- After it completes, re-run from Step
|
|
91753
|
+
- After it completes, re-run from Step 0
|
|
91689
91754
|
|
|
91690
91755
|
## Constraints
|
|
91691
91756
|
|
|
@@ -91727,6 +91792,7 @@ var googleCalendarConnector = new ConnectorPlugin({
|
|
|
91727
91792
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/2YsqoBEpdELmfDeFcyGHyE/4494c633b5ae15e562cb739cd85442c1/google-calendar.png",
|
|
91728
91793
|
parameters: parameters14,
|
|
91729
91794
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
91795
|
+
categories: ["productivity"],
|
|
91730
91796
|
onboarding: googleCalendarOnboarding,
|
|
91731
91797
|
systemPrompt: {
|
|
91732
91798
|
en: `### Tools
|
|
@@ -92231,6 +92297,7 @@ var googleCalendarOauthConnector = new ConnectorPlugin({
|
|
|
92231
92297
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/2YsqoBEpdELmfDeFcyGHyE/4494c633b5ae15e562cb739cd85442c1/google-calendar.png",
|
|
92232
92298
|
parameters: parameters15,
|
|
92233
92299
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
92300
|
+
categories: ["productivity"],
|
|
92234
92301
|
onboarding: googleCalendarOauthOnboarding,
|
|
92235
92302
|
proxyPolicy: {
|
|
92236
92303
|
allowlist: [
|
|
@@ -92537,6 +92604,7 @@ var googleDocsConnector = new ConnectorPlugin({
|
|
|
92537
92604
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/6vvcGJisvXjOumeTvswjzf/e9bb39e453cc0b71a20f26019b23b0d2/google_docs.png",
|
|
92538
92605
|
parameters: parameters16,
|
|
92539
92606
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
92607
|
+
categories: ["productivity"],
|
|
92540
92608
|
onboarding: googleDocsOnboarding,
|
|
92541
92609
|
proxyPolicy: {
|
|
92542
92610
|
allowlist: [
|
|
@@ -92828,6 +92896,7 @@ var googleDriveConnector = new ConnectorPlugin({
|
|
|
92828
92896
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/4GJX5yQTogUgar1buWxXbv/4b43a65353319c508111489f834d22c4/google_drive.png",
|
|
92829
92897
|
parameters: parameters17,
|
|
92830
92898
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
92899
|
+
categories: ["productivity"],
|
|
92831
92900
|
onboarding: googleDriveOnboarding,
|
|
92832
92901
|
proxyPolicy: {
|
|
92833
92902
|
allowlist: [
|
|
@@ -93330,6 +93399,7 @@ var googleSheetsConnector = new ConnectorPlugin({
|
|
|
93330
93399
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/1UPQuggyiZmbb26CuaSr2h/032770e8739b183fa00b7625f024e536/google-sheets.svg",
|
|
93331
93400
|
parameters: parameters18,
|
|
93332
93401
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
93402
|
+
categories: ["productivity"],
|
|
93333
93403
|
onboarding: googleSheetsOnboarding,
|
|
93334
93404
|
proxyPolicy: {
|
|
93335
93405
|
allowlist: [
|
|
@@ -93631,6 +93701,7 @@ var googleSlidesConnector = new ConnectorPlugin({
|
|
|
93631
93701
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/4oyF4yTRpemMA43X49masx/e1582d25e3b4c9a63ba83df2147c1968/google_slide.png",
|
|
93632
93702
|
parameters: parameters19,
|
|
93633
93703
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
93704
|
+
categories: ["productivity"],
|
|
93634
93705
|
onboarding: googleSlidesOnboarding,
|
|
93635
93706
|
proxyPolicy: {
|
|
93636
93707
|
allowlist: [
|
|
@@ -93966,6 +94037,7 @@ var hubspotOauthConnector = new ConnectorPlugin({
|
|
|
93966
94037
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/5UcSkKkzhUMA4RsM45ynuo/43b967e36915ca0fc5d277684b204320/hubspot.svg",
|
|
93967
94038
|
parameters: parameters20,
|
|
93968
94039
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
94040
|
+
categories: ["crm"],
|
|
93969
94041
|
onboarding: hubspotOnboarding,
|
|
93970
94042
|
proxyPolicy: {
|
|
93971
94043
|
allowlist: [
|
|
@@ -94255,6 +94327,7 @@ var stripeOauthConnector = new ConnectorPlugin({
|
|
|
94255
94327
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/2QNK0u2doqp41uL0POS4Ks/7a92367e2388ec77c7f4ada143606f9a/stripe.jpeg",
|
|
94256
94328
|
parameters: parameters21,
|
|
94257
94329
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
94330
|
+
categories: ["finance"],
|
|
94258
94331
|
onboarding: stripeOnboarding,
|
|
94259
94332
|
proxyPolicy: {
|
|
94260
94333
|
allowlist: [
|
|
@@ -94542,6 +94615,7 @@ var stripeApiKeyConnector = new ConnectorPlugin({
|
|
|
94542
94615
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/2QNK0u2doqp41uL0POS4Ks/7a92367e2388ec77c7f4ada143606f9a/stripe.jpeg",
|
|
94543
94616
|
parameters: parameters22,
|
|
94544
94617
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
94618
|
+
categories: ["finance"],
|
|
94545
94619
|
onboarding: stripeApiKeyOnboarding,
|
|
94546
94620
|
systemPrompt: {
|
|
94547
94621
|
en: `### Tools
|
|
@@ -94864,6 +94938,7 @@ var airtableOauthConnector = new ConnectorPlugin({
|
|
|
94864
94938
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/19JUphfOZjyjTK6Zg4NGCf/8c56227b088cada52d3a2d9385a3be97/airtable.svg",
|
|
94865
94939
|
parameters: parameters23,
|
|
94866
94940
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
94941
|
+
categories: ["productivity"],
|
|
94867
94942
|
onboarding: airtableOauthOnboarding,
|
|
94868
94943
|
proxyPolicy: {
|
|
94869
94944
|
allowlist: [
|
|
@@ -95125,6 +95200,7 @@ var kintoneConnector = new ConnectorPlugin({
|
|
|
95125
95200
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/76nPGMJFZkMFE3UQNo2JFy/e71dc5f5d5cec1306ce0e17aafbfd9f0/kintone.png",
|
|
95126
95201
|
parameters: parameters24,
|
|
95127
95202
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
95203
|
+
categories: ["productivity"],
|
|
95128
95204
|
onboarding: kintoneOnboarding,
|
|
95129
95205
|
systemPrompt: {
|
|
95130
95206
|
en: `### Tools
|
|
@@ -95425,6 +95501,7 @@ var kintoneApiTokenConnector = new ConnectorPlugin({
|
|
|
95425
95501
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/76nPGMJFZkMFE3UQNo2JFy/e71dc5f5d5cec1306ce0e17aafbfd9f0/kintone.png",
|
|
95426
95502
|
parameters: parameters25,
|
|
95427
95503
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
95504
|
+
categories: ["productivity"],
|
|
95428
95505
|
onboarding: kintoneApiTokenOnboarding,
|
|
95429
95506
|
systemPrompt: {
|
|
95430
95507
|
en: `### Tools
|
|
@@ -95700,6 +95777,7 @@ var wixStoreConnector = new ConnectorPlugin({
|
|
|
95700
95777
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/YyFxclQFzROIYpFam6vRK/e7e75d3feac49a1cc5e433c147216d23/Wix_logo_black.svg",
|
|
95701
95778
|
parameters: parameters26,
|
|
95702
95779
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
95780
|
+
categories: ["ecommerce"],
|
|
95703
95781
|
onboarding: wixStoreOnboarding,
|
|
95704
95782
|
systemPrompt: {
|
|
95705
95783
|
en: `### Tools
|
|
@@ -96001,6 +96079,7 @@ var dbtConnector = new ConnectorPlugin({
|
|
|
96001
96079
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/4iT6ncXtdtHdkXexU0WgfZ/0367a38d245f2568eab5eb511f9ee692/dbt.png",
|
|
96002
96080
|
parameters: parameters27,
|
|
96003
96081
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
96082
|
+
categories: ["database"],
|
|
96004
96083
|
onboarding: dbtOnboarding,
|
|
96005
96084
|
systemPrompt: {
|
|
96006
96085
|
en: `### Tools
|
|
@@ -96335,6 +96414,7 @@ var squadbaseDbConnector = new ConnectorPlugin({
|
|
|
96335
96414
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/25y0XqMxIufeD3egWH3bEl/659b4ade405890654cfaf91c03a4b458/icon.svg",
|
|
96336
96415
|
parameters: parameters28,
|
|
96337
96416
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
96417
|
+
categories: ["database"],
|
|
96338
96418
|
onboarding: squadbaseDbOnboarding,
|
|
96339
96419
|
systemPrompt: {
|
|
96340
96420
|
en: `### Tools
|
|
@@ -96425,6 +96505,7 @@ var openaiConnector = new ConnectorPlugin({
|
|
|
96425
96505
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/53XJtCgUlW10x6i1X8xpxM/0bfd634069f1d74241296543cb20427a/openai.svg",
|
|
96426
96506
|
parameters: parameters29,
|
|
96427
96507
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
96508
|
+
categories: ["ai"],
|
|
96428
96509
|
systemPrompt: {
|
|
96429
96510
|
en: `### Business Logic
|
|
96430
96511
|
|
|
@@ -96499,6 +96580,7 @@ var geminiConnector = new ConnectorPlugin({
|
|
|
96499
96580
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/6K2qZQZEQq90YENfrXy5my/c83c0c3815af0a97d29ee70f37215f01/gemini.png",
|
|
96500
96581
|
parameters: parameters30,
|
|
96501
96582
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
96583
|
+
categories: ["ai"],
|
|
96502
96584
|
systemPrompt: {
|
|
96503
96585
|
en: `### Business Logic
|
|
96504
96586
|
|
|
@@ -96567,6 +96649,7 @@ var anthropicConnector = new ConnectorPlugin({
|
|
|
96567
96649
|
iconUrl: "https://www.anthropic.com/images/icons/safari-pinned-tab.svg",
|
|
96568
96650
|
parameters: parameters31,
|
|
96569
96651
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
96652
|
+
categories: ["ai"],
|
|
96570
96653
|
systemPrompt: {
|
|
96571
96654
|
en: `### Business Logic
|
|
96572
96655
|
|
|
@@ -96763,6 +96846,7 @@ var amplitudeConnector = new ConnectorPlugin({
|
|
|
96763
96846
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/2UBJSdRlFJaLq52WUCTBEB/308b59b374cf6c662ac70989860bffd7/amplitude-icon.svg",
|
|
96764
96847
|
parameters: parameters32,
|
|
96765
96848
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
96849
|
+
categories: ["marketing"],
|
|
96766
96850
|
onboarding: amplitudeOnboarding,
|
|
96767
96851
|
systemPrompt: {
|
|
96768
96852
|
en: `### Tools
|
|
@@ -97016,6 +97100,7 @@ var attioConnector = new ConnectorPlugin({
|
|
|
97016
97100
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/2qqx99vvXJojUM3tSrSWPX/1e7c35e13da6b365b8b475c1effe568f/attio.svg",
|
|
97017
97101
|
parameters: parameters33,
|
|
97018
97102
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
97103
|
+
categories: ["crm"],
|
|
97019
97104
|
onboarding: attioOnboarding,
|
|
97020
97105
|
systemPrompt: {
|
|
97021
97106
|
en: `### Tools
|
|
@@ -97474,6 +97559,7 @@ var shopifyConnector = new ConnectorPlugin({
|
|
|
97474
97559
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/57KEjZCBskKgSxgKyU4Sm0/117d681a410f48dc36f97cdd9c0593c5/shopify-icon.svg",
|
|
97475
97560
|
parameters: parameters34,
|
|
97476
97561
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
97562
|
+
categories: ["ecommerce"],
|
|
97477
97563
|
onboarding: shopifyOnboarding,
|
|
97478
97564
|
systemPrompt: {
|
|
97479
97565
|
en: `### Tools
|
|
@@ -97786,6 +97872,7 @@ var shopifyOauthConnector = new ConnectorPlugin({
|
|
|
97786
97872
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/57KEjZCBskKgSxgKyU4Sm0/117d681a410f48dc36f97cdd9c0593c5/shopify-icon.svg",
|
|
97787
97873
|
parameters: parameters35,
|
|
97788
97874
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
97875
|
+
categories: ["ecommerce"],
|
|
97789
97876
|
onboarding: shopifyOauthOnboarding,
|
|
97790
97877
|
proxyPolicy: {
|
|
97791
97878
|
allowlist: [
|
|
@@ -98028,6 +98115,7 @@ var hubspotConnector = new ConnectorPlugin({
|
|
|
98028
98115
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/5UcSkKkzhUMA4RsM45ynuo/43b967e36915ca0fc5d277684b204320/hubspot.svg",
|
|
98029
98116
|
parameters: parameters36,
|
|
98030
98117
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
98118
|
+
categories: ["crm"],
|
|
98031
98119
|
onboarding: hubspotOnboarding2,
|
|
98032
98120
|
systemPrompt: {
|
|
98033
98121
|
en: `### Tools
|
|
@@ -98296,6 +98384,7 @@ var jiraConnector = new ConnectorPlugin({
|
|
|
98296
98384
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/5zt4yjb36szSPPkCECYlPL/bc3e7223dc84fb16a1cce53a80f5afcc/jira.png",
|
|
98297
98385
|
parameters: parameters37,
|
|
98298
98386
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
98387
|
+
categories: ["productivity"],
|
|
98299
98388
|
onboarding: jiraOnboarding,
|
|
98300
98389
|
systemPrompt: {
|
|
98301
98390
|
en: `### Tools
|
|
@@ -98571,6 +98660,7 @@ var linearConnector = new ConnectorPlugin({
|
|
|
98571
98660
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/6oR77h6TeniXGdmnp2P2LX/a2ac8630ae52d164363adb0c695d9f0b/linear.webp",
|
|
98572
98661
|
parameters: parameters38,
|
|
98573
98662
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
98663
|
+
categories: ["productivity"],
|
|
98574
98664
|
onboarding: linearOnboarding,
|
|
98575
98665
|
systemPrompt: {
|
|
98576
98666
|
en: `### Tools
|
|
@@ -98833,6 +98923,7 @@ var asanaConnector = new ConnectorPlugin({
|
|
|
98833
98923
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/3eIdaoqzIIZs2Md0OoDJMf/2fa66e0841adb985da4d3120466f3ec4/asana-icon.png",
|
|
98834
98924
|
parameters: parameters39,
|
|
98835
98925
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
98926
|
+
categories: ["productivity"],
|
|
98836
98927
|
onboarding: asanaOnboarding,
|
|
98837
98928
|
systemPrompt: {
|
|
98838
98929
|
en: `### Tools
|
|
@@ -99158,6 +99249,7 @@ var clickhouseConnector = new ConnectorPlugin({
|
|
|
99158
99249
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/MencimqP92UmucqstLl51/d9f2b6160206f5454b26e223a763ab8f/clickhouse.png",
|
|
99159
99250
|
parameters: parameters40,
|
|
99160
99251
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
99252
|
+
categories: ["database"],
|
|
99161
99253
|
onboarding: clickhouseOnboarding,
|
|
99162
99254
|
systemPrompt: {
|
|
99163
99255
|
en: `### Tools
|
|
@@ -99566,6 +99658,7 @@ var mongodbConnector = new ConnectorPlugin({
|
|
|
99566
99658
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/48JSUx9HE6oSa9JrHGg2E1/12b4cac65924cac3641d4bafcef37dbe/mongodb-icon.webp",
|
|
99567
99659
|
parameters: parameters41,
|
|
99568
99660
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
99661
|
+
categories: ["database"],
|
|
99569
99662
|
onboarding: mongodbOnboarding,
|
|
99570
99663
|
systemPrompt: {
|
|
99571
99664
|
en: `### Tools
|
|
@@ -99750,6 +99843,7 @@ var notionConnector = new ConnectorPlugin({
|
|
|
99750
99843
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/797V5GDDTA8bsfKUHBCoQO/290ec49b70b68ddb4acd3bf0a6ab8bda/notion-icon.webp",
|
|
99751
99844
|
parameters: parameters42,
|
|
99752
99845
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
99846
|
+
categories: ["productivity"],
|
|
99753
99847
|
onboarding: notionOnboarding,
|
|
99754
99848
|
systemPrompt: {
|
|
99755
99849
|
en: `### Tools
|
|
@@ -100060,6 +100154,7 @@ var notionOauthConnector = new ConnectorPlugin({
|
|
|
100060
100154
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/797V5GDDTA8bsfKUHBCoQO/290ec49b70b68ddb4acd3bf0a6ab8bda/notion-icon.webp",
|
|
100061
100155
|
parameters: parameters43,
|
|
100062
100156
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
100157
|
+
categories: ["productivity"],
|
|
100063
100158
|
onboarding: notionOauthOnboarding,
|
|
100064
100159
|
proxyPolicy: {
|
|
100065
100160
|
allowlist: [
|
|
@@ -100426,6 +100521,7 @@ var metaAdsConnector = new ConnectorPlugin({
|
|
|
100426
100521
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/2vyrgcvdf3jETIFXHtbteO/de7f3288e831c9f738e44cf1f961c3bd/meta-icon.webp",
|
|
100427
100522
|
parameters: parameters44,
|
|
100428
100523
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
100524
|
+
categories: ["marketing"],
|
|
100429
100525
|
onboarding: metaAdsOnboarding,
|
|
100430
100526
|
systemPrompt: {
|
|
100431
100527
|
en: `### Tools
|
|
@@ -100878,6 +100974,7 @@ var metaAdsOauthConnector = new ConnectorPlugin({
|
|
|
100878
100974
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/2vyrgcvdf3jETIFXHtbteO/de7f3288e831c9f738e44cf1f961c3bd/meta-icon.webp",
|
|
100879
100975
|
parameters: parameters45,
|
|
100880
100976
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
100977
|
+
categories: ["marketing"],
|
|
100881
100978
|
onboarding: metaAdsOauthOnboarding,
|
|
100882
100979
|
proxyPolicy: {
|
|
100883
100980
|
allowlist: [
|
|
@@ -101346,6 +101443,7 @@ var tiktokAdsConnector = new ConnectorPlugin({
|
|
|
101346
101443
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/01jHuwvmhe4ts0wj23Hxpm/afac9fa50ac5b353927900a122e898ab/tiktok.webp",
|
|
101347
101444
|
parameters: parameters46,
|
|
101348
101445
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
101446
|
+
categories: ["marketing"],
|
|
101349
101447
|
onboarding: tiktokAdsOnboarding,
|
|
101350
101448
|
proxyPolicy: {
|
|
101351
101449
|
allowlist: [
|
|
@@ -101649,6 +101747,7 @@ var mailchimpConnector = new ConnectorPlugin({
|
|
|
101649
101747
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/19Rac6B8eGiLpQb4lKMbG3/10f567f85572aeb16f2ee6aaa6602987/mailchimp.png",
|
|
101650
101748
|
parameters: parameters47,
|
|
101651
101749
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
101750
|
+
categories: ["marketing"],
|
|
101652
101751
|
onboarding: mailchimpOnboarding,
|
|
101653
101752
|
systemPrompt: {
|
|
101654
101753
|
en: `### Tools
|
|
@@ -102002,6 +102101,7 @@ var mailchimpOauthConnector = new ConnectorPlugin({
|
|
|
102002
102101
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/19Rac6B8eGiLpQb4lKMbG3/10f567f85572aeb16f2ee6aaa6602987/mailchimp.png",
|
|
102003
102102
|
parameters: parameters48,
|
|
102004
102103
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
102104
|
+
categories: ["marketing"],
|
|
102005
102105
|
onboarding: mailchimpOauthOnboarding,
|
|
102006
102106
|
proxyPolicy: {
|
|
102007
102107
|
allowlist: [
|
|
@@ -102295,6 +102395,7 @@ var customerioConnector = new ConnectorPlugin({
|
|
|
102295
102395
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/nngohabT7oHDIgQYAVBpz/6f6c7662ef4692eb9869e3e69dd57114/customerio.png",
|
|
102296
102396
|
parameters: parameters49,
|
|
102297
102397
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
102398
|
+
categories: ["marketing"],
|
|
102298
102399
|
onboarding: customerioOnboarding,
|
|
102299
102400
|
systemPrompt: {
|
|
102300
102401
|
en: `### Tools
|
|
@@ -102516,7 +102617,8 @@ var outputSchema61 = z63.discriminatedUnion("success", [
|
|
|
102516
102617
|
z63.object({
|
|
102517
102618
|
success: z63.literal(true),
|
|
102518
102619
|
status: z63.number(),
|
|
102519
|
-
data: z63.record(z63.string(), z63.unknown())
|
|
102620
|
+
data: z63.record(z63.string(), z63.unknown()),
|
|
102621
|
+
serviceAccountEmail: z63.string()
|
|
102520
102622
|
}),
|
|
102521
102623
|
z63.object({
|
|
102522
102624
|
success: z63.literal(false),
|
|
@@ -102598,7 +102700,12 @@ var requestWithDelegationTool2 = new ConnectorTool({
|
|
|
102598
102700
|
serviceAccountEmail
|
|
102599
102701
|
};
|
|
102600
102702
|
}
|
|
102601
|
-
return {
|
|
102703
|
+
return {
|
|
102704
|
+
success: true,
|
|
102705
|
+
status: response.status,
|
|
102706
|
+
data,
|
|
102707
|
+
serviceAccountEmail
|
|
102708
|
+
};
|
|
102602
102709
|
} finally {
|
|
102603
102710
|
clearTimeout(timeout);
|
|
102604
102711
|
}
|
|
@@ -102693,6 +102800,7 @@ var gmailConnector = new ConnectorPlugin({
|
|
|
102693
102800
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/4V3rfaSc1ksFIt2eHBNIwJ/7f3be41a154a6d96dcf229ed0e5858c9/Gmail_icon__2020_.svg.png",
|
|
102694
102801
|
parameters: parameters50,
|
|
102695
102802
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
102803
|
+
categories: ["productivity"],
|
|
102696
102804
|
onboarding: gmailOnboarding,
|
|
102697
102805
|
systemPrompt: {
|
|
102698
102806
|
en: `### Tools
|
|
@@ -103055,6 +103163,7 @@ var gmailOauthConnector = new ConnectorPlugin({
|
|
|
103055
103163
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/4V3rfaSc1ksFIt2eHBNIwJ/7f3be41a154a6d96dcf229ed0e5858c9/Gmail_icon__2020_.svg.png",
|
|
103056
103164
|
parameters: parameters51,
|
|
103057
103165
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
103166
|
+
categories: ["productivity"],
|
|
103058
103167
|
onboarding: gmailOnboarding2,
|
|
103059
103168
|
proxyPolicy: {
|
|
103060
103169
|
allowlist: [
|
|
@@ -103255,11 +103364,424 @@ thread.messages.forEach(m => console.log(m.snippet));
|
|
|
103255
103364
|
}
|
|
103256
103365
|
});
|
|
103257
103366
|
|
|
103258
|
-
// ../connectors/src/connectors/
|
|
103367
|
+
// ../connectors/src/connectors/google-audit-log/tools/request-with-delegation.ts
|
|
103259
103368
|
import { z as z65 } from "zod";
|
|
103260
|
-
|
|
103261
|
-
|
|
103369
|
+
|
|
103370
|
+
// ../connectors/src/connectors/google-audit-log/parameters.ts
|
|
103371
|
+
var parameters52 = {
|
|
103372
|
+
serviceAccountKeyJsonBase64: new ParameterDefinition({
|
|
103373
|
+
slug: "service-account-key-json-base64",
|
|
103374
|
+
name: "Google Cloud Service Account JSON",
|
|
103375
|
+
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.",
|
|
103376
|
+
envVarBaseKey: "GOOGLE_AUDIT_LOG_SERVICE_ACCOUNT_JSON_BASE64",
|
|
103377
|
+
type: "base64EncodedJson",
|
|
103378
|
+
secret: true,
|
|
103379
|
+
required: true
|
|
103380
|
+
})
|
|
103381
|
+
};
|
|
103382
|
+
|
|
103383
|
+
// ../connectors/src/connectors/google-audit-log/tools/request-with-delegation.ts
|
|
103384
|
+
var BASE_URL30 = "https://admin.googleapis.com/admin/reports/v1";
|
|
103262
103385
|
var REQUEST_TIMEOUT_MS48 = 6e4;
|
|
103386
|
+
function decodeServiceAccount4(keyJsonBase64) {
|
|
103387
|
+
const decoded = Buffer.from(keyJsonBase64, "base64").toString("utf-8");
|
|
103388
|
+
return JSON.parse(decoded);
|
|
103389
|
+
}
|
|
103390
|
+
var inputSchema63 = z65.object({
|
|
103391
|
+
toolUseIntent: z65.string().optional().describe(
|
|
103392
|
+
"Brief description of what you intend to accomplish with this tool call"
|
|
103393
|
+
),
|
|
103394
|
+
connectionId: z65.string().describe(
|
|
103395
|
+
"ID of the Google Audit Log (Admin SDK Reports) service account connection to use"
|
|
103396
|
+
),
|
|
103397
|
+
method: z65.enum(["GET"]).describe("HTTP method. Reports API is read-only."),
|
|
103398
|
+
path: z65.string().describe(
|
|
103399
|
+
"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'."
|
|
103400
|
+
),
|
|
103401
|
+
subject: z65.string().describe(
|
|
103402
|
+
"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."
|
|
103403
|
+
),
|
|
103404
|
+
scopes: z65.array(z65.string()).describe(
|
|
103405
|
+
"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."
|
|
103406
|
+
),
|
|
103407
|
+
queryParams: z65.record(z65.string(), z65.string()).optional().describe(
|
|
103408
|
+
"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' })"
|
|
103409
|
+
)
|
|
103410
|
+
});
|
|
103411
|
+
var outputSchema63 = z65.discriminatedUnion("success", [
|
|
103412
|
+
z65.object({
|
|
103413
|
+
success: z65.literal(true),
|
|
103414
|
+
status: z65.number(),
|
|
103415
|
+
data: z65.record(z65.string(), z65.unknown()),
|
|
103416
|
+
serviceAccountEmail: z65.string()
|
|
103417
|
+
}),
|
|
103418
|
+
z65.object({
|
|
103419
|
+
success: z65.literal(false),
|
|
103420
|
+
error: z65.string(),
|
|
103421
|
+
serviceAccountEmail: z65.string().optional()
|
|
103422
|
+
})
|
|
103423
|
+
]);
|
|
103424
|
+
var requestWithDelegationTool3 = new ConnectorTool({
|
|
103425
|
+
name: "request_with_delegation",
|
|
103426
|
+
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.",
|
|
103427
|
+
inputSchema: inputSchema63,
|
|
103428
|
+
outputSchema: outputSchema63,
|
|
103429
|
+
async execute({ connectionId, method, path: path6, subject, scopes, queryParams }, connections) {
|
|
103430
|
+
const connection2 = connections.find((c6) => c6.id === connectionId);
|
|
103431
|
+
if (!connection2) {
|
|
103432
|
+
return {
|
|
103433
|
+
success: false,
|
|
103434
|
+
error: `Connection ${connectionId} not found`
|
|
103435
|
+
};
|
|
103436
|
+
}
|
|
103437
|
+
const keyJsonBase64 = parameters52.serviceAccountKeyJsonBase64.getValue(connection2);
|
|
103438
|
+
let serviceAccount;
|
|
103439
|
+
try {
|
|
103440
|
+
serviceAccount = decodeServiceAccount4(keyJsonBase64);
|
|
103441
|
+
} catch (err) {
|
|
103442
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
103443
|
+
return {
|
|
103444
|
+
success: false,
|
|
103445
|
+
error: `Failed to decode service account key: ${msg}`
|
|
103446
|
+
};
|
|
103447
|
+
}
|
|
103448
|
+
const serviceAccountEmail = serviceAccount.client_email;
|
|
103449
|
+
console.log(
|
|
103450
|
+
`[connector-request] google-audit-log/${connection2.name}: ${method} ${path6} subject=${subject}`
|
|
103451
|
+
);
|
|
103452
|
+
try {
|
|
103453
|
+
const { GoogleAuth } = await import("google-auth-library");
|
|
103454
|
+
const auth = new GoogleAuth({
|
|
103455
|
+
credentials: {
|
|
103456
|
+
client_email: serviceAccount.client_email,
|
|
103457
|
+
private_key: serviceAccount.private_key
|
|
103458
|
+
},
|
|
103459
|
+
scopes,
|
|
103460
|
+
clientOptions: { subject }
|
|
103461
|
+
});
|
|
103462
|
+
const token = await auth.getAccessToken();
|
|
103463
|
+
if (!token) {
|
|
103464
|
+
return {
|
|
103465
|
+
success: false,
|
|
103466
|
+
error: "Failed to obtain access token",
|
|
103467
|
+
serviceAccountEmail
|
|
103468
|
+
};
|
|
103469
|
+
}
|
|
103470
|
+
let url = `${BASE_URL30}${path6.startsWith("/") ? "" : "/"}${path6}`;
|
|
103471
|
+
if (queryParams) {
|
|
103472
|
+
const searchParams = new URLSearchParams(queryParams);
|
|
103473
|
+
url += `?${searchParams.toString()}`;
|
|
103474
|
+
}
|
|
103475
|
+
const controller = new AbortController();
|
|
103476
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS48);
|
|
103477
|
+
try {
|
|
103478
|
+
const response = await fetch(url, {
|
|
103479
|
+
method,
|
|
103480
|
+
headers: {
|
|
103481
|
+
Authorization: `Bearer ${token}`,
|
|
103482
|
+
"Content-Type": "application/json"
|
|
103483
|
+
},
|
|
103484
|
+
signal: controller.signal
|
|
103485
|
+
});
|
|
103486
|
+
const data = await response.json().catch(() => ({}));
|
|
103487
|
+
if (!response.ok) {
|
|
103488
|
+
const errorObj = data?.error;
|
|
103489
|
+
const errorMessage = errorObj?.message ?? (typeof data?.message === "string" ? data.message : `HTTP ${response.status} ${response.statusText}`);
|
|
103490
|
+
return {
|
|
103491
|
+
success: false,
|
|
103492
|
+
error: errorMessage,
|
|
103493
|
+
serviceAccountEmail
|
|
103494
|
+
};
|
|
103495
|
+
}
|
|
103496
|
+
return {
|
|
103497
|
+
success: true,
|
|
103498
|
+
status: response.status,
|
|
103499
|
+
data,
|
|
103500
|
+
serviceAccountEmail
|
|
103501
|
+
};
|
|
103502
|
+
} finally {
|
|
103503
|
+
clearTimeout(timeout);
|
|
103504
|
+
}
|
|
103505
|
+
} catch (err) {
|
|
103506
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
103507
|
+
return {
|
|
103508
|
+
success: false,
|
|
103509
|
+
error: msg,
|
|
103510
|
+
serviceAccountEmail
|
|
103511
|
+
};
|
|
103512
|
+
}
|
|
103513
|
+
}
|
|
103514
|
+
});
|
|
103515
|
+
|
|
103516
|
+
// ../connectors/src/connectors/google-audit-log/setup.ts
|
|
103517
|
+
var requestWithDelegationToolName3 = `google-audit-log-service-account_${requestWithDelegationTool3.name}`;
|
|
103518
|
+
var READONLY_SCOPES3 = '["https://www.googleapis.com/auth/admin.reports.audit.readonly", "https://www.googleapis.com/auth/admin.reports.usage.readonly"]';
|
|
103519
|
+
var googleAuditLogOnboarding = new ConnectorOnboarding({
|
|
103520
|
+
connectionSetupInstructions: {
|
|
103521
|
+
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
|
|
103522
|
+
|
|
103523
|
+
1. \`askUserQuestion\` \u3067\u5BFE\u8C61\u306E Workspace \u7BA1\u7406\u8005\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3092\u805E\u304F:
|
|
103524
|
+
- \`type\`: \`"freeText"\`
|
|
103525
|
+
- \`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
|
|
103526
|
+
- \`placeholder\`: \`"admin@example.com"\`
|
|
103527
|
+
|
|
103528
|
+
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:
|
|
103529
|
+
- \`method\`: \`"GET"\`
|
|
103530
|
+
- \`path\`: \`"/activity/users/all/applications/login"\`
|
|
103531
|
+
- \`subject\`: \`<email>\`
|
|
103532
|
+
- \`scopes\`: \`${READONLY_SCOPES3}\`
|
|
103533
|
+
- \`queryParams\`: \`{ "maxResults": "1" }\`
|
|
103534
|
+
|
|
103535
|
+
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
|
|
103536
|
+
- \`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" }]\`
|
|
103537
|
+
- \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
|
|
103538
|
+
- \u300C\u5165\u529B\u3057\u76F4\u3059\u300D: \u30B9\u30C6\u30C3\u30D7 1 \u304B\u3089\u518D\u5B9F\u884C
|
|
103539
|
+
|
|
103540
|
+
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:
|
|
103541
|
+
- \`- subject: admin@example.com\`
|
|
103542
|
+
|
|
103543
|
+
#### \u5236\u7D04
|
|
103544
|
+
- \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
|
|
103545
|
+
- \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`,
|
|
103546
|
+
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.
|
|
103547
|
+
|
|
103548
|
+
1. Call \`askUserQuestion\` to collect target admin emails:
|
|
103549
|
+
- \`type\`: \`"freeText"\`
|
|
103550
|
+
- \`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."
|
|
103551
|
+
- \`placeholder\`: \`"admin@example.com"\`
|
|
103552
|
+
|
|
103553
|
+
2. Extract individual emails from the response. For each \`<email>\`, verify Domain-wide Delegation access by calling \`${requestWithDelegationToolName3}\`:
|
|
103554
|
+
- \`method\`: \`"GET"\`
|
|
103555
|
+
- \`path\`: \`"/activity/users/all/applications/login"\`
|
|
103556
|
+
- \`subject\`: \`<email>\`
|
|
103557
|
+
- \`scopes\`: \`${READONLY_SCOPES3}\`
|
|
103558
|
+
- \`queryParams\`: \`{ "maxResults": "1" }\`
|
|
103559
|
+
|
|
103560
|
+
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))".
|
|
103561
|
+
- \`options\`: \`[{ label: "Authorized Domain-wide Delegation \u2014 retry", value: "retry" }, { label: "Re-enter the email addresses", value: "restart" }]\`
|
|
103562
|
+
- On "retry" \u2192 re-run step 2 with the previously entered email list
|
|
103563
|
+
- On "Re-enter" \u2192 re-run step 1
|
|
103564
|
+
|
|
103565
|
+
4. Once every email succeeds, call \`finalizeSetup\`. Under \`#### \u30B9\u30B3\u30FC\u30D7\` in \`projectKnowledge\`, list each email on its own line:
|
|
103566
|
+
- \`- subject: admin@example.com\`
|
|
103567
|
+
|
|
103568
|
+
#### Constraints
|
|
103569
|
+
- Do NOT read audit log contents during setup. Only the access verification call in step 2 is permitted
|
|
103570
|
+
- Write at most 1 sentence between tool calls`
|
|
103571
|
+
},
|
|
103572
|
+
dataOverviewInstructions: {
|
|
103573
|
+
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.
|
|
103574
|
+
|
|
103575
|
+
1. \`method=GET\`, \`path=/activity/users/all/applications/login\`, \`queryParams={ maxResults: "10" }\` to verify recent login activity events are available.
|
|
103576
|
+
2. \`method=GET\`, \`path=/activity/users/all/applications/admin\`, \`queryParams={ maxResults: "10" }\` to inspect recent admin console events.
|
|
103577
|
+
3. \`method=GET\`, \`path=/usage/dates/{YYYY-MM-DD}\` (use yesterday's date) to fetch a customer-level usage report sample.`,
|
|
103578
|
+
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
|
|
103579
|
+
|
|
103580
|
+
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
|
|
103581
|
+
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
|
|
103582
|
+
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`
|
|
103583
|
+
}
|
|
103584
|
+
});
|
|
103585
|
+
|
|
103586
|
+
// ../connectors/src/connectors/google-audit-log/index.ts
|
|
103587
|
+
var tools52 = { request_with_delegation: requestWithDelegationTool3 };
|
|
103588
|
+
var googleAuditLogConnector = new ConnectorPlugin({
|
|
103589
|
+
slug: "google-audit-log",
|
|
103590
|
+
authType: AUTH_TYPES.SERVICE_ACCOUNT,
|
|
103591
|
+
name: "Google Audit Log",
|
|
103592
|
+
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.",
|
|
103593
|
+
iconUrl: "https://www.gstatic.com/images/branding/product/2x/admin_2020q4_48dp.png",
|
|
103594
|
+
parameters: parameters52,
|
|
103595
|
+
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
103596
|
+
categories: ["observability"],
|
|
103597
|
+
onboarding: googleAuditLogOnboarding,
|
|
103598
|
+
systemPrompt: {
|
|
103599
|
+
en: `### Tools
|
|
103600
|
+
|
|
103601
|
+
- \`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\`.
|
|
103602
|
+
|
|
103603
|
+
### OAuth Scopes (pass as \`scopes\` argument)
|
|
103604
|
+
|
|
103605
|
+
This connector is read-only. Pass one or both:
|
|
103606
|
+
|
|
103607
|
+
- \`https://www.googleapis.com/auth/admin.reports.audit.readonly\` \u2014 audit activity events (Activities API)
|
|
103608
|
+
- \`https://www.googleapis.com/auth/admin.reports.usage.readonly\` \u2014 usage reports (Customer/User Usage API)
|
|
103609
|
+
|
|
103610
|
+
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.
|
|
103611
|
+
|
|
103612
|
+
Per-endpoint reference: https://developers.google.com/admin-sdk/reports/v1/reference
|
|
103613
|
+
|
|
103614
|
+
### Reports API Reference
|
|
103615
|
+
|
|
103616
|
+
#### Activities (audit logs)
|
|
103617
|
+
- GET \`/activity/users/all/applications/{applicationName}\` \u2014 list activity events across all users for an application
|
|
103618
|
+
- GET \`/activity/users/{userKey}/applications/{applicationName}\` \u2014 list activity events for a specific user (\`userKey\` is the user's email or immutable ID)
|
|
103619
|
+
- GET \`/activity/users/all/applications/{applicationName}/watch\` \u2014 (not supported here, push notifications)
|
|
103620
|
+
|
|
103621
|
+
\`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\`.
|
|
103622
|
+
|
|
103623
|
+
Common Activities query parameters (pass via \`queryParams\`):
|
|
103624
|
+
- \`startTime\` / \`endTime\` \u2014 ISO-8601 timestamps (e.g., \`2025-04-01T00:00:00Z\`)
|
|
103625
|
+
- \`eventName\` \u2014 filter by a specific event (e.g., \`login_success\`, \`login_failure\`, \`document_open\`)
|
|
103626
|
+
- \`filters\` \u2014 comma-separated event-parameter filters (e.g., \`doc_type==document\`)
|
|
103627
|
+
- \`actorIpAddress\` \u2014 filter by IP
|
|
103628
|
+
- \`maxResults\` \u2014 page size (default 1000)
|
|
103629
|
+
- \`pageToken\` \u2014 pagination token from previous response's \`nextPageToken\`
|
|
103630
|
+
|
|
103631
|
+
#### Usage reports
|
|
103632
|
+
- GET \`/usage/dates/{date}\` \u2014 customer-level usage on a specific date (\`YYYY-MM-DD\`)
|
|
103633
|
+
- GET \`/usage/users/all/dates/{date}\` \u2014 per-user usage on a specific date
|
|
103634
|
+
- GET \`/usage/users/{userKey}/dates/{date}\` \u2014 usage for a single user on a specific date
|
|
103635
|
+
|
|
103636
|
+
Common Usage query parameters:
|
|
103637
|
+
- \`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.
|
|
103638
|
+
- \`filters\` \u2014 filter expression on the same metric namespace
|
|
103639
|
+
- \`maxResults\` / \`pageToken\` \u2014 pagination
|
|
103640
|
+
|
|
103641
|
+
### Business Logic
|
|
103642
|
+
|
|
103643
|
+
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.
|
|
103644
|
+
|
|
103645
|
+
SDK methods (client created via \`connection(connectionId)\`):
|
|
103646
|
+
|
|
103647
|
+
- \`client.requestWithDelegation(path, { subject, scopes, init? })\` \u2014 call the Reports API as the impersonated Workspace admin. Pass the minimum scopes required.
|
|
103648
|
+
|
|
103649
|
+
The method returns a standard \`Response\`. Read the body with \`.json()\`. Same path conventions as the tool.
|
|
103650
|
+
|
|
103651
|
+
#### Example
|
|
103652
|
+
|
|
103653
|
+
\`\`\`ts
|
|
103654
|
+
import type { Context } from "hono";
|
|
103655
|
+
import { connection } from "@squadbase/vite-server/connectors/google-audit-log";
|
|
103656
|
+
|
|
103657
|
+
const reports = connection("<connectionId>");
|
|
103658
|
+
|
|
103659
|
+
const SUBJECT = "admin@example.com"; // pick from "#### \u30B9\u30B3\u30FC\u30D7" in project knowledge
|
|
103660
|
+
const AUDIT = ["https://www.googleapis.com/auth/admin.reports.audit.readonly"];
|
|
103661
|
+
|
|
103662
|
+
export default async function handler(c: Context) {
|
|
103663
|
+
const { startTime, endTime } = await c.req.json<{
|
|
103664
|
+
startTime: string;
|
|
103665
|
+
endTime: string;
|
|
103666
|
+
}>();
|
|
103667
|
+
|
|
103668
|
+
const params = new URLSearchParams({
|
|
103669
|
+
startTime,
|
|
103670
|
+
endTime,
|
|
103671
|
+
maxResults: "100",
|
|
103672
|
+
});
|
|
103673
|
+
const res = await reports.requestWithDelegation(
|
|
103674
|
+
\`/activity/users/all/applications/login?\${params}\`,
|
|
103675
|
+
{ subject: SUBJECT, scopes: AUDIT },
|
|
103676
|
+
);
|
|
103677
|
+
const data = (await res.json()) as { items?: { id: { time: string }; events?: { name: string }[]; actor?: { email?: string } }[] };
|
|
103678
|
+
|
|
103679
|
+
return c.json(
|
|
103680
|
+
(data.items ?? []).map((item) => ({
|
|
103681
|
+
time: item.id.time,
|
|
103682
|
+
actor: item.actor?.email,
|
|
103683
|
+
event: item.events?.[0]?.name,
|
|
103684
|
+
})),
|
|
103685
|
+
);
|
|
103686
|
+
}
|
|
103687
|
+
\`\`\``,
|
|
103688
|
+
ja: `### \u30C4\u30FC\u30EB
|
|
103689
|
+
|
|
103690
|
+
- \`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
|
|
103691
|
+
|
|
103692
|
+
### OAuth \u30B9\u30B3\u30FC\u30D7 (\`scopes\` \u5F15\u6570\u3067\u6E21\u3059)
|
|
103693
|
+
|
|
103694
|
+
\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:
|
|
103695
|
+
|
|
103696
|
+
- \`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)
|
|
103697
|
+
- \`https://www.googleapis.com/auth/admin.reports.usage.readonly\` \u2014 \u5229\u7528\u30EC\u30DD\u30FC\u30C8 (Customer/User Usage API)
|
|
103698
|
+
|
|
103699
|
+
\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
|
|
103700
|
+
|
|
103701
|
+
\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
|
|
103702
|
+
|
|
103703
|
+
### Reports API \u30EA\u30D5\u30A1\u30EC\u30F3\u30B9
|
|
103704
|
+
|
|
103705
|
+
#### Activities\uFF08\u76E3\u67FB\u30ED\u30B0\uFF09
|
|
103706
|
+
- 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
|
|
103707
|
+
- 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
|
|
103708
|
+
|
|
103709
|
+
\`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
|
|
103710
|
+
|
|
103711
|
+
\u4E3B\u306A\u30AF\u30A8\u30EA\u30D1\u30E9\u30E1\u30FC\u30BF\uFF08\`queryParams\` \u306B\u6E21\u3059\uFF09:
|
|
103712
|
+
- \`startTime\` / \`endTime\` \u2014 ISO-8601 \u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\uFF08\u4F8B: \`2025-04-01T00:00:00Z\`\uFF09
|
|
103713
|
+
- \`eventName\` \u2014 \u7279\u5B9A\u306E\u30A4\u30D9\u30F3\u30C8\u3067\u30D5\u30A3\u30EB\u30BF\uFF08\u4F8B: \`login_success\`, \`login_failure\`, \`document_open\`\uFF09
|
|
103714
|
+
- \`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
|
|
103715
|
+
- \`actorIpAddress\` \u2014 IP\u30A2\u30C9\u30EC\u30B9\u3067\u30D5\u30A3\u30EB\u30BF
|
|
103716
|
+
- \`maxResults\` \u2014 \u30DA\u30FC\u30B8\u30B5\u30A4\u30BA\uFF08\u30C7\u30D5\u30A9\u30EB\u30C8 1000\uFF09
|
|
103717
|
+
- \`pageToken\` \u2014 \u30EC\u30B9\u30DD\u30F3\u30B9\u306E \`nextPageToken\` \u3092\u6E21\u3057\u3066\u30DA\u30FC\u30B8\u30F3\u30B0
|
|
103718
|
+
|
|
103719
|
+
#### Usage\uFF08\u5229\u7528\u30EC\u30DD\u30FC\u30C8\uFF09
|
|
103720
|
+
- 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
|
|
103721
|
+
- GET \`/usage/users/all/dates/{date}\` \u2014 \u6307\u5B9A\u65E5\u306E\u5168\u30E6\u30FC\u30B6\u30FC\u5229\u7528\u30EC\u30DD\u30FC\u30C8
|
|
103722
|
+
- GET \`/usage/users/{userKey}/dates/{date}\` \u2014 \u6307\u5B9A\u65E5\u306E\u7279\u5B9A\u30E6\u30FC\u30B6\u30FC\u306E\u5229\u7528\u30EC\u30DD\u30FC\u30C8
|
|
103723
|
+
|
|
103724
|
+
\u4E3B\u306A\u30AF\u30A8\u30EA\u30D1\u30E9\u30E1\u30FC\u30BF:
|
|
103725
|
+
- \`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
|
|
103726
|
+
- \`filters\` \u2014 \u30E1\u30C8\u30EA\u30AF\u30B9\u306B\u5BFE\u3059\u308B\u30D5\u30A3\u30EB\u30BF\u5F0F
|
|
103727
|
+
- \`maxResults\` / \`pageToken\` \u2014 \u30DA\u30FC\u30B8\u30F3\u30B0
|
|
103728
|
+
|
|
103729
|
+
### Business Logic
|
|
103730
|
+
|
|
103731
|
+
\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
|
|
103732
|
+
|
|
103733
|
+
SDK\u30E1\u30BD\u30C3\u30C9 (\`connection(connectionId)\` \u3067\u4F5C\u6210\u3057\u305F\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8):
|
|
103734
|
+
|
|
103735
|
+
- \`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
|
|
103736
|
+
|
|
103737
|
+
\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
|
|
103738
|
+
|
|
103739
|
+
#### Example
|
|
103740
|
+
|
|
103741
|
+
\`\`\`ts
|
|
103742
|
+
import type { Context } from "hono";
|
|
103743
|
+
import { connection } from "@squadbase/vite-server/connectors/google-audit-log";
|
|
103744
|
+
|
|
103745
|
+
const reports = connection("<connectionId>");
|
|
103746
|
+
|
|
103747
|
+
const SUBJECT = "admin@example.com"; // Project Knowledge \u306E "#### \u30B9\u30B3\u30FC\u30D7" \u304B\u3089\u9078\u3076
|
|
103748
|
+
const AUDIT = ["https://www.googleapis.com/auth/admin.reports.audit.readonly"];
|
|
103749
|
+
|
|
103750
|
+
export default async function handler(c: Context) {
|
|
103751
|
+
const { startTime, endTime } = await c.req.json<{
|
|
103752
|
+
startTime: string;
|
|
103753
|
+
endTime: string;
|
|
103754
|
+
}>();
|
|
103755
|
+
|
|
103756
|
+
const params = new URLSearchParams({
|
|
103757
|
+
startTime,
|
|
103758
|
+
endTime,
|
|
103759
|
+
maxResults: "100",
|
|
103760
|
+
});
|
|
103761
|
+
const res = await reports.requestWithDelegation(
|
|
103762
|
+
\`/activity/users/all/applications/login?\${params}\`,
|
|
103763
|
+
{ subject: SUBJECT, scopes: AUDIT },
|
|
103764
|
+
);
|
|
103765
|
+
const data = (await res.json()) as { items?: { id: { time: string }; events?: { name: string }[]; actor?: { email?: string } }[] };
|
|
103766
|
+
|
|
103767
|
+
return c.json(
|
|
103768
|
+
(data.items ?? []).map((item) => ({
|
|
103769
|
+
time: item.id.time,
|
|
103770
|
+
actor: item.actor?.email,
|
|
103771
|
+
event: item.events?.[0]?.name,
|
|
103772
|
+
})),
|
|
103773
|
+
);
|
|
103774
|
+
}
|
|
103775
|
+
\`\`\``
|
|
103776
|
+
},
|
|
103777
|
+
tools: tools52
|
|
103778
|
+
});
|
|
103779
|
+
|
|
103780
|
+
// ../connectors/src/connectors/linkedin-ads/tools/list-ad-accounts.ts
|
|
103781
|
+
import { z as z66 } from "zod";
|
|
103782
|
+
var BASE_URL31 = "https://api.linkedin.com/rest/";
|
|
103783
|
+
var LINKEDIN_VERSION = "202603";
|
|
103784
|
+
var REQUEST_TIMEOUT_MS49 = 6e4;
|
|
103263
103785
|
var cachedToken26 = null;
|
|
103264
103786
|
async function getProxyToken26(config) {
|
|
103265
103787
|
if (cachedToken26 && cachedToken26.expiresAt > Date.now() + 6e4) {
|
|
@@ -103291,32 +103813,32 @@ async function getProxyToken26(config) {
|
|
|
103291
103813
|
};
|
|
103292
103814
|
return data.token;
|
|
103293
103815
|
}
|
|
103294
|
-
var
|
|
103295
|
-
toolUseIntent:
|
|
103816
|
+
var inputSchema64 = z66.object({
|
|
103817
|
+
toolUseIntent: z66.string().optional().describe(
|
|
103296
103818
|
"Brief description of what you intend to accomplish with this tool call"
|
|
103297
103819
|
),
|
|
103298
|
-
connectionId:
|
|
103820
|
+
connectionId: z66.string().describe("ID of the LinkedIn Ads OAuth connection to use")
|
|
103299
103821
|
});
|
|
103300
|
-
var
|
|
103301
|
-
|
|
103302
|
-
success:
|
|
103303
|
-
adAccounts:
|
|
103304
|
-
|
|
103305
|
-
adAccountId:
|
|
103306
|
-
name:
|
|
103822
|
+
var outputSchema64 = z66.discriminatedUnion("success", [
|
|
103823
|
+
z66.object({
|
|
103824
|
+
success: z66.literal(true),
|
|
103825
|
+
adAccounts: z66.array(
|
|
103826
|
+
z66.object({
|
|
103827
|
+
adAccountId: z66.string(),
|
|
103828
|
+
name: z66.string()
|
|
103307
103829
|
})
|
|
103308
103830
|
)
|
|
103309
103831
|
}),
|
|
103310
|
-
|
|
103311
|
-
success:
|
|
103312
|
-
error:
|
|
103832
|
+
z66.object({
|
|
103833
|
+
success: z66.literal(false),
|
|
103834
|
+
error: z66.string()
|
|
103313
103835
|
})
|
|
103314
103836
|
]);
|
|
103315
103837
|
var listAdAccountsTool3 = new ConnectorTool({
|
|
103316
103838
|
name: "listAdAccounts",
|
|
103317
103839
|
description: "List LinkedIn ad accounts accessible with the current OAuth credentials.",
|
|
103318
|
-
inputSchema:
|
|
103319
|
-
outputSchema:
|
|
103840
|
+
inputSchema: inputSchema64,
|
|
103841
|
+
outputSchema: outputSchema64,
|
|
103320
103842
|
async execute({ connectionId }, connections, config) {
|
|
103321
103843
|
const connection2 = connections.find((c6) => c6.id === connectionId);
|
|
103322
103844
|
if (!connection2) {
|
|
@@ -103332,7 +103854,7 @@ var listAdAccountsTool3 = new ConnectorTool({
|
|
|
103332
103854
|
const token = await getProxyToken26(config.oauthProxy);
|
|
103333
103855
|
const proxyUrl = `https://${config.oauthProxy.sandboxId}.${config.oauthProxy.previewBaseDomain}/_sqcore/connections/${connectionId}/request`;
|
|
103334
103856
|
const controller = new AbortController();
|
|
103335
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
103857
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS49);
|
|
103336
103858
|
try {
|
|
103337
103859
|
const response = await fetch(proxyUrl, {
|
|
103338
103860
|
method: "POST",
|
|
@@ -103341,7 +103863,7 @@ var listAdAccountsTool3 = new ConnectorTool({
|
|
|
103341
103863
|
Authorization: `Bearer ${token}`
|
|
103342
103864
|
},
|
|
103343
103865
|
body: JSON.stringify({
|
|
103344
|
-
url: `${
|
|
103866
|
+
url: `${BASE_URL31}adAccounts?q=search&search=(status:(values:List(ACTIVE)))&pageSize=100`,
|
|
103345
103867
|
method: "GET",
|
|
103346
103868
|
headers: {
|
|
103347
103869
|
"LinkedIn-Version": LINKEDIN_VERSION,
|
|
@@ -103410,7 +103932,7 @@ var linkedinAdsOnboarding = new ConnectorOnboarding({
|
|
|
103410
103932
|
});
|
|
103411
103933
|
|
|
103412
103934
|
// ../connectors/src/connectors/linkedin-ads/parameters.ts
|
|
103413
|
-
var
|
|
103935
|
+
var parameters53 = {
|
|
103414
103936
|
adAccountId: new ParameterDefinition({
|
|
103415
103937
|
slug: "ad-account-id",
|
|
103416
103938
|
name: "Ad Account ID",
|
|
@@ -103423,10 +103945,10 @@ var parameters52 = {
|
|
|
103423
103945
|
};
|
|
103424
103946
|
|
|
103425
103947
|
// ../connectors/src/connectors/linkedin-ads/tools/request.ts
|
|
103426
|
-
import { z as
|
|
103427
|
-
var
|
|
103948
|
+
import { z as z67 } from "zod";
|
|
103949
|
+
var BASE_URL32 = "https://api.linkedin.com/rest/";
|
|
103428
103950
|
var LINKEDIN_VERSION2 = "202603";
|
|
103429
|
-
var
|
|
103951
|
+
var REQUEST_TIMEOUT_MS50 = 6e4;
|
|
103430
103952
|
var cachedToken27 = null;
|
|
103431
103953
|
async function getProxyToken27(config) {
|
|
103432
103954
|
if (cachedToken27 && cachedToken27.expiresAt > Date.now() + 6e4) {
|
|
@@ -103458,27 +103980,27 @@ async function getProxyToken27(config) {
|
|
|
103458
103980
|
};
|
|
103459
103981
|
return data.token;
|
|
103460
103982
|
}
|
|
103461
|
-
var
|
|
103462
|
-
toolUseIntent:
|
|
103983
|
+
var inputSchema65 = z67.object({
|
|
103984
|
+
toolUseIntent: z67.string().optional().describe(
|
|
103463
103985
|
"Brief description of what you intend to accomplish with this tool call"
|
|
103464
103986
|
),
|
|
103465
|
-
connectionId:
|
|
103466
|
-
method:
|
|
103467
|
-
path:
|
|
103987
|
+
connectionId: z67.string().describe("ID of the LinkedIn Ads OAuth connection to use"),
|
|
103988
|
+
method: z67.enum(["GET", "POST", "DELETE"]).describe("HTTP method"),
|
|
103989
|
+
path: z67.string().describe(
|
|
103468
103990
|
"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."
|
|
103469
103991
|
),
|
|
103470
|
-
queryParams:
|
|
103471
|
-
body:
|
|
103992
|
+
queryParams: z67.record(z67.string(), z67.string()).optional().describe("Query parameters to append to the URL"),
|
|
103993
|
+
body: z67.record(z67.string(), z67.unknown()).optional().describe("Request body (JSON). For partial updates, use the patch format: { patch: { $set: { ... } } }")
|
|
103472
103994
|
});
|
|
103473
|
-
var
|
|
103474
|
-
|
|
103475
|
-
success:
|
|
103476
|
-
status:
|
|
103477
|
-
data:
|
|
103995
|
+
var outputSchema65 = z67.discriminatedUnion("success", [
|
|
103996
|
+
z67.object({
|
|
103997
|
+
success: z67.literal(true),
|
|
103998
|
+
status: z67.number(),
|
|
103999
|
+
data: z67.unknown()
|
|
103478
104000
|
}),
|
|
103479
|
-
|
|
103480
|
-
success:
|
|
103481
|
-
error:
|
|
104001
|
+
z67.object({
|
|
104002
|
+
success: z67.literal(false),
|
|
104003
|
+
error: z67.string()
|
|
103482
104004
|
})
|
|
103483
104005
|
]);
|
|
103484
104006
|
var requestTool36 = new ConnectorTool({
|
|
@@ -103487,8 +104009,8 @@ var requestTool36 = new ConnectorTool({
|
|
|
103487
104009
|
Authentication is handled automatically via OAuth proxy.
|
|
103488
104010
|
{adAccountId} in the path is automatically replaced with the connection's ad account ID.
|
|
103489
104011
|
Required headers (LinkedIn-Version, X-Restli-Protocol-Version) are set automatically.`,
|
|
103490
|
-
inputSchema:
|
|
103491
|
-
outputSchema:
|
|
104012
|
+
inputSchema: inputSchema65,
|
|
104013
|
+
outputSchema: outputSchema65,
|
|
103492
104014
|
async execute({ connectionId, method, path: path6, queryParams, body }, connections, config) {
|
|
103493
104015
|
const connection2 = connections.find((c6) => c6.id === connectionId);
|
|
103494
104016
|
if (!connection2) {
|
|
@@ -103501,9 +104023,9 @@ Required headers (LinkedIn-Version, X-Restli-Protocol-Version) are set automatic
|
|
|
103501
104023
|
`[connector-request] linkedin-ads/${connection2.name}: ${method} ${path6}`
|
|
103502
104024
|
);
|
|
103503
104025
|
try {
|
|
103504
|
-
const adAccountId =
|
|
104026
|
+
const adAccountId = parameters53.adAccountId.tryGetValue(connection2) ?? "";
|
|
103505
104027
|
const resolvedPath = adAccountId ? path6.replace(/\{adAccountId\}/g, adAccountId) : path6;
|
|
103506
|
-
let url = `${
|
|
104028
|
+
let url = `${BASE_URL32}${resolvedPath}`;
|
|
103507
104029
|
if (queryParams && Object.keys(queryParams).length > 0) {
|
|
103508
104030
|
const params = new URLSearchParams(queryParams);
|
|
103509
104031
|
const separator = url.includes("?") ? "&" : "?";
|
|
@@ -103512,7 +104034,7 @@ Required headers (LinkedIn-Version, X-Restli-Protocol-Version) are set automatic
|
|
|
103512
104034
|
const token = await getProxyToken27(config.oauthProxy);
|
|
103513
104035
|
const proxyUrl = `https://${config.oauthProxy.sandboxId}.${config.oauthProxy.previewBaseDomain}/_sqcore/connections/${connectionId}/request`;
|
|
103514
104036
|
const controller = new AbortController();
|
|
103515
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
104037
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS50);
|
|
103516
104038
|
try {
|
|
103517
104039
|
const additionalHeaders = {
|
|
103518
104040
|
"LinkedIn-Version": LINKEDIN_VERSION2,
|
|
@@ -103556,7 +104078,7 @@ Required headers (LinkedIn-Version, X-Restli-Protocol-Version) are set automatic
|
|
|
103556
104078
|
});
|
|
103557
104079
|
|
|
103558
104080
|
// ../connectors/src/connectors/linkedin-ads/index.ts
|
|
103559
|
-
var
|
|
104081
|
+
var tools53 = {
|
|
103560
104082
|
request: requestTool36,
|
|
103561
104083
|
listAdAccounts: listAdAccountsTool3
|
|
103562
104084
|
};
|
|
@@ -103566,8 +104088,9 @@ var linkedinAdsConnector = new ConnectorPlugin({
|
|
|
103566
104088
|
name: "LinkedIn Ads",
|
|
103567
104089
|
description: "Connect to LinkedIn Ads (Marketing API) for advertising campaign data and reporting using OAuth.",
|
|
103568
104090
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/3x7xd9pVJkRFY7ADIg4ycq/b94720e34cb081e9ae45dfde799a59cd/LinkedIn_icon.svg.png",
|
|
103569
|
-
parameters:
|
|
104091
|
+
parameters: parameters53,
|
|
103570
104092
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
104093
|
+
categories: ["marketing"],
|
|
103571
104094
|
onboarding: linkedinAdsOnboarding,
|
|
103572
104095
|
proxyPolicy: {
|
|
103573
104096
|
allowlist: [
|
|
@@ -103765,7 +104288,7 @@ const res = await linkedin.request("adAccounts/{adAccountId}/adCampaigns?q=searc
|
|
|
103765
104288
|
const data = await res.json();
|
|
103766
104289
|
\`\`\``
|
|
103767
104290
|
},
|
|
103768
|
-
tools:
|
|
104291
|
+
tools: tools53,
|
|
103769
104292
|
async checkConnection(_params, config) {
|
|
103770
104293
|
const { proxyFetch } = config;
|
|
103771
104294
|
try {
|
|
@@ -103809,7 +104332,7 @@ var zendeskOnboarding = new ConnectorOnboarding({
|
|
|
103809
104332
|
});
|
|
103810
104333
|
|
|
103811
104334
|
// ../connectors/src/connectors/zendesk/parameters.ts
|
|
103812
|
-
var
|
|
104335
|
+
var parameters54 = {
|
|
103813
104336
|
subdomain: new ParameterDefinition({
|
|
103814
104337
|
slug: "subdomain",
|
|
103815
104338
|
name: "Zendesk Subdomain",
|
|
@@ -103840,30 +104363,30 @@ var parameters53 = {
|
|
|
103840
104363
|
};
|
|
103841
104364
|
|
|
103842
104365
|
// ../connectors/src/connectors/zendesk/tools/request.ts
|
|
103843
|
-
import { z as
|
|
103844
|
-
var
|
|
103845
|
-
var
|
|
103846
|
-
toolUseIntent:
|
|
104366
|
+
import { z as z68 } from "zod";
|
|
104367
|
+
var REQUEST_TIMEOUT_MS51 = 6e4;
|
|
104368
|
+
var inputSchema66 = z68.object({
|
|
104369
|
+
toolUseIntent: z68.string().optional().describe(
|
|
103847
104370
|
"Brief description of what you intend to accomplish with this tool call"
|
|
103848
104371
|
),
|
|
103849
|
-
connectionId:
|
|
103850
|
-
method:
|
|
104372
|
+
connectionId: z68.string().describe("ID of the Zendesk connection to use"),
|
|
104373
|
+
method: z68.enum(["GET", "POST", "PUT", "DELETE"]).describe(
|
|
103851
104374
|
"HTTP method. GET for reading, POST for creating/searching, PUT for updating, DELETE for removing."
|
|
103852
104375
|
),
|
|
103853
|
-
path:
|
|
104376
|
+
path: z68.string().describe(
|
|
103854
104377
|
"API path appended to https://{subdomain}.zendesk.com (e.g., '/api/v2/tickets.json', '/api/v2/search.json?query=status:open')"
|
|
103855
104378
|
),
|
|
103856
|
-
body:
|
|
104379
|
+
body: z68.record(z68.string(), z68.unknown()).optional().describe("Request body (JSON) for POST/PUT requests")
|
|
103857
104380
|
});
|
|
103858
|
-
var
|
|
103859
|
-
|
|
103860
|
-
success:
|
|
103861
|
-
status:
|
|
103862
|
-
data:
|
|
104381
|
+
var outputSchema66 = z68.discriminatedUnion("success", [
|
|
104382
|
+
z68.object({
|
|
104383
|
+
success: z68.literal(true),
|
|
104384
|
+
status: z68.number(),
|
|
104385
|
+
data: z68.record(z68.string(), z68.unknown())
|
|
103863
104386
|
}),
|
|
103864
|
-
|
|
103865
|
-
success:
|
|
103866
|
-
error:
|
|
104387
|
+
z68.object({
|
|
104388
|
+
success: z68.literal(false),
|
|
104389
|
+
error: z68.string()
|
|
103867
104390
|
})
|
|
103868
104391
|
]);
|
|
103869
104392
|
var requestTool37 = new ConnectorTool({
|
|
@@ -103872,8 +104395,8 @@ var requestTool37 = new ConnectorTool({
|
|
|
103872
104395
|
Authentication is handled automatically using email/token Basic auth.
|
|
103873
104396
|
Use this tool for all Zendesk API interactions: querying tickets, users, organizations, groups, and searching.
|
|
103874
104397
|
Zendesk uses cursor-based pagination with page[size] and page[after] parameters. All endpoints return .json suffix.`,
|
|
103875
|
-
inputSchema:
|
|
103876
|
-
outputSchema:
|
|
104398
|
+
inputSchema: inputSchema66,
|
|
104399
|
+
outputSchema: outputSchema66,
|
|
103877
104400
|
async execute({ connectionId, method, path: path6, body }, connections) {
|
|
103878
104401
|
const connection2 = connections.find((c6) => c6.id === connectionId);
|
|
103879
104402
|
if (!connection2) {
|
|
@@ -103886,15 +104409,15 @@ Zendesk uses cursor-based pagination with page[size] and page[after] parameters.
|
|
|
103886
104409
|
`[connector-request] zendesk/${connection2.name}: ${method} ${path6}`
|
|
103887
104410
|
);
|
|
103888
104411
|
try {
|
|
103889
|
-
const subdomain =
|
|
103890
|
-
const email =
|
|
103891
|
-
const apiToken =
|
|
104412
|
+
const subdomain = parameters54.subdomain.getValue(connection2);
|
|
104413
|
+
const email = parameters54.email.getValue(connection2);
|
|
104414
|
+
const apiToken = parameters54.apiToken.getValue(connection2);
|
|
103892
104415
|
const authToken = Buffer.from(`${email}/token:${apiToken}`).toString(
|
|
103893
104416
|
"base64"
|
|
103894
104417
|
);
|
|
103895
104418
|
const url = `https://${subdomain}.zendesk.com${path6.startsWith("/") ? "" : "/"}${path6}`;
|
|
103896
104419
|
const controller = new AbortController();
|
|
103897
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
104420
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS51);
|
|
103898
104421
|
try {
|
|
103899
104422
|
const response = await fetch(url, {
|
|
103900
104423
|
method,
|
|
@@ -103922,15 +104445,16 @@ Zendesk uses cursor-based pagination with page[size] and page[after] parameters.
|
|
|
103922
104445
|
});
|
|
103923
104446
|
|
|
103924
104447
|
// ../connectors/src/connectors/zendesk/index.ts
|
|
103925
|
-
var
|
|
104448
|
+
var tools54 = { request: requestTool37 };
|
|
103926
104449
|
var zendeskConnector = new ConnectorPlugin({
|
|
103927
104450
|
slug: "zendesk",
|
|
103928
104451
|
authType: AUTH_TYPES.API_KEY,
|
|
103929
104452
|
name: "Zendesk",
|
|
103930
104453
|
description: "Connect to Zendesk Support for tickets, users, organizations, and customer service data using an API token.",
|
|
103931
104454
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/7e9Q7PwV6MJRJMj543m2gl/55385fae903ccfa1599e35be9d3516aa/zendesk-icon.svg",
|
|
103932
|
-
parameters:
|
|
104455
|
+
parameters: parameters54,
|
|
103933
104456
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
104457
|
+
categories: ["crm"],
|
|
103934
104458
|
onboarding: zendeskOnboarding,
|
|
103935
104459
|
systemPrompt: {
|
|
103936
104460
|
en: `### Tools
|
|
@@ -104106,12 +104630,12 @@ export default async function handler(c: Context) {
|
|
|
104106
104630
|
- \`type:user role:agent\` \u2014 \u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u30E6\u30FC\u30B6\u30FC
|
|
104107
104631
|
- \`type:organization {name}\` \u2014 \u540D\u524D\u304C\u4E00\u81F4\u3059\u308B\u7D44\u7E54`
|
|
104108
104632
|
},
|
|
104109
|
-
tools:
|
|
104633
|
+
tools: tools54
|
|
104110
104634
|
});
|
|
104111
104635
|
|
|
104112
104636
|
// ../connectors/src/connectors/zendesk-oauth/tools/request.ts
|
|
104113
|
-
import { z as
|
|
104114
|
-
var
|
|
104637
|
+
import { z as z69 } from "zod";
|
|
104638
|
+
var REQUEST_TIMEOUT_MS52 = 6e4;
|
|
104115
104639
|
var cachedToken28 = null;
|
|
104116
104640
|
async function getProxyToken28(config) {
|
|
104117
104641
|
if (cachedToken28 && cachedToken28.expiresAt > Date.now() + 6e4) {
|
|
@@ -104143,27 +104667,27 @@ async function getProxyToken28(config) {
|
|
|
104143
104667
|
};
|
|
104144
104668
|
return data.token;
|
|
104145
104669
|
}
|
|
104146
|
-
var
|
|
104147
|
-
toolUseIntent:
|
|
104670
|
+
var inputSchema67 = z69.object({
|
|
104671
|
+
toolUseIntent: z69.string().optional().describe(
|
|
104148
104672
|
"Brief description of what you intend to accomplish with this tool call"
|
|
104149
104673
|
),
|
|
104150
|
-
connectionId:
|
|
104151
|
-
method:
|
|
104152
|
-
path:
|
|
104674
|
+
connectionId: z69.string().describe("ID of the Zendesk OAuth connection to use"),
|
|
104675
|
+
method: z69.enum(["GET", "POST", "PUT", "DELETE"]).describe("HTTP method"),
|
|
104676
|
+
path: z69.string().describe(
|
|
104153
104677
|
"API path appended to the Zendesk base URL (e.g., '/api/v2/tickets.json', '/api/v2/search.json?query=status:open')"
|
|
104154
104678
|
),
|
|
104155
|
-
queryParams:
|
|
104156
|
-
body:
|
|
104679
|
+
queryParams: z69.record(z69.string(), z69.string()).optional().describe("Query parameters to append to the URL"),
|
|
104680
|
+
body: z69.record(z69.string(), z69.unknown()).optional().describe("Request body (JSON) for POST/PUT requests")
|
|
104157
104681
|
});
|
|
104158
|
-
var
|
|
104159
|
-
|
|
104160
|
-
success:
|
|
104161
|
-
status:
|
|
104162
|
-
data:
|
|
104682
|
+
var outputSchema67 = z69.discriminatedUnion("success", [
|
|
104683
|
+
z69.object({
|
|
104684
|
+
success: z69.literal(true),
|
|
104685
|
+
status: z69.number(),
|
|
104686
|
+
data: z69.record(z69.string(), z69.unknown())
|
|
104163
104687
|
}),
|
|
104164
|
-
|
|
104165
|
-
success:
|
|
104166
|
-
error:
|
|
104688
|
+
z69.object({
|
|
104689
|
+
success: z69.literal(false),
|
|
104690
|
+
error: z69.string()
|
|
104167
104691
|
})
|
|
104168
104692
|
]);
|
|
104169
104693
|
var requestTool38 = new ConnectorTool({
|
|
@@ -104172,8 +104696,8 @@ var requestTool38 = new ConnectorTool({
|
|
|
104172
104696
|
Authentication is handled automatically via OAuth proxy.
|
|
104173
104697
|
Use this tool for all Zendesk API interactions: querying tickets, users, organizations, groups, and searching.
|
|
104174
104698
|
Zendesk uses cursor-based pagination with page[size] and page[after] parameters. All endpoint paths end with .json.`,
|
|
104175
|
-
inputSchema:
|
|
104176
|
-
outputSchema:
|
|
104699
|
+
inputSchema: inputSchema67,
|
|
104700
|
+
outputSchema: outputSchema67,
|
|
104177
104701
|
async execute({ connectionId, method, path: path6, queryParams, body }, connections, config) {
|
|
104178
104702
|
const connection2 = connections.find((c6) => c6.id === connectionId);
|
|
104179
104703
|
if (!connection2) {
|
|
@@ -104195,7 +104719,7 @@ Zendesk uses cursor-based pagination with page[size] and page[after] parameters.
|
|
|
104195
104719
|
const token = await getProxyToken28(config.oauthProxy);
|
|
104196
104720
|
const proxyUrl = `https://${config.oauthProxy.sandboxId}.${config.oauthProxy.previewBaseDomain}/_sqcore/connections/${connectionId}/request`;
|
|
104197
104721
|
const controller = new AbortController();
|
|
104198
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
104722
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS52);
|
|
104199
104723
|
try {
|
|
104200
104724
|
const response = await fetch(proxyUrl, {
|
|
104201
104725
|
method: "POST",
|
|
@@ -104264,18 +104788,19 @@ var zendeskOauthOnboarding = new ConnectorOnboarding({
|
|
|
104264
104788
|
});
|
|
104265
104789
|
|
|
104266
104790
|
// ../connectors/src/connectors/zendesk-oauth/parameters.ts
|
|
104267
|
-
var
|
|
104791
|
+
var parameters55 = {};
|
|
104268
104792
|
|
|
104269
104793
|
// ../connectors/src/connectors/zendesk-oauth/index.ts
|
|
104270
|
-
var
|
|
104794
|
+
var tools55 = { request: requestTool38 };
|
|
104271
104795
|
var zendeskOauthConnector = new ConnectorPlugin({
|
|
104272
104796
|
slug: "zendesk",
|
|
104273
104797
|
authType: AUTH_TYPES.OAUTH,
|
|
104274
104798
|
name: "Zendesk",
|
|
104275
104799
|
description: "Connect to Zendesk Support for tickets, users, organizations, and customer service data using OAuth.",
|
|
104276
104800
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/7e9Q7PwV6MJRJMj543m2gl/55385fae903ccfa1599e35be9d3516aa/zendesk-icon.svg",
|
|
104277
|
-
parameters:
|
|
104801
|
+
parameters: parameters55,
|
|
104278
104802
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
104803
|
+
categories: ["crm"],
|
|
104279
104804
|
onboarding: zendeskOauthOnboarding,
|
|
104280
104805
|
proxyPolicy: {
|
|
104281
104806
|
allowlist: [
|
|
@@ -104403,7 +104928,7 @@ const res = await zendesk.request("/api/v2/tickets.json?page[size]=10");
|
|
|
104403
104928
|
const data = await res.json();
|
|
104404
104929
|
\`\`\``
|
|
104405
104930
|
},
|
|
104406
|
-
tools:
|
|
104931
|
+
tools: tools55,
|
|
104407
104932
|
async checkConnection(_params, config) {
|
|
104408
104933
|
const { proxyFetch } = config;
|
|
104409
104934
|
try {
|
|
@@ -104442,7 +104967,7 @@ var intercomOnboarding = new ConnectorOnboarding({
|
|
|
104442
104967
|
});
|
|
104443
104968
|
|
|
104444
104969
|
// ../connectors/src/connectors/intercom/parameters.ts
|
|
104445
|
-
var
|
|
104970
|
+
var parameters56 = {
|
|
104446
104971
|
accessToken: new ParameterDefinition({
|
|
104447
104972
|
slug: "access-token",
|
|
104448
104973
|
name: "Access Token",
|
|
@@ -104455,32 +104980,32 @@ var parameters55 = {
|
|
|
104455
104980
|
};
|
|
104456
104981
|
|
|
104457
104982
|
// ../connectors/src/connectors/intercom/tools/request.ts
|
|
104458
|
-
import { z as
|
|
104459
|
-
var
|
|
104983
|
+
import { z as z70 } from "zod";
|
|
104984
|
+
var BASE_URL33 = "https://api.intercom.io";
|
|
104460
104985
|
var API_VERSION = "2.11";
|
|
104461
|
-
var
|
|
104462
|
-
var
|
|
104463
|
-
toolUseIntent:
|
|
104986
|
+
var REQUEST_TIMEOUT_MS53 = 6e4;
|
|
104987
|
+
var inputSchema68 = z70.object({
|
|
104988
|
+
toolUseIntent: z70.string().optional().describe(
|
|
104464
104989
|
"Brief description of what you intend to accomplish with this tool call"
|
|
104465
104990
|
),
|
|
104466
|
-
connectionId:
|
|
104467
|
-
method:
|
|
104991
|
+
connectionId: z70.string().describe("ID of the Intercom connection to use"),
|
|
104992
|
+
method: z70.enum(["GET", "POST", "PUT", "DELETE"]).describe(
|
|
104468
104993
|
"HTTP method. GET for reading, POST for creating/searching, PUT for updating, DELETE for removing."
|
|
104469
104994
|
),
|
|
104470
|
-
path:
|
|
104995
|
+
path: z70.string().describe(
|
|
104471
104996
|
"API path appended to https://api.intercom.io (e.g., '/contacts', '/conversations', '/contacts/search')"
|
|
104472
104997
|
),
|
|
104473
|
-
body:
|
|
104998
|
+
body: z70.record(z70.string(), z70.unknown()).optional().describe("Request body (JSON) for POST/PUT requests")
|
|
104474
104999
|
});
|
|
104475
|
-
var
|
|
104476
|
-
|
|
104477
|
-
success:
|
|
104478
|
-
status:
|
|
104479
|
-
data:
|
|
105000
|
+
var outputSchema68 = z70.discriminatedUnion("success", [
|
|
105001
|
+
z70.object({
|
|
105002
|
+
success: z70.literal(true),
|
|
105003
|
+
status: z70.number(),
|
|
105004
|
+
data: z70.record(z70.string(), z70.unknown())
|
|
104480
105005
|
}),
|
|
104481
|
-
|
|
104482
|
-
success:
|
|
104483
|
-
error:
|
|
105006
|
+
z70.object({
|
|
105007
|
+
success: z70.literal(false),
|
|
105008
|
+
error: z70.string()
|
|
104484
105009
|
})
|
|
104485
105010
|
]);
|
|
104486
105011
|
var requestTool39 = new ConnectorTool({
|
|
@@ -104491,8 +105016,8 @@ Use this tool for all Intercom API interactions: querying contacts, conversation
|
|
|
104491
105016
|
Intercom uses cursor-based pagination with the starting_after parameter from pages.next.starting_after in the response.
|
|
104492
105017
|
Search endpoints (contacts/search, conversations/search) use POST with a query object in the body.
|
|
104493
105018
|
The Intercom-Version header is set to 2.11 automatically.`,
|
|
104494
|
-
inputSchema:
|
|
104495
|
-
outputSchema:
|
|
105019
|
+
inputSchema: inputSchema68,
|
|
105020
|
+
outputSchema: outputSchema68,
|
|
104496
105021
|
async execute({ connectionId, method, path: path6, body }, connections) {
|
|
104497
105022
|
const connection2 = connections.find((c6) => c6.id === connectionId);
|
|
104498
105023
|
if (!connection2) {
|
|
@@ -104505,10 +105030,10 @@ The Intercom-Version header is set to 2.11 automatically.`,
|
|
|
104505
105030
|
`[connector-request] intercom/${connection2.name}: ${method} ${path6}`
|
|
104506
105031
|
);
|
|
104507
105032
|
try {
|
|
104508
|
-
const accessToken =
|
|
104509
|
-
const url = `${
|
|
105033
|
+
const accessToken = parameters56.accessToken.getValue(connection2);
|
|
105034
|
+
const url = `${BASE_URL33}${path6.startsWith("/") ? "" : "/"}${path6}`;
|
|
104510
105035
|
const controller = new AbortController();
|
|
104511
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
105036
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS53);
|
|
104512
105037
|
try {
|
|
104513
105038
|
const response = await fetch(url, {
|
|
104514
105039
|
method,
|
|
@@ -104539,15 +105064,16 @@ The Intercom-Version header is set to 2.11 automatically.`,
|
|
|
104539
105064
|
});
|
|
104540
105065
|
|
|
104541
105066
|
// ../connectors/src/connectors/intercom/index.ts
|
|
104542
|
-
var
|
|
105067
|
+
var tools56 = { request: requestTool39 };
|
|
104543
105068
|
var intercomConnector = new ConnectorPlugin({
|
|
104544
105069
|
slug: "intercom",
|
|
104545
105070
|
authType: AUTH_TYPES.API_KEY,
|
|
104546
105071
|
name: "Intercom",
|
|
104547
105072
|
description: "Connect to Intercom for contacts, conversations, companies, and customer engagement data using an Access Token.",
|
|
104548
105073
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/sb2cRMGClpId0LKiSqsok/ae90a0849f21ffe3faf73e04a5676b45/intercom.svg",
|
|
104549
|
-
parameters:
|
|
105074
|
+
parameters: parameters56,
|
|
104550
105075
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
105076
|
+
categories: ["crm"],
|
|
104551
105077
|
onboarding: intercomOnboarding,
|
|
104552
105078
|
systemPrompt: {
|
|
104553
105079
|
en: `### Tools
|
|
@@ -104743,13 +105269,13 @@ export default async function handler(c: Context) {
|
|
|
104743
105269
|
- \u8AD6\u7406\u6F14\u7B97\u5B50: \`AND\`, \`OR\`\uFF08\u8907\u6570\u30D5\u30A3\u30EB\u30BF\u306E\u7D50\u5408\uFF09
|
|
104744
105270
|
- \u65E5\u4ED8\u30D5\u30A3\u30FC\u30EB\u30C9\u306FUnix\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u3092\u4F7F\u7528`
|
|
104745
105271
|
},
|
|
104746
|
-
tools:
|
|
105272
|
+
tools: tools56
|
|
104747
105273
|
});
|
|
104748
105274
|
|
|
104749
105275
|
// ../connectors/src/connectors/intercom-oauth/tools/request.ts
|
|
104750
|
-
import { z as
|
|
104751
|
-
var
|
|
104752
|
-
var
|
|
105276
|
+
import { z as z71 } from "zod";
|
|
105277
|
+
var BASE_URL34 = "https://api.intercom.io";
|
|
105278
|
+
var REQUEST_TIMEOUT_MS54 = 6e4;
|
|
104753
105279
|
var cachedToken29 = null;
|
|
104754
105280
|
async function getProxyToken29(config) {
|
|
104755
105281
|
if (cachedToken29 && cachedToken29.expiresAt > Date.now() + 6e4) {
|
|
@@ -104781,27 +105307,27 @@ async function getProxyToken29(config) {
|
|
|
104781
105307
|
};
|
|
104782
105308
|
return data.token;
|
|
104783
105309
|
}
|
|
104784
|
-
var
|
|
104785
|
-
toolUseIntent:
|
|
105310
|
+
var inputSchema69 = z71.object({
|
|
105311
|
+
toolUseIntent: z71.string().optional().describe(
|
|
104786
105312
|
"Brief description of what you intend to accomplish with this tool call"
|
|
104787
105313
|
),
|
|
104788
|
-
connectionId:
|
|
104789
|
-
method:
|
|
104790
|
-
path:
|
|
105314
|
+
connectionId: z71.string().describe("ID of the Intercom OAuth connection to use"),
|
|
105315
|
+
method: z71.enum(["GET", "POST", "PUT", "DELETE"]).describe("HTTP method"),
|
|
105316
|
+
path: z71.string().describe(
|
|
104791
105317
|
"API path appended to https://api.intercom.io (e.g., '/contacts', '/conversations', '/contacts/search')"
|
|
104792
105318
|
),
|
|
104793
|
-
queryParams:
|
|
104794
|
-
body:
|
|
105319
|
+
queryParams: z71.record(z71.string(), z71.string()).optional().describe("Query parameters to append to the URL"),
|
|
105320
|
+
body: z71.record(z71.string(), z71.unknown()).optional().describe("Request body (JSON) for POST/PUT requests")
|
|
104795
105321
|
});
|
|
104796
|
-
var
|
|
104797
|
-
|
|
104798
|
-
success:
|
|
104799
|
-
status:
|
|
104800
|
-
data:
|
|
105322
|
+
var outputSchema69 = z71.discriminatedUnion("success", [
|
|
105323
|
+
z71.object({
|
|
105324
|
+
success: z71.literal(true),
|
|
105325
|
+
status: z71.number(),
|
|
105326
|
+
data: z71.record(z71.string(), z71.unknown())
|
|
104801
105327
|
}),
|
|
104802
|
-
|
|
104803
|
-
success:
|
|
104804
|
-
error:
|
|
105328
|
+
z71.object({
|
|
105329
|
+
success: z71.literal(false),
|
|
105330
|
+
error: z71.string()
|
|
104805
105331
|
})
|
|
104806
105332
|
]);
|
|
104807
105333
|
var requestTool40 = new ConnectorTool({
|
|
@@ -104811,8 +105337,8 @@ Authentication is handled automatically via OAuth proxy.
|
|
|
104811
105337
|
The Intercom-Version header (2.11) is set automatically.
|
|
104812
105338
|
Use this tool for all Intercom API interactions: querying contacts, conversations, companies, articles, tags, and segments.
|
|
104813
105339
|
Search endpoints (contacts/search, conversations/search) use POST with a query object in the body.`,
|
|
104814
|
-
inputSchema:
|
|
104815
|
-
outputSchema:
|
|
105340
|
+
inputSchema: inputSchema69,
|
|
105341
|
+
outputSchema: outputSchema69,
|
|
104816
105342
|
async execute({ connectionId, method, path: path6, queryParams, body }, connections, config) {
|
|
104817
105343
|
const connection2 = connections.find((c6) => c6.id === connectionId);
|
|
104818
105344
|
if (!connection2) {
|
|
@@ -104825,7 +105351,7 @@ Search endpoints (contacts/search, conversations/search) use POST with a query o
|
|
|
104825
105351
|
`[connector-request] intercom-oauth/${connection2.name}: ${method} ${path6}`
|
|
104826
105352
|
);
|
|
104827
105353
|
try {
|
|
104828
|
-
let url = `${
|
|
105354
|
+
let url = `${BASE_URL34}${path6.startsWith("/") ? "" : "/"}${path6}`;
|
|
104829
105355
|
if (queryParams) {
|
|
104830
105356
|
const searchParams = new URLSearchParams(queryParams);
|
|
104831
105357
|
const separator = url.includes("?") ? "&" : "?";
|
|
@@ -104834,7 +105360,7 @@ Search endpoints (contacts/search, conversations/search) use POST with a query o
|
|
|
104834
105360
|
const token = await getProxyToken29(config.oauthProxy);
|
|
104835
105361
|
const proxyUrl = `https://${config.oauthProxy.sandboxId}.${config.oauthProxy.previewBaseDomain}/_sqcore/connections/${connectionId}/request`;
|
|
104836
105362
|
const controller = new AbortController();
|
|
104837
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
105363
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS54);
|
|
104838
105364
|
try {
|
|
104839
105365
|
const response = await fetch(proxyUrl, {
|
|
104840
105366
|
method: "POST",
|
|
@@ -104904,18 +105430,19 @@ var intercomOauthOnboarding = new ConnectorOnboarding({
|
|
|
104904
105430
|
});
|
|
104905
105431
|
|
|
104906
105432
|
// ../connectors/src/connectors/intercom-oauth/parameters.ts
|
|
104907
|
-
var
|
|
105433
|
+
var parameters57 = {};
|
|
104908
105434
|
|
|
104909
105435
|
// ../connectors/src/connectors/intercom-oauth/index.ts
|
|
104910
|
-
var
|
|
105436
|
+
var tools57 = { request: requestTool40 };
|
|
104911
105437
|
var intercomOauthConnector = new ConnectorPlugin({
|
|
104912
105438
|
slug: "intercom",
|
|
104913
105439
|
authType: AUTH_TYPES.OAUTH,
|
|
104914
105440
|
name: "Intercom",
|
|
104915
105441
|
description: "Connect to Intercom for contacts, conversations, companies, and customer engagement data using OAuth.",
|
|
104916
105442
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/sb2cRMGClpId0LKiSqsok/ae90a0849f21ffe3faf73e04a5676b45/intercom.svg",
|
|
104917
|
-
parameters:
|
|
105443
|
+
parameters: parameters57,
|
|
104918
105444
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
105445
|
+
categories: ["crm"],
|
|
104919
105446
|
onboarding: intercomOauthOnboarding,
|
|
104920
105447
|
proxyPolicy: {
|
|
104921
105448
|
allowlist: [
|
|
@@ -105043,7 +105570,7 @@ const res = await intercom.request("/contacts?per_page=10");
|
|
|
105043
105570
|
const data = await res.json();
|
|
105044
105571
|
\`\`\``
|
|
105045
105572
|
},
|
|
105046
|
-
tools:
|
|
105573
|
+
tools: tools57,
|
|
105047
105574
|
async checkConnection(_params, config) {
|
|
105048
105575
|
const { proxyFetch } = config;
|
|
105049
105576
|
try {
|
|
@@ -105088,7 +105615,7 @@ NOTE: The Query API endpoints (insights, funnels, retention) require a bookmark_
|
|
|
105088
105615
|
});
|
|
105089
105616
|
|
|
105090
105617
|
// ../connectors/src/connectors/mixpanel/parameters.ts
|
|
105091
|
-
var
|
|
105618
|
+
var parameters58 = {
|
|
105092
105619
|
serviceAccountUsername: new ParameterDefinition({
|
|
105093
105620
|
slug: "service-account-username",
|
|
105094
105621
|
name: "Service Account Username",
|
|
@@ -105128,35 +105655,35 @@ var parameters57 = {
|
|
|
105128
105655
|
};
|
|
105129
105656
|
|
|
105130
105657
|
// ../connectors/src/connectors/mixpanel/tools/request.ts
|
|
105131
|
-
import { z as
|
|
105132
|
-
var
|
|
105133
|
-
var
|
|
105134
|
-
toolUseIntent:
|
|
105658
|
+
import { z as z72 } from "zod";
|
|
105659
|
+
var REQUEST_TIMEOUT_MS55 = 6e4;
|
|
105660
|
+
var inputSchema70 = z72.object({
|
|
105661
|
+
toolUseIntent: z72.string().optional().describe(
|
|
105135
105662
|
"Brief description of what you intend to accomplish with this tool call"
|
|
105136
105663
|
),
|
|
105137
|
-
connectionId:
|
|
105138
|
-
method:
|
|
105664
|
+
connectionId: z72.string().describe("ID of the Mixpanel connection to use"),
|
|
105665
|
+
method: z72.enum(["GET", "POST"]).describe(
|
|
105139
105666
|
"HTTP method. GET for most Query API and Export endpoints. POST for Engage (profile query) endpoint."
|
|
105140
105667
|
),
|
|
105141
|
-
url:
|
|
105668
|
+
url: z72.string().describe(
|
|
105142
105669
|
"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."
|
|
105143
105670
|
),
|
|
105144
|
-
body:
|
|
105671
|
+
body: z72.string().optional().describe(
|
|
105145
105672
|
"Request body for POST requests. Use application/x-www-form-urlencoded format for the Engage endpoint, or JSON string for other POST endpoints."
|
|
105146
105673
|
),
|
|
105147
|
-
contentType:
|
|
105674
|
+
contentType: z72.enum(["application/json", "application/x-www-form-urlencoded"]).optional().describe(
|
|
105148
105675
|
"Content-Type header. Defaults to application/json. Use application/x-www-form-urlencoded for the Engage endpoint."
|
|
105149
105676
|
)
|
|
105150
105677
|
});
|
|
105151
|
-
var
|
|
105152
|
-
|
|
105153
|
-
success:
|
|
105154
|
-
status:
|
|
105155
|
-
data:
|
|
105678
|
+
var outputSchema70 = z72.discriminatedUnion("success", [
|
|
105679
|
+
z72.object({
|
|
105680
|
+
success: z72.literal(true),
|
|
105681
|
+
status: z72.number(),
|
|
105682
|
+
data: z72.unknown()
|
|
105156
105683
|
}),
|
|
105157
|
-
|
|
105158
|
-
success:
|
|
105159
|
-
error:
|
|
105684
|
+
z72.object({
|
|
105685
|
+
success: z72.literal(false),
|
|
105686
|
+
error: z72.string()
|
|
105160
105687
|
})
|
|
105161
105688
|
]);
|
|
105162
105689
|
var requestTool41 = new ConnectorTool({
|
|
@@ -105177,8 +105704,8 @@ Key endpoints:
|
|
|
105177
105704
|
- GET {exportBase}?from_date=YYYY-MM-DD&to_date=YYYY-MM-DD \u2014 Export raw events (JSONL)
|
|
105178
105705
|
|
|
105179
105706
|
Rate limit: 60 queries/hour, 5 concurrent queries for Query API.`,
|
|
105180
|
-
inputSchema:
|
|
105181
|
-
outputSchema:
|
|
105707
|
+
inputSchema: inputSchema70,
|
|
105708
|
+
outputSchema: outputSchema70,
|
|
105182
105709
|
async execute({ connectionId, method, url, body, contentType }, connections) {
|
|
105183
105710
|
const connection2 = connections.find((c6) => c6.id === connectionId);
|
|
105184
105711
|
if (!connection2) {
|
|
@@ -105191,9 +105718,9 @@ Rate limit: 60 queries/hour, 5 concurrent queries for Query API.`,
|
|
|
105191
105718
|
`[connector-request] mixpanel/${connection2.name}: ${method} ${url}`
|
|
105192
105719
|
);
|
|
105193
105720
|
try {
|
|
105194
|
-
const username =
|
|
105195
|
-
const secret =
|
|
105196
|
-
const projectId =
|
|
105721
|
+
const username = parameters58.serviceAccountUsername.getValue(connection2);
|
|
105722
|
+
const secret = parameters58.serviceAccountSecret.getValue(connection2);
|
|
105723
|
+
const projectId = parameters58.projectId.getValue(connection2);
|
|
105197
105724
|
const authToken = btoa(`${username}:${secret}`);
|
|
105198
105725
|
let finalUrl = url;
|
|
105199
105726
|
const urlObj = new URL(url);
|
|
@@ -105202,7 +105729,7 @@ Rate limit: 60 queries/hour, 5 concurrent queries for Query API.`,
|
|
|
105202
105729
|
finalUrl = urlObj.toString();
|
|
105203
105730
|
}
|
|
105204
105731
|
const controller = new AbortController();
|
|
105205
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
105732
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS55);
|
|
105206
105733
|
try {
|
|
105207
105734
|
const headers = {
|
|
105208
105735
|
Authorization: `Basic ${authToken}`,
|
|
@@ -105253,15 +105780,16 @@ Rate limit: 60 queries/hour, 5 concurrent queries for Query API.`,
|
|
|
105253
105780
|
});
|
|
105254
105781
|
|
|
105255
105782
|
// ../connectors/src/connectors/mixpanel/index.ts
|
|
105256
|
-
var
|
|
105783
|
+
var tools58 = { request: requestTool41 };
|
|
105257
105784
|
var mixpanelConnector = new ConnectorPlugin({
|
|
105258
105785
|
slug: "mixpanel",
|
|
105259
105786
|
authType: AUTH_TYPES.API_KEY,
|
|
105260
105787
|
name: "Mixpanel",
|
|
105261
105788
|
description: "Connect to Mixpanel for product analytics, event tracking, and user behavior analysis.",
|
|
105262
105789
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/7ykz0vNRjMqvTVrxS8wsj1/b2cd795be5b373877dee77cc6147c758/images__3_.png",
|
|
105263
|
-
parameters:
|
|
105790
|
+
parameters: parameters58,
|
|
105264
105791
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
105792
|
+
categories: ["marketing"],
|
|
105265
105793
|
onboarding: mixpanelOnboarding,
|
|
105266
105794
|
systemPrompt: {
|
|
105267
105795
|
en: `### Tools
|
|
@@ -105383,7 +105911,7 @@ export default async function handler(c: Context) {
|
|
|
105383
105911
|
|
|
105384
105912
|
\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`
|
|
105385
105913
|
},
|
|
105386
|
-
tools:
|
|
105914
|
+
tools: tools58
|
|
105387
105915
|
});
|
|
105388
105916
|
|
|
105389
105917
|
// ../connectors/src/connectors/grafana/setup.ts
|
|
@@ -105399,7 +105927,7 @@ var grafanaOnboarding = new ConnectorOnboarding({
|
|
|
105399
105927
|
});
|
|
105400
105928
|
|
|
105401
105929
|
// ../connectors/src/connectors/grafana/parameters.ts
|
|
105402
|
-
var
|
|
105930
|
+
var parameters59 = {
|
|
105403
105931
|
url: new ParameterDefinition({
|
|
105404
105932
|
slug: "url",
|
|
105405
105933
|
name: "Grafana URL",
|
|
@@ -105421,30 +105949,30 @@ var parameters58 = {
|
|
|
105421
105949
|
};
|
|
105422
105950
|
|
|
105423
105951
|
// ../connectors/src/connectors/grafana/tools/request.ts
|
|
105424
|
-
import { z as
|
|
105425
|
-
var
|
|
105426
|
-
var
|
|
105427
|
-
toolUseIntent:
|
|
105952
|
+
import { z as z73 } from "zod";
|
|
105953
|
+
var REQUEST_TIMEOUT_MS56 = 6e4;
|
|
105954
|
+
var inputSchema71 = z73.object({
|
|
105955
|
+
toolUseIntent: z73.string().optional().describe(
|
|
105428
105956
|
"Brief description of what you intend to accomplish with this tool call"
|
|
105429
105957
|
),
|
|
105430
|
-
connectionId:
|
|
105431
|
-
method:
|
|
105958
|
+
connectionId: z73.string().describe("ID of the Grafana connection to use"),
|
|
105959
|
+
method: z73.enum(["GET", "POST", "PUT", "PATCH", "DELETE"]).describe(
|
|
105432
105960
|
"HTTP method. GET for reading resources (datasources, dashboards, alerts). POST for queries and creating resources. PUT/PATCH for updates. DELETE for removal."
|
|
105433
105961
|
),
|
|
105434
|
-
path:
|
|
105962
|
+
path: z73.string().describe(
|
|
105435
105963
|
"API path relative to the Grafana base URL (e.g., '/api/datasources', '/api/search', '/api/ds/query'). Must start with '/'."
|
|
105436
105964
|
),
|
|
105437
|
-
body:
|
|
105965
|
+
body: z73.record(z73.string(), z73.unknown()).optional().describe("Request body (JSON). Required for POST/PUT/PATCH requests.")
|
|
105438
105966
|
});
|
|
105439
|
-
var
|
|
105440
|
-
|
|
105441
|
-
success:
|
|
105442
|
-
status:
|
|
105443
|
-
data:
|
|
105967
|
+
var outputSchema71 = z73.discriminatedUnion("success", [
|
|
105968
|
+
z73.object({
|
|
105969
|
+
success: z73.literal(true),
|
|
105970
|
+
status: z73.number(),
|
|
105971
|
+
data: z73.unknown()
|
|
105444
105972
|
}),
|
|
105445
|
-
|
|
105446
|
-
success:
|
|
105447
|
-
error:
|
|
105973
|
+
z73.object({
|
|
105974
|
+
success: z73.literal(false),
|
|
105975
|
+
error: z73.string()
|
|
105448
105976
|
})
|
|
105449
105977
|
]);
|
|
105450
105978
|
var requestTool42 = new ConnectorTool({
|
|
@@ -105453,8 +105981,8 @@ var requestTool42 = new ConnectorTool({
|
|
|
105453
105981
|
Authentication is handled automatically using the configured API Key or Service Account Token via Bearer token.
|
|
105454
105982
|
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).
|
|
105455
105983
|
The path must start with '/' and is appended to the configured Grafana instance URL.`,
|
|
105456
|
-
inputSchema:
|
|
105457
|
-
outputSchema:
|
|
105984
|
+
inputSchema: inputSchema71,
|
|
105985
|
+
outputSchema: outputSchema71,
|
|
105458
105986
|
async execute({ connectionId, method, path: path6, body }, connections) {
|
|
105459
105987
|
const connection2 = connections.find((c6) => c6.id === connectionId);
|
|
105460
105988
|
if (!connection2) {
|
|
@@ -105467,13 +105995,13 @@ The path must start with '/' and is appended to the configured Grafana instance
|
|
|
105467
105995
|
`[connector-request] grafana/${connection2.name}: ${method} ${path6}`
|
|
105468
105996
|
);
|
|
105469
105997
|
try {
|
|
105470
|
-
const baseUrl =
|
|
105471
|
-
const apiKey =
|
|
105998
|
+
const baseUrl = parameters59.url.getValue(connection2).replace(/\/+$/, "");
|
|
105999
|
+
const apiKey = parameters59.apiKey.getValue(connection2);
|
|
105472
106000
|
const url = `${baseUrl}${path6}`;
|
|
105473
106001
|
const controller = new AbortController();
|
|
105474
106002
|
const timeout = setTimeout(
|
|
105475
106003
|
() => controller.abort(),
|
|
105476
|
-
|
|
106004
|
+
REQUEST_TIMEOUT_MS56
|
|
105477
106005
|
);
|
|
105478
106006
|
try {
|
|
105479
106007
|
const response = await fetch(url, {
|
|
@@ -105503,15 +106031,16 @@ The path must start with '/' and is appended to the configured Grafana instance
|
|
|
105503
106031
|
});
|
|
105504
106032
|
|
|
105505
106033
|
// ../connectors/src/connectors/grafana/index.ts
|
|
105506
|
-
var
|
|
106034
|
+
var tools59 = { request: requestTool42 };
|
|
105507
106035
|
var grafanaConnector = new ConnectorPlugin({
|
|
105508
106036
|
slug: "grafana",
|
|
105509
106037
|
authType: AUTH_TYPES.API_KEY,
|
|
105510
106038
|
name: "Grafana",
|
|
105511
106039
|
description: "Connect to Grafana for monitoring dashboards, datasource queries, and alerting.",
|
|
105512
106040
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/3nGaPhV94lXQsHcCtv4mXz/0559d42f83066e8ba79e78410806750c/grafana-icon.webp",
|
|
105513
|
-
parameters:
|
|
106041
|
+
parameters: parameters59,
|
|
105514
106042
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
106043
|
+
categories: ["observability"],
|
|
105515
106044
|
onboarding: grafanaOnboarding,
|
|
105516
106045
|
systemPrompt: {
|
|
105517
106046
|
en: `### Tools
|
|
@@ -105631,7 +106160,7 @@ export default async function handler(c: Context) {
|
|
|
105631
106160
|
- \`GET /api/org\` \u2014 \u73FE\u5728\u306E\u7D44\u7E54\u3092\u53D6\u5F97
|
|
105632
106161
|
- \`GET /api/health\` \u2014 \u30D8\u30EB\u30B9\u30C1\u30A7\u30C3\u30AF`
|
|
105633
106162
|
},
|
|
105634
|
-
tools:
|
|
106163
|
+
tools: tools59
|
|
105635
106164
|
});
|
|
105636
106165
|
|
|
105637
106166
|
// ../connectors/src/connectors/backlog/setup.ts
|
|
@@ -105649,7 +106178,7 @@ var backlogOnboarding = new ConnectorOnboarding({
|
|
|
105649
106178
|
});
|
|
105650
106179
|
|
|
105651
106180
|
// ../connectors/src/connectors/backlog/parameters.ts
|
|
105652
|
-
var
|
|
106181
|
+
var parameters60 = {
|
|
105653
106182
|
spaceUrl: new ParameterDefinition({
|
|
105654
106183
|
slug: "space-url",
|
|
105655
106184
|
name: "Backlog Space URL",
|
|
@@ -105671,24 +106200,24 @@ var parameters59 = {
|
|
|
105671
106200
|
};
|
|
105672
106201
|
|
|
105673
106202
|
// ../connectors/src/connectors/backlog/tools/request.ts
|
|
105674
|
-
import { z as
|
|
105675
|
-
var
|
|
105676
|
-
var
|
|
105677
|
-
toolUseIntent:
|
|
105678
|
-
connectionId:
|
|
105679
|
-
method:
|
|
105680
|
-
path:
|
|
105681
|
-
body:
|
|
106203
|
+
import { z as z74 } from "zod";
|
|
106204
|
+
var REQUEST_TIMEOUT_MS57 = 6e4;
|
|
106205
|
+
var inputSchema72 = z74.object({
|
|
106206
|
+
toolUseIntent: z74.string().optional().describe("Brief description of what you intend to accomplish with this tool call"),
|
|
106207
|
+
connectionId: z74.string().describe("ID of the Backlog connection to use"),
|
|
106208
|
+
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."),
|
|
106209
|
+
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."),
|
|
106210
|
+
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).")
|
|
105682
106211
|
});
|
|
105683
|
-
var
|
|
105684
|
-
|
|
105685
|
-
success:
|
|
105686
|
-
status:
|
|
105687
|
-
data:
|
|
106212
|
+
var outputSchema72 = z74.discriminatedUnion("success", [
|
|
106213
|
+
z74.object({
|
|
106214
|
+
success: z74.literal(true),
|
|
106215
|
+
status: z74.number(),
|
|
106216
|
+
data: z74.union([z74.record(z74.string(), z74.unknown()), z74.array(z74.unknown())])
|
|
105688
106217
|
}),
|
|
105689
|
-
|
|
105690
|
-
success:
|
|
105691
|
-
error:
|
|
106218
|
+
z74.object({
|
|
106219
|
+
success: z74.literal(false),
|
|
106220
|
+
error: z74.string()
|
|
105692
106221
|
})
|
|
105693
106222
|
]);
|
|
105694
106223
|
var requestTool43 = new ConnectorTool({
|
|
@@ -105698,8 +106227,8 @@ Authentication is handled automatically by appending the apiKey query parameter
|
|
|
105698
106227
|
Use this tool for all Backlog operations: listing projects, searching and creating issues, managing wikis, retrieving users, and more.
|
|
105699
106228
|
The base URL and API key are configured per connection \u2014 only specify the API path relative to /api/v2/.
|
|
105700
106229
|
Do NOT include the apiKey parameter yourself; it is injected automatically.`,
|
|
105701
|
-
inputSchema:
|
|
105702
|
-
outputSchema:
|
|
106230
|
+
inputSchema: inputSchema72,
|
|
106231
|
+
outputSchema: outputSchema72,
|
|
105703
106232
|
async execute({ connectionId, method, path: path6, body }, connections) {
|
|
105704
106233
|
const connection2 = connections.find((c6) => c6.id === connectionId);
|
|
105705
106234
|
if (!connection2) {
|
|
@@ -105707,12 +106236,12 @@ Do NOT include the apiKey parameter yourself; it is injected automatically.`,
|
|
|
105707
106236
|
}
|
|
105708
106237
|
console.log(`[connector-request] backlog-api-key/${connection2.name}: ${method} ${path6}`);
|
|
105709
106238
|
try {
|
|
105710
|
-
const spaceUrl =
|
|
105711
|
-
const apiKey =
|
|
106239
|
+
const spaceUrl = parameters60.spaceUrl.getValue(connection2);
|
|
106240
|
+
const apiKey = parameters60.apiKey.getValue(connection2);
|
|
105712
106241
|
const separator = path6.includes("?") ? "&" : "?";
|
|
105713
106242
|
const url = `${spaceUrl.replace(/\/+$/, "")}/api/v2/${path6}${separator}apiKey=${apiKey}`;
|
|
105714
106243
|
const controller = new AbortController();
|
|
105715
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
106244
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS57);
|
|
105716
106245
|
try {
|
|
105717
106246
|
const headers = {
|
|
105718
106247
|
Accept: "application/json"
|
|
@@ -105748,15 +106277,16 @@ Do NOT include the apiKey parameter yourself; it is injected automatically.`,
|
|
|
105748
106277
|
});
|
|
105749
106278
|
|
|
105750
106279
|
// ../connectors/src/connectors/backlog/index.ts
|
|
105751
|
-
var
|
|
106280
|
+
var tools60 = { request: requestTool43 };
|
|
105752
106281
|
var backlogConnector = new ConnectorPlugin({
|
|
105753
106282
|
slug: "backlog",
|
|
105754
106283
|
authType: AUTH_TYPES.API_KEY,
|
|
105755
106284
|
name: "Backlog",
|
|
105756
106285
|
description: "Connect to Nulab Backlog for project management, issue tracking, and wiki data retrieval using API key authentication.",
|
|
105757
106286
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/6KcVBGf3mUHnuCOQgQMvtT/e8558c7990e40e3be46948e9476190fb/backlog-favicon.svg",
|
|
105758
|
-
parameters:
|
|
106287
|
+
parameters: parameters60,
|
|
105759
106288
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
106289
|
+
categories: ["productivity"],
|
|
105760
106290
|
onboarding: backlogOnboarding,
|
|
105761
106291
|
systemPrompt: {
|
|
105762
106292
|
en: `### Tools
|
|
@@ -105904,7 +106434,7 @@ await backlog.request("/api/v2/issues", {
|
|
|
105904
106434
|
- sort: "created", "updated", "issueType", "category", "priority" \u7B49
|
|
105905
106435
|
- order: "asc" \u307E\u305F\u306F "desc"`
|
|
105906
106436
|
},
|
|
105907
|
-
tools:
|
|
106437
|
+
tools: tools60
|
|
105908
106438
|
});
|
|
105909
106439
|
|
|
105910
106440
|
// ../connectors/src/connectors/gamma/setup.ts
|
|
@@ -105920,7 +106450,7 @@ var gammaOnboarding = new ConnectorOnboarding({
|
|
|
105920
106450
|
});
|
|
105921
106451
|
|
|
105922
106452
|
// ../connectors/src/connectors/gamma/parameters.ts
|
|
105923
|
-
var
|
|
106453
|
+
var parameters61 = {
|
|
105924
106454
|
apiKey: new ParameterDefinition({
|
|
105925
106455
|
slug: "api-key",
|
|
105926
106456
|
name: "Gamma API Key",
|
|
@@ -105933,29 +106463,29 @@ var parameters60 = {
|
|
|
105933
106463
|
};
|
|
105934
106464
|
|
|
105935
106465
|
// ../connectors/src/connectors/gamma/tools/request.ts
|
|
105936
|
-
import { z as
|
|
105937
|
-
var
|
|
105938
|
-
var
|
|
105939
|
-
var
|
|
105940
|
-
toolUseIntent:
|
|
106466
|
+
import { z as z75 } from "zod";
|
|
106467
|
+
var BASE_URL35 = "https://public-api.gamma.app/v1.0";
|
|
106468
|
+
var REQUEST_TIMEOUT_MS58 = 6e4;
|
|
106469
|
+
var inputSchema73 = z75.object({
|
|
106470
|
+
toolUseIntent: z75.string().optional().describe(
|
|
105941
106471
|
"Brief description of what you intend to accomplish with this tool call"
|
|
105942
106472
|
),
|
|
105943
|
-
connectionId:
|
|
105944
|
-
method:
|
|
105945
|
-
path:
|
|
106473
|
+
connectionId: z75.string().describe("ID of the Gamma connection to use"),
|
|
106474
|
+
method: z75.enum(["GET", "POST"]).describe("HTTP method. GET for listing resources, POST for creating."),
|
|
106475
|
+
path: z75.string().describe(
|
|
105946
106476
|
"API path (e.g., '/themes', '/folders', '/generations', '/generations/{generationId}')"
|
|
105947
106477
|
),
|
|
105948
|
-
body:
|
|
106478
|
+
body: z75.record(z75.string(), z75.unknown()).optional().describe("Request body (JSON) for POST requests")
|
|
105949
106479
|
});
|
|
105950
|
-
var
|
|
105951
|
-
|
|
105952
|
-
success:
|
|
105953
|
-
status:
|
|
105954
|
-
data:
|
|
106480
|
+
var outputSchema73 = z75.discriminatedUnion("success", [
|
|
106481
|
+
z75.object({
|
|
106482
|
+
success: z75.literal(true),
|
|
106483
|
+
status: z75.number(),
|
|
106484
|
+
data: z75.unknown()
|
|
105955
106485
|
}),
|
|
105956
|
-
|
|
105957
|
-
success:
|
|
105958
|
-
error:
|
|
106486
|
+
z75.object({
|
|
106487
|
+
success: z75.literal(false),
|
|
106488
|
+
error: z75.string()
|
|
105959
106489
|
})
|
|
105960
106490
|
]);
|
|
105961
106491
|
var requestTool44 = new ConnectorTool({
|
|
@@ -105964,8 +106494,8 @@ var requestTool44 = new ConnectorTool({
|
|
|
105964
106494
|
Authentication is handled automatically using the API Key (X-API-KEY header).
|
|
105965
106495
|
Use this tool for listing themes, listing folders, checking generation status, and other read operations.
|
|
105966
106496
|
For creating presentations/documents, prefer the gamma_generate tool instead.`,
|
|
105967
|
-
inputSchema:
|
|
105968
|
-
outputSchema:
|
|
106497
|
+
inputSchema: inputSchema73,
|
|
106498
|
+
outputSchema: outputSchema73,
|
|
105969
106499
|
async execute({ connectionId, method, path: path6, body }, connections) {
|
|
105970
106500
|
const connection2 = connections.find((c6) => c6.id === connectionId);
|
|
105971
106501
|
if (!connection2) {
|
|
@@ -105978,10 +106508,10 @@ For creating presentations/documents, prefer the gamma_generate tool instead.`,
|
|
|
105978
106508
|
`[connector-request] gamma/${connection2.name}: ${method} ${path6}`
|
|
105979
106509
|
);
|
|
105980
106510
|
try {
|
|
105981
|
-
const apiKey =
|
|
105982
|
-
const url = `${
|
|
106511
|
+
const apiKey = parameters61.apiKey.getValue(connection2);
|
|
106512
|
+
const url = `${BASE_URL35}${path6}`;
|
|
105983
106513
|
const controller = new AbortController();
|
|
105984
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
106514
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS58);
|
|
105985
106515
|
try {
|
|
105986
106516
|
const response = await fetch(url, {
|
|
105987
106517
|
method,
|
|
@@ -106010,35 +106540,35 @@ For creating presentations/documents, prefer the gamma_generate tool instead.`,
|
|
|
106010
106540
|
});
|
|
106011
106541
|
|
|
106012
106542
|
// ../connectors/src/connectors/gamma/tools/generate.ts
|
|
106013
|
-
import { z as
|
|
106014
|
-
var
|
|
106543
|
+
import { z as z76 } from "zod";
|
|
106544
|
+
var BASE_URL36 = "https://public-api.gamma.app/v1.0";
|
|
106015
106545
|
var POLL_INTERVAL_MS3 = 5e3;
|
|
106016
106546
|
var MAX_POLL_DURATION_MS = 3e5;
|
|
106017
|
-
var
|
|
106018
|
-
toolUseIntent:
|
|
106547
|
+
var inputSchema74 = z76.object({
|
|
106548
|
+
toolUseIntent: z76.string().optional().describe(
|
|
106019
106549
|
"Brief description of what you intend to accomplish with this tool call"
|
|
106020
106550
|
),
|
|
106021
|
-
connectionId:
|
|
106022
|
-
inputText:
|
|
106551
|
+
connectionId: z76.string().describe("ID of the Gamma connection to use"),
|
|
106552
|
+
inputText: z76.string().describe(
|
|
106023
106553
|
"Content for the generation. Can include text and image URLs. Max ~400,000 characters."
|
|
106024
106554
|
),
|
|
106025
|
-
textMode:
|
|
106555
|
+
textMode: z76.enum(["generate", "condense", "preserve"]).describe(
|
|
106026
106556
|
"How inputText is modified: 'generate' creates new content from the topic, 'condense' shortens existing text, 'preserve' keeps text as-is."
|
|
106027
106557
|
),
|
|
106028
|
-
format:
|
|
106029
|
-
numCards:
|
|
106030
|
-
themeId:
|
|
106558
|
+
format: z76.enum(["presentation", "document", "webpage", "social"]).optional().describe("Type of artifact to create. Defaults to 'presentation'."),
|
|
106559
|
+
numCards: z76.number().int().min(1).max(75).optional().describe("Number of cards/slides. Defaults to 10."),
|
|
106560
|
+
themeId: z76.string().optional().describe(
|
|
106031
106561
|
"Theme ID for look and feel. Use gamma_request GET /themes to list available themes."
|
|
106032
106562
|
),
|
|
106033
|
-
tone:
|
|
106563
|
+
tone: z76.string().optional().describe(
|
|
106034
106564
|
"Tone/voice of the output (e.g., 'professional', 'casual', 'academic'). Max 500 chars."
|
|
106035
106565
|
),
|
|
106036
|
-
audience:
|
|
106566
|
+
audience: z76.string().optional().describe(
|
|
106037
106567
|
"Target audience description (e.g., 'marketing executives'). Max 500 chars."
|
|
106038
106568
|
),
|
|
106039
|
-
language:
|
|
106040
|
-
textAmount:
|
|
106041
|
-
imageSource:
|
|
106569
|
+
language: z76.string().optional().describe("Output language code (e.g., 'en', 'ja'). Defaults to 'en'."),
|
|
106570
|
+
textAmount: z76.enum(["brief", "medium", "detailed", "extensive"]).optional().describe("Text volume per card. Defaults to 'medium'."),
|
|
106571
|
+
imageSource: z76.enum([
|
|
106042
106572
|
"aiGenerated",
|
|
106043
106573
|
"pictographic",
|
|
106044
106574
|
"pexels",
|
|
@@ -106050,26 +106580,26 @@ var inputSchema73 = z75.object({
|
|
|
106050
106580
|
"placeholder",
|
|
106051
106581
|
"noImages"
|
|
106052
106582
|
]).optional().describe("Image source. Defaults to 'aiGenerated'."),
|
|
106053
|
-
additionalInstructions:
|
|
106583
|
+
additionalInstructions: z76.string().optional().describe(
|
|
106054
106584
|
"Additional specifications for content, layout, and aesthetics. Max 5000 chars."
|
|
106055
106585
|
),
|
|
106056
|
-
exportAs:
|
|
106586
|
+
exportAs: z76.enum(["pdf", "pptx", "png"]).optional().describe("Export file format. If omitted, no export file is generated.")
|
|
106057
106587
|
});
|
|
106058
|
-
var
|
|
106059
|
-
|
|
106060
|
-
success:
|
|
106061
|
-
generationId:
|
|
106062
|
-
gammaId:
|
|
106063
|
-
gammaUrl:
|
|
106064
|
-
exportUrl:
|
|
106065
|
-
credits:
|
|
106066
|
-
deducted:
|
|
106067
|
-
remaining:
|
|
106588
|
+
var outputSchema74 = z76.discriminatedUnion("success", [
|
|
106589
|
+
z76.object({
|
|
106590
|
+
success: z76.literal(true),
|
|
106591
|
+
generationId: z76.string(),
|
|
106592
|
+
gammaId: z76.string(),
|
|
106593
|
+
gammaUrl: z76.string(),
|
|
106594
|
+
exportUrl: z76.string().optional(),
|
|
106595
|
+
credits: z76.object({
|
|
106596
|
+
deducted: z76.number(),
|
|
106597
|
+
remaining: z76.number()
|
|
106068
106598
|
}).optional()
|
|
106069
106599
|
}),
|
|
106070
|
-
|
|
106071
|
-
success:
|
|
106072
|
-
error:
|
|
106600
|
+
z76.object({
|
|
106601
|
+
success: z76.literal(false),
|
|
106602
|
+
error: z76.string()
|
|
106073
106603
|
})
|
|
106074
106604
|
]);
|
|
106075
106605
|
var generateTool = new ConnectorTool({
|
|
@@ -106078,8 +106608,8 @@ var generateTool = new ConnectorTool({
|
|
|
106078
106608
|
This tool creates the generation, then automatically polls until completion and returns the result URL.
|
|
106079
106609
|
Use gamma_request GET /themes first if you want to pick a specific theme.
|
|
106080
106610
|
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.`,
|
|
106081
|
-
inputSchema:
|
|
106082
|
-
outputSchema:
|
|
106611
|
+
inputSchema: inputSchema74,
|
|
106612
|
+
outputSchema: outputSchema74,
|
|
106083
106613
|
async execute({
|
|
106084
106614
|
connectionId,
|
|
106085
106615
|
inputText,
|
|
@@ -106106,7 +106636,7 @@ Gamma does NOT support image uploads. To visualize data, embed raw numbers direc
|
|
|
106106
106636
|
`[connector-generate] gamma/${connection2.name}: creating ${format2 ?? "presentation"}`
|
|
106107
106637
|
);
|
|
106108
106638
|
try {
|
|
106109
|
-
const apiKey =
|
|
106639
|
+
const apiKey = parameters61.apiKey.getValue(connection2);
|
|
106110
106640
|
const headers = {
|
|
106111
106641
|
"X-API-KEY": apiKey,
|
|
106112
106642
|
"Content-Type": "application/json"
|
|
@@ -106128,7 +106658,7 @@ Gamma does NOT support image uploads. To visualize data, embed raw numbers direc
|
|
|
106128
106658
|
if (textAmount) textOptions.amount = textAmount;
|
|
106129
106659
|
if (Object.keys(textOptions).length > 0) body.textOptions = textOptions;
|
|
106130
106660
|
if (imageSource) body.imageOptions = { source: imageSource };
|
|
106131
|
-
const createRes = await fetch(`${
|
|
106661
|
+
const createRes = await fetch(`${BASE_URL36}/generations`, {
|
|
106132
106662
|
method: "POST",
|
|
106133
106663
|
headers,
|
|
106134
106664
|
body: JSON.stringify(body)
|
|
@@ -106148,7 +106678,7 @@ Gamma does NOT support image uploads. To visualize data, embed raw numbers direc
|
|
|
106148
106678
|
const deadline = Date.now() + MAX_POLL_DURATION_MS;
|
|
106149
106679
|
while (Date.now() < deadline) {
|
|
106150
106680
|
await new Promise((resolve) => setTimeout(resolve, POLL_INTERVAL_MS3));
|
|
106151
|
-
const pollRes = await fetch(`${
|
|
106681
|
+
const pollRes = await fetch(`${BASE_URL36}/generations/${generationId}`, {
|
|
106152
106682
|
method: "GET",
|
|
106153
106683
|
headers
|
|
106154
106684
|
});
|
|
@@ -106186,15 +106716,16 @@ Gamma does NOT support image uploads. To visualize data, embed raw numbers direc
|
|
|
106186
106716
|
});
|
|
106187
106717
|
|
|
106188
106718
|
// ../connectors/src/connectors/gamma/index.ts
|
|
106189
|
-
var
|
|
106719
|
+
var tools61 = { request: requestTool44, generate: generateTool };
|
|
106190
106720
|
var gammaConnector = new ConnectorPlugin({
|
|
106191
106721
|
slug: "gamma",
|
|
106192
106722
|
authType: AUTH_TYPES.API_KEY,
|
|
106193
106723
|
name: "Gamma",
|
|
106194
106724
|
description: "Connect to Gamma for AI-powered presentation, document, webpage, and social post generation.",
|
|
106195
106725
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/KoMGPpPcgtB9oDYe1OBjS/1ba7eb061c4497106bf6d249866dc471/gamma.svg",
|
|
106196
|
-
parameters:
|
|
106726
|
+
parameters: parameters61,
|
|
106197
106727
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
106728
|
+
categories: ["productivity"],
|
|
106198
106729
|
onboarding: gammaOnboarding,
|
|
106199
106730
|
systemPrompt: {
|
|
106200
106731
|
en: `### Tools
|
|
@@ -106346,7 +106877,7 @@ export default async function handler(c: Context) {
|
|
|
106346
106877
|
#### \u30C7\u30FC\u30BF\u306E\u53EF\u8996\u5316
|
|
106347
106878
|
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`
|
|
106348
106879
|
},
|
|
106349
|
-
tools:
|
|
106880
|
+
tools: tools61
|
|
106350
106881
|
});
|
|
106351
106882
|
|
|
106352
106883
|
// ../connectors/src/connectors/sentry/setup.ts
|
|
@@ -106362,7 +106893,7 @@ var sentryOnboarding = new ConnectorOnboarding({
|
|
|
106362
106893
|
});
|
|
106363
106894
|
|
|
106364
106895
|
// ../connectors/src/connectors/sentry/parameters.ts
|
|
106365
|
-
var
|
|
106896
|
+
var parameters62 = {
|
|
106366
106897
|
organizationSlug: new ParameterDefinition({
|
|
106367
106898
|
slug: "organization-slug",
|
|
106368
106899
|
name: "Sentry Organization Slug",
|
|
@@ -106384,29 +106915,29 @@ var parameters61 = {
|
|
|
106384
106915
|
};
|
|
106385
106916
|
|
|
106386
106917
|
// ../connectors/src/connectors/sentry/tools/request.ts
|
|
106387
|
-
import { z as
|
|
106388
|
-
var
|
|
106389
|
-
var
|
|
106390
|
-
var
|
|
106391
|
-
toolUseIntent:
|
|
106918
|
+
import { z as z77 } from "zod";
|
|
106919
|
+
var BASE_URL37 = "https://sentry.io/api/0";
|
|
106920
|
+
var REQUEST_TIMEOUT_MS59 = 6e4;
|
|
106921
|
+
var inputSchema75 = z77.object({
|
|
106922
|
+
toolUseIntent: z77.string().optional().describe(
|
|
106392
106923
|
"Brief description of what you intend to accomplish with this tool call"
|
|
106393
106924
|
),
|
|
106394
|
-
connectionId:
|
|
106395
|
-
method:
|
|
106396
|
-
path:
|
|
106925
|
+
connectionId: z77.string().describe("ID of the Sentry connection to use"),
|
|
106926
|
+
method: z77.enum(["GET", "POST", "PUT", "DELETE"]).describe("HTTP method"),
|
|
106927
|
+
path: z77.string().describe(
|
|
106397
106928
|
"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."
|
|
106398
106929
|
),
|
|
106399
|
-
body:
|
|
106930
|
+
body: z77.record(z77.string(), z77.unknown()).optional().describe("JSON request body for POST/PUT requests")
|
|
106400
106931
|
});
|
|
106401
|
-
var
|
|
106402
|
-
|
|
106403
|
-
success:
|
|
106404
|
-
status:
|
|
106405
|
-
data:
|
|
106932
|
+
var outputSchema75 = z77.discriminatedUnion("success", [
|
|
106933
|
+
z77.object({
|
|
106934
|
+
success: z77.literal(true),
|
|
106935
|
+
status: z77.number(),
|
|
106936
|
+
data: z77.unknown()
|
|
106406
106937
|
}),
|
|
106407
|
-
|
|
106408
|
-
success:
|
|
106409
|
-
error:
|
|
106938
|
+
z77.object({
|
|
106939
|
+
success: z77.literal(false),
|
|
106940
|
+
error: z77.string()
|
|
106410
106941
|
})
|
|
106411
106942
|
]);
|
|
106412
106943
|
var requestTool45 = new ConnectorTool({
|
|
@@ -106415,8 +106946,8 @@ var requestTool45 = new ConnectorTool({
|
|
|
106415
106946
|
Supports GET, POST, PUT, and DELETE methods.
|
|
106416
106947
|
Authentication is handled automatically via Bearer token.
|
|
106417
106948
|
{organizationSlug} in the path is automatically replaced with the configured organization slug.`,
|
|
106418
|
-
inputSchema:
|
|
106419
|
-
outputSchema:
|
|
106949
|
+
inputSchema: inputSchema75,
|
|
106950
|
+
outputSchema: outputSchema75,
|
|
106420
106951
|
async execute({ connectionId, method, path: path6, body }, connections) {
|
|
106421
106952
|
const connection2 = connections.find((c6) => c6.id === connectionId);
|
|
106422
106953
|
if (!connection2) {
|
|
@@ -106429,15 +106960,15 @@ Authentication is handled automatically via Bearer token.
|
|
|
106429
106960
|
`[connector-request] sentry/${connection2.name}: ${method} ${path6}`
|
|
106430
106961
|
);
|
|
106431
106962
|
try {
|
|
106432
|
-
const authToken =
|
|
106433
|
-
const organizationSlug =
|
|
106963
|
+
const authToken = parameters62.authToken.getValue(connection2);
|
|
106964
|
+
const organizationSlug = parameters62.organizationSlug.getValue(connection2);
|
|
106434
106965
|
const resolvedPath = path6.replace(
|
|
106435
106966
|
/\{organizationSlug\}/g,
|
|
106436
106967
|
organizationSlug
|
|
106437
106968
|
);
|
|
106438
|
-
const url = `${
|
|
106969
|
+
const url = `${BASE_URL37}${resolvedPath.startsWith("/") ? "" : "/"}${resolvedPath}`;
|
|
106439
106970
|
const controller = new AbortController();
|
|
106440
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
106971
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS59);
|
|
106441
106972
|
try {
|
|
106442
106973
|
const response = await fetch(url, {
|
|
106443
106974
|
method,
|
|
@@ -106466,15 +106997,16 @@ Authentication is handled automatically via Bearer token.
|
|
|
106466
106997
|
});
|
|
106467
106998
|
|
|
106468
106999
|
// ../connectors/src/connectors/sentry/index.ts
|
|
106469
|
-
var
|
|
107000
|
+
var tools62 = { request: requestTool45 };
|
|
106470
107001
|
var sentryConnector = new ConnectorPlugin({
|
|
106471
107002
|
slug: "sentry",
|
|
106472
107003
|
authType: AUTH_TYPES.API_KEY,
|
|
106473
107004
|
name: "Sentry",
|
|
106474
107005
|
description: "Connect to Sentry for error tracking and performance monitoring data.",
|
|
106475
107006
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/4B8ZEGFGjTeMWNnXQb1dAL/ac10f813f02353f5b0cbe64fb5c06d8f/sentry.svg",
|
|
106476
|
-
parameters:
|
|
107007
|
+
parameters: parameters62,
|
|
106477
107008
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
107009
|
+
categories: ["observability"],
|
|
106478
107010
|
onboarding: sentryOnboarding,
|
|
106479
107011
|
systemPrompt: {
|
|
106480
107012
|
en: `### Tools
|
|
@@ -106642,10 +107174,10 @@ events.forEach(e => console.log(e.dateCreated, e.message));
|
|
|
106642
107174
|
await sentry.updateIssue("12345", { status: "resolved" });
|
|
106643
107175
|
\`\`\``
|
|
106644
107176
|
},
|
|
106645
|
-
tools:
|
|
107177
|
+
tools: tools62,
|
|
106646
107178
|
async checkConnection(params) {
|
|
106647
|
-
const authToken = params[
|
|
106648
|
-
const organizationSlug = params[
|
|
107179
|
+
const authToken = params[parameters62.authToken.slug];
|
|
107180
|
+
const organizationSlug = params[parameters62.organizationSlug.slug];
|
|
106649
107181
|
if (!authToken || !organizationSlug) {
|
|
106650
107182
|
return {
|
|
106651
107183
|
success: false,
|
|
@@ -106691,7 +107223,7 @@ var salesforceOnboarding = new ConnectorOnboarding({
|
|
|
106691
107223
|
});
|
|
106692
107224
|
|
|
106693
107225
|
// ../connectors/src/connectors/salesforce/parameters.ts
|
|
106694
|
-
var
|
|
107226
|
+
var parameters63 = {
|
|
106695
107227
|
instanceUrl: new ParameterDefinition({
|
|
106696
107228
|
slug: "instance-url",
|
|
106697
107229
|
name: "Instance URL",
|
|
@@ -106722,30 +107254,30 @@ var parameters62 = {
|
|
|
106722
107254
|
};
|
|
106723
107255
|
|
|
106724
107256
|
// ../connectors/src/connectors/salesforce/tools/request.ts
|
|
106725
|
-
import { z as
|
|
106726
|
-
var
|
|
106727
|
-
var
|
|
106728
|
-
toolUseIntent:
|
|
107257
|
+
import { z as z78 } from "zod";
|
|
107258
|
+
var REQUEST_TIMEOUT_MS60 = 6e4;
|
|
107259
|
+
var inputSchema76 = z78.object({
|
|
107260
|
+
toolUseIntent: z78.string().optional().describe(
|
|
106729
107261
|
"Brief description of what you intend to accomplish with this tool call"
|
|
106730
107262
|
),
|
|
106731
|
-
connectionId:
|
|
106732
|
-
method:
|
|
107263
|
+
connectionId: z78.string().describe("ID of the Salesforce connection to use"),
|
|
107264
|
+
method: z78.enum(["GET", "POST", "PATCH", "DELETE"]).describe(
|
|
106733
107265
|
"HTTP method. GET for reading resources and SOQL queries, POST for creating, PATCH for updating, DELETE for removing."
|
|
106734
107266
|
),
|
|
106735
|
-
path:
|
|
107267
|
+
path: z78.string().describe(
|
|
106736
107268
|
"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/'."
|
|
106737
107269
|
),
|
|
106738
|
-
body:
|
|
107270
|
+
body: z78.record(z78.string(), z78.unknown()).optional().describe("Request body (JSON) for POST/PATCH requests")
|
|
106739
107271
|
});
|
|
106740
|
-
var
|
|
106741
|
-
|
|
106742
|
-
success:
|
|
106743
|
-
status:
|
|
106744
|
-
data:
|
|
107272
|
+
var outputSchema76 = z78.discriminatedUnion("success", [
|
|
107273
|
+
z78.object({
|
|
107274
|
+
success: z78.literal(true),
|
|
107275
|
+
status: z78.number(),
|
|
107276
|
+
data: z78.record(z78.string(), z78.unknown())
|
|
106745
107277
|
}),
|
|
106746
|
-
|
|
106747
|
-
success:
|
|
106748
|
-
error:
|
|
107278
|
+
z78.object({
|
|
107279
|
+
success: z78.literal(false),
|
|
107280
|
+
error: z78.string()
|
|
106749
107281
|
})
|
|
106750
107282
|
]);
|
|
106751
107283
|
function normalizeInstanceUrl(raw) {
|
|
@@ -106761,8 +107293,8 @@ var requestTool46 = new ConnectorTool({
|
|
|
106761
107293
|
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.
|
|
106762
107294
|
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.
|
|
106763
107295
|
Prefer SOQL via the /query endpoint for filtered, joined, or aggregated reads rather than paginating /sobjects/{Type} endpoints.`,
|
|
106764
|
-
inputSchema:
|
|
106765
|
-
outputSchema:
|
|
107296
|
+
inputSchema: inputSchema76,
|
|
107297
|
+
outputSchema: outputSchema76,
|
|
106766
107298
|
async execute({ connectionId, method, path: path6, body }, connections) {
|
|
106767
107299
|
const connection2 = connections.find((c6) => c6.id === connectionId);
|
|
106768
107300
|
if (!connection2) {
|
|
@@ -106775,9 +107307,9 @@ Prefer SOQL via the /query endpoint for filtered, joined, or aggregated reads ra
|
|
|
106775
107307
|
`[connector-request] salesforce/${connection2.name}: ${method} ${path6}`
|
|
106776
107308
|
);
|
|
106777
107309
|
try {
|
|
106778
|
-
const instanceUrlParam =
|
|
106779
|
-
const clientId =
|
|
106780
|
-
const clientSecret =
|
|
107310
|
+
const instanceUrlParam = parameters63.instanceUrl.getValue(connection2);
|
|
107311
|
+
const clientId = parameters63.clientId.getValue(connection2);
|
|
107312
|
+
const clientSecret = parameters63.clientSecret.getValue(connection2);
|
|
106781
107313
|
const instanceUrl = normalizeInstanceUrl(instanceUrlParam);
|
|
106782
107314
|
const tokenBody = new URLSearchParams({
|
|
106783
107315
|
grant_type: "client_credentials",
|
|
@@ -106808,7 +107340,7 @@ Prefer SOQL via the /query endpoint for filtered, joined, or aggregated reads ra
|
|
|
106808
107340
|
const resolvedInstanceUrl = tokenJson.instance_url ?? instanceUrl;
|
|
106809
107341
|
const url = `${resolvedInstanceUrl}${path6.startsWith("/") ? "" : "/"}${path6}`;
|
|
106810
107342
|
const controller = new AbortController();
|
|
106811
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
107343
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS60);
|
|
106812
107344
|
try {
|
|
106813
107345
|
const response = await fetch(url, {
|
|
106814
107346
|
method,
|
|
@@ -106852,15 +107384,16 @@ Prefer SOQL via the /query endpoint for filtered, joined, or aggregated reads ra
|
|
|
106852
107384
|
});
|
|
106853
107385
|
|
|
106854
107386
|
// ../connectors/src/connectors/salesforce/index.ts
|
|
106855
|
-
var
|
|
107387
|
+
var tools63 = { request: requestTool46 };
|
|
106856
107388
|
var salesforceConnector = new ConnectorPlugin({
|
|
106857
107389
|
slug: "salesforce",
|
|
106858
107390
|
authType: AUTH_TYPES.API_KEY,
|
|
106859
107391
|
name: "Salesforce",
|
|
106860
107392
|
description: "Connect to Salesforce CRM for accounts, contacts, opportunities, leads, cases, and custom objects via SOQL and the REST API.",
|
|
106861
107393
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/6vZlbrUKhxXIiuvWJlb8YB/bbc5e08b88de46c8ed338a74c7d0abb3/salesforce-icon.png",
|
|
106862
|
-
parameters:
|
|
107394
|
+
parameters: parameters63,
|
|
106863
107395
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
107396
|
+
categories: ["crm"],
|
|
106864
107397
|
onboarding: salesforceOnboarding,
|
|
106865
107398
|
systemPrompt: {
|
|
106866
107399
|
en: `### Tools
|
|
@@ -107006,7 +107539,7 @@ export default async function handler(c: Context) {
|
|
|
107006
107539
|
- \u96C6\u8A08: \`GROUP BY\`, \`HAVING\`, \`COUNT()\`, \`SUM()\`, \`AVG()\`, \`MIN()\`, \`MAX()\`
|
|
107007
107540
|
- \u89AA\u2192\u5B50\u30B5\u30D6\u30AF\u30A8\u30EA: \`SELECT Id, Name, (SELECT Id, Email FROM Contacts) FROM Account\``
|
|
107008
107541
|
},
|
|
107009
|
-
tools:
|
|
107542
|
+
tools: tools63
|
|
107010
107543
|
});
|
|
107011
107544
|
|
|
107012
107545
|
// ../connectors/src/connectors/influxdb/setup.ts
|
|
@@ -107068,7 +107601,7 @@ var influxdbOnboarding = new ConnectorOnboarding({
|
|
|
107068
107601
|
});
|
|
107069
107602
|
|
|
107070
107603
|
// ../connectors/src/connectors/influxdb/parameters.ts
|
|
107071
|
-
var
|
|
107604
|
+
var parameters64 = {
|
|
107072
107605
|
url: new ParameterDefinition({
|
|
107073
107606
|
slug: "url",
|
|
107074
107607
|
name: "InfluxDB URL",
|
|
@@ -107108,35 +107641,35 @@ var parameters63 = {
|
|
|
107108
107641
|
};
|
|
107109
107642
|
|
|
107110
107643
|
// ../connectors/src/connectors/influxdb/tools/request.ts
|
|
107111
|
-
import { z as
|
|
107112
|
-
var
|
|
107113
|
-
var
|
|
107114
|
-
toolUseIntent:
|
|
107644
|
+
import { z as z79 } from "zod";
|
|
107645
|
+
var REQUEST_TIMEOUT_MS61 = 6e4;
|
|
107646
|
+
var inputSchema77 = z79.object({
|
|
107647
|
+
toolUseIntent: z79.string().optional().describe(
|
|
107115
107648
|
"Brief description of what you intend to accomplish with this tool call"
|
|
107116
107649
|
),
|
|
107117
|
-
connectionId:
|
|
107118
|
-
method:
|
|
107650
|
+
connectionId: z79.string().describe("ID of the InfluxDB connection to use"),
|
|
107651
|
+
method: z79.enum(["GET", "POST", "DELETE"]).describe(
|
|
107119
107652
|
"HTTP method. POST for SQL/InfluxQL/Flux queries and writes, GET for metadata endpoints, DELETE for delete endpoints."
|
|
107120
107653
|
),
|
|
107121
|
-
path:
|
|
107654
|
+
path: z79.string().describe(
|
|
107122
107655
|
"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."
|
|
107123
107656
|
),
|
|
107124
|
-
body:
|
|
107657
|
+
body: z79.union([z79.record(z79.string(), z79.unknown()), z79.string()]).optional().describe(
|
|
107125
107658
|
"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."
|
|
107126
107659
|
),
|
|
107127
|
-
contentType:
|
|
107660
|
+
contentType: z79.string().optional().describe(
|
|
107128
107661
|
"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'."
|
|
107129
107662
|
)
|
|
107130
107663
|
});
|
|
107131
|
-
var
|
|
107132
|
-
|
|
107133
|
-
success:
|
|
107134
|
-
status:
|
|
107135
|
-
data:
|
|
107664
|
+
var outputSchema77 = z79.discriminatedUnion("success", [
|
|
107665
|
+
z79.object({
|
|
107666
|
+
success: z79.literal(true),
|
|
107667
|
+
status: z79.number(),
|
|
107668
|
+
data: z79.unknown()
|
|
107136
107669
|
}),
|
|
107137
|
-
|
|
107138
|
-
success:
|
|
107139
|
-
error:
|
|
107670
|
+
z79.object({
|
|
107671
|
+
success: z79.literal(false),
|
|
107672
|
+
error: z79.string()
|
|
107140
107673
|
})
|
|
107141
107674
|
]);
|
|
107142
107675
|
var requestTool47 = new ConnectorTool({
|
|
@@ -107145,8 +107678,8 @@ var requestTool47 = new ConnectorTool({
|
|
|
107145
107678
|
Authentication is handled automatically using the API token (\`Authorization: Token {token}\`). The instance URL is resolved from the connection.
|
|
107146
107679
|
Use this tool for all InfluxDB interactions: running SQL / InfluxQL / Flux queries, writing line protocol, and managing buckets / databases.
|
|
107147
107680
|
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.`,
|
|
107148
|
-
inputSchema:
|
|
107149
|
-
outputSchema:
|
|
107681
|
+
inputSchema: inputSchema77,
|
|
107682
|
+
outputSchema: outputSchema77,
|
|
107150
107683
|
async execute({ connectionId, method, path: path6, body, contentType }, connections) {
|
|
107151
107684
|
const connection2 = connections.find((c6) => c6.id === connectionId);
|
|
107152
107685
|
if (!connection2) {
|
|
@@ -107159,11 +107692,11 @@ For read-only data exploration prefer SQL (InfluxDB 3) or InfluxQL queries \u201
|
|
|
107159
107692
|
`[connector-request] influxdb/${connection2.name}: ${method} ${path6}`
|
|
107160
107693
|
);
|
|
107161
107694
|
try {
|
|
107162
|
-
const url =
|
|
107163
|
-
const token =
|
|
107695
|
+
const url = parameters64.url.getValue(connection2).replace(/\/$/, "");
|
|
107696
|
+
const token = parameters64.token.getValue(connection2);
|
|
107164
107697
|
const fullUrl = `${url}${path6.startsWith("/") ? "" : "/"}${path6}`;
|
|
107165
107698
|
const controller = new AbortController();
|
|
107166
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
107699
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS61);
|
|
107167
107700
|
const resolvedContentType = contentType ?? (typeof body === "string" ? "text/plain; charset=utf-8" : "application/json");
|
|
107168
107701
|
const serializedBody = body === void 0 ? void 0 : typeof body === "string" ? body : JSON.stringify(body);
|
|
107169
107702
|
try {
|
|
@@ -107217,15 +107750,16 @@ For read-only data exploration prefer SQL (InfluxDB 3) or InfluxQL queries \u201
|
|
|
107217
107750
|
});
|
|
107218
107751
|
|
|
107219
107752
|
// ../connectors/src/connectors/influxdb/index.ts
|
|
107220
|
-
var
|
|
107753
|
+
var tools64 = { request: requestTool47 };
|
|
107221
107754
|
var influxdbConnector = new ConnectorPlugin({
|
|
107222
107755
|
slug: "influxdb",
|
|
107223
107756
|
authType: AUTH_TYPES.API_KEY,
|
|
107224
107757
|
name: "InfluxDB",
|
|
107225
107758
|
description: "Connect to InfluxDB (Cloud or OSS) to query time-series data with SQL, InfluxQL, or Flux and to write line protocol.",
|
|
107226
107759
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/J1JauVRNmahSVTVrpPfQK/18350d8d3f2dc3be25e8e36ee52914a0/influxdb.png",
|
|
107227
|
-
parameters:
|
|
107760
|
+
parameters: parameters64,
|
|
107228
107761
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
107762
|
+
categories: ["database"],
|
|
107229
107763
|
onboarding: influxdbOnboarding,
|
|
107230
107764
|
systemPrompt: {
|
|
107231
107765
|
en: `### Variant Detection
|
|
@@ -107371,7 +107905,7 @@ export default async function handler(c: Context) {
|
|
|
107371
107905
|
- \u96C6\u8A08: \`AVG\`, \`SUM\`, \`MIN\`, \`MAX\`, \`COUNT\`\u3002\u6642\u9593\u30D0\u30B1\u30C3\u30C8: \`date_bin('5 minutes', time)\`
|
|
107372
107906
|
- measurement \u4E00\u89A7: \`SHOW TABLES\`\u3001\u5217\u4E00\u89A7: \`SHOW COLUMNS FROM <measurement>\``
|
|
107373
107907
|
},
|
|
107374
|
-
tools:
|
|
107908
|
+
tools: tools64,
|
|
107375
107909
|
async checkConnection(params) {
|
|
107376
107910
|
const url = (params.url ?? "").replace(/\/$/, "");
|
|
107377
107911
|
const token = params.token;
|
|
@@ -107467,6 +108001,7 @@ var plugins = {
|
|
|
107467
108001
|
customerio: customerioConnector,
|
|
107468
108002
|
gmail: gmailConnector,
|
|
107469
108003
|
gmailOauth: gmailOauthConnector,
|
|
108004
|
+
googleAuditLog: googleAuditLogConnector,
|
|
107470
108005
|
linkedinAds: linkedinAdsConnector,
|
|
107471
108006
|
zendesk: zendeskConnector,
|
|
107472
108007
|
zendeskOauth: zendeskOauthConnector,
|
|
@@ -107689,62 +108224,62 @@ function resolveParams2(entry, connectionId, plugin) {
|
|
|
107689
108224
|
var { getQuery, loadConnections, reloadEnvFile, watchConnectionsFile } = createConnectorRegistry();
|
|
107690
108225
|
|
|
107691
108226
|
// src/types/server-logic.ts
|
|
107692
|
-
import { z as
|
|
107693
|
-
var parameterMetaSchema =
|
|
107694
|
-
name:
|
|
107695
|
-
type:
|
|
107696
|
-
description:
|
|
107697
|
-
required:
|
|
107698
|
-
default:
|
|
107699
|
-
});
|
|
107700
|
-
var serverLogicCacheConfigSchema =
|
|
107701
|
-
ttl:
|
|
107702
|
-
staleWhileRevalidate:
|
|
107703
|
-
});
|
|
107704
|
-
var serverLogicSchemaObjectSchema =
|
|
107705
|
-
() =>
|
|
107706
|
-
type:
|
|
107707
|
-
format:
|
|
107708
|
-
description:
|
|
107709
|
-
nullable:
|
|
107710
|
-
enum:
|
|
108227
|
+
import { z as z80 } from "zod";
|
|
108228
|
+
var parameterMetaSchema = z80.object({
|
|
108229
|
+
name: z80.string(),
|
|
108230
|
+
type: z80.enum(["string", "number", "boolean"]),
|
|
108231
|
+
description: z80.string(),
|
|
108232
|
+
required: z80.boolean().optional(),
|
|
108233
|
+
default: z80.union([z80.string(), z80.number(), z80.boolean()]).optional()
|
|
108234
|
+
});
|
|
108235
|
+
var serverLogicCacheConfigSchema = z80.object({
|
|
108236
|
+
ttl: z80.number(),
|
|
108237
|
+
staleWhileRevalidate: z80.boolean().optional()
|
|
108238
|
+
});
|
|
108239
|
+
var serverLogicSchemaObjectSchema = z80.lazy(
|
|
108240
|
+
() => z80.object({
|
|
108241
|
+
type: z80.enum(["string", "number", "integer", "boolean", "object", "array", "null"]).optional(),
|
|
108242
|
+
format: z80.string().optional(),
|
|
108243
|
+
description: z80.string().optional(),
|
|
108244
|
+
nullable: z80.boolean().optional(),
|
|
108245
|
+
enum: z80.array(z80.union([z80.string(), z80.number(), z80.boolean(), z80.null()])).optional(),
|
|
107711
108246
|
items: serverLogicSchemaObjectSchema.optional(),
|
|
107712
|
-
properties:
|
|
107713
|
-
required:
|
|
107714
|
-
additionalProperties:
|
|
107715
|
-
minimum:
|
|
107716
|
-
maximum:
|
|
107717
|
-
minLength:
|
|
107718
|
-
maxLength:
|
|
107719
|
-
pattern:
|
|
108247
|
+
properties: z80.record(z80.string(), serverLogicSchemaObjectSchema).optional(),
|
|
108248
|
+
required: z80.array(z80.string()).optional(),
|
|
108249
|
+
additionalProperties: z80.union([z80.boolean(), serverLogicSchemaObjectSchema]).optional(),
|
|
108250
|
+
minimum: z80.number().optional(),
|
|
108251
|
+
maximum: z80.number().optional(),
|
|
108252
|
+
minLength: z80.number().optional(),
|
|
108253
|
+
maxLength: z80.number().optional(),
|
|
108254
|
+
pattern: z80.string().optional()
|
|
107720
108255
|
})
|
|
107721
108256
|
);
|
|
107722
|
-
var serverLogicMediaTypeSchema =
|
|
108257
|
+
var serverLogicMediaTypeSchema = z80.object({
|
|
107723
108258
|
schema: serverLogicSchemaObjectSchema.optional(),
|
|
107724
|
-
example:
|
|
108259
|
+
example: z80.unknown().optional()
|
|
107725
108260
|
});
|
|
107726
|
-
var serverLogicResponseSchema =
|
|
107727
|
-
description:
|
|
107728
|
-
content:
|
|
108261
|
+
var serverLogicResponseSchema = z80.object({
|
|
108262
|
+
description: z80.string().optional(),
|
|
108263
|
+
content: z80.record(z80.string(), serverLogicMediaTypeSchema).optional()
|
|
107729
108264
|
});
|
|
107730
108265
|
var jsonBaseFields = {
|
|
107731
|
-
description:
|
|
107732
|
-
parameters:
|
|
108266
|
+
description: z80.string(),
|
|
108267
|
+
parameters: z80.array(parameterMetaSchema).optional(),
|
|
107733
108268
|
response: serverLogicResponseSchema.optional(),
|
|
107734
108269
|
cache: serverLogicCacheConfigSchema.optional()
|
|
107735
108270
|
};
|
|
107736
|
-
var jsonSqlServerLogicSchema =
|
|
108271
|
+
var jsonSqlServerLogicSchema = z80.object({
|
|
107737
108272
|
...jsonBaseFields,
|
|
107738
|
-
type:
|
|
107739
|
-
query:
|
|
107740
|
-
connectionId:
|
|
108273
|
+
type: z80.literal("sql").optional(),
|
|
108274
|
+
query: z80.string(),
|
|
108275
|
+
connectionId: z80.string()
|
|
107741
108276
|
});
|
|
107742
|
-
var jsonTypeScriptServerLogicSchema =
|
|
108277
|
+
var jsonTypeScriptServerLogicSchema = z80.object({
|
|
107743
108278
|
...jsonBaseFields,
|
|
107744
|
-
type:
|
|
107745
|
-
handlerPath:
|
|
108279
|
+
type: z80.literal("typescript"),
|
|
108280
|
+
handlerPath: z80.string()
|
|
107746
108281
|
});
|
|
107747
|
-
var anyJsonServerLogicSchema =
|
|
108282
|
+
var anyJsonServerLogicSchema = z80.union([
|
|
107748
108283
|
jsonTypeScriptServerLogicSchema,
|
|
107749
108284
|
jsonSqlServerLogicSchema
|
|
107750
108285
|
]);
|