@squadbase/vite-server 0.1.9-dev.b193824 → 0.1.9-dev.d3c856d
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 +125 -77
- package/dist/connectors/asana.js +15 -2
- package/dist/connectors/aws-billing.js +1 -1
- package/dist/connectors/gmail-oauth.js +15 -2
- package/dist/connectors/gmail.js +23 -14
- package/dist/connectors/google-audit-log.js +25 -14
- package/dist/connectors/google-calendar-oauth.js +18 -2
- package/dist/connectors/google-calendar.js +40 -26
- package/dist/connectors/google-docs.js +18 -2
- package/dist/connectors/google-drive.js +15 -2
- package/dist/connectors/google-sheets.js +18 -2
- package/dist/connectors/google-slides.js +18 -2
- package/dist/connectors/tiktok-ads.js +15 -2
- package/dist/index.js +125 -77
- package/dist/main.js +125 -77
- package/dist/vite-plugin.js +125 -77
- package/package.json +1 -1
package/dist/main.js
CHANGED
|
@@ -94737,7 +94737,7 @@ var snowflakeOnboarding = new ConnectorOnboarding({
|
|
|
94737
94737
|
8. \u7D50\u679C\u306B\u5FDC\u3058\u3066\u5206\u5C90:
|
|
94738
94738
|
- **\u30C6\u30FC\u30D6\u30EB\u304C2\u3064\u4EE5\u4E0A**: \`askUserQuestion\`\uFF08multiSelect: true\uFF09\u3067\u30E6\u30FC\u30B6\u30FC\u306B\u63D0\u793A\u3057\u3001\u4F7F\u7528\u3059\u308B\u30C6\u30FC\u30D6\u30EB\u3092\u9078\u629E\u3055\u305B\u308B\u3002description \u306B\u306F\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u540D.\u30B9\u30AD\u30FC\u30DE\u540D\u3092\u8A18\u8F09\u3059\u308B
|
|
94739
94739
|
- **\u30C6\u30FC\u30D6\u30EB\u304C1\u3064\u3060\u3051**: askUserQuestion \u306F\u4F7F\u308F\u305A\u81EA\u52D5\u63A1\u7528
|
|
94740
|
-
9. Phase 5 \u306E \`finalizeSetup\` \u306B\u6E21\u3059 \`projectKnowledge\` \u3067\u306F\u3001\u30B9\u30C6\u30C3\u30D72\u3067\u9078\u629E\u3057\u305F\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\
|
|
94740
|
+
9. Phase 5 \u306E \`finalizeSetup\` \u306B\u6E21\u3059 \`projectKnowledge\` \u3067\u306F\u3001\u30B9\u30C6\u30C3\u30D72\u3067\u9078\u629E\u3057\u305F\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u3068\u30B9\u30C6\u30C3\u30D75\u3067\u9078\u629E\u3057\u305F\u30B9\u30AD\u30FC\u30DE\u3092\u3001\u3053\u306E\u30B3\u30CD\u30AF\u30B7\u30E7\u30F3\u306E\u30B9\u30B3\u30FC\u30D7\u60C5\u5831\u3068\u3057\u3066\u8A18\u9332\u3059\u308B\uFF08\u8907\u6570\u9078\u629E\u3057\u305F\u5834\u5408\u306F\u5168\u4EF6\uFF09\u3002\u5404\u30B9\u30AD\u30FC\u30DE\u306B\u3064\u3044\u3066\u300C\u5168\u30C6\u30FC\u30D6\u30EB\u300D\u304C\u9078\u3070\u308C\u305F\u304B\u300C\u7279\u5B9A\u30C6\u30FC\u30D6\u30EB\u300D\u304C\u9078\u3070\u308C\u305F\u304B\u3092\u533A\u5225\u3057\u3066\u8A18\u9332\u3057\u3001\u7279\u5B9A\u30C6\u30FC\u30D6\u30EB\u304C\u9078\u3070\u308C\u305F\u5834\u5408\u306F\u5BFE\u8C61\u30C6\u30FC\u30D6\u30EB\u540D\u3082\u542B\u3081\u308B\u3002
|
|
94741
94741
|
|
|
94742
94742
|
#### \u5236\u7D04
|
|
94743
94743
|
- askUserQuestion \u306E options \u306B\u306F\u6700\u4F4E2\u4EF6\u5FC5\u8981\u30021\u4EF6\u3057\u304B\u306A\u3044\u5834\u5408\u306F askUserQuestion \u3092\u547C\u3070\u305A\u6B21\u306E\u30B9\u30C6\u30C3\u30D7\u306B\u9032\u3080\u3053\u3068
|
|
@@ -94760,7 +94760,7 @@ var snowflakeOnboarding = new ConnectorOnboarding({
|
|
|
94760
94760
|
8. Branch based on results:
|
|
94761
94761
|
- **2 or more tables**: Present them to the user via \`askUserQuestion\` (multiSelect: true) and let them select which tables to use. Include database.schema in the description
|
|
94762
94762
|
- **Exactly 1 table**: Do NOT call askUserQuestion. Auto-select it
|
|
94763
|
-
9. When passing \`projectKnowledge\` to \`finalizeSetup\` in Phase 5, record
|
|
94763
|
+
9. When passing \`projectKnowledge\` to \`finalizeSetup\` in Phase 5, record the databases selected in step 2 and the schemas selected in step 5 as this connection's scope info (record all of them if multiple were chosen). For each schema, indicate whether "all tables" or "specific tables" was chosen, and if specific tables were chosen, include the selected table names.
|
|
94764
94764
|
|
|
94765
94765
|
#### Constraints
|
|
94766
94766
|
- askUserQuestion options requires at least 2 items. If there is only 1 item, do NOT call askUserQuestion \u2014 proceed to the next step directly
|
|
@@ -96070,7 +96070,7 @@ var bigqueryOnboarding = new ConnectorOnboarding({
|
|
|
96070
96070
|
7. \u7D50\u679C\u306B\u5FDC\u3058\u3066\u5206\u5C90:
|
|
96071
96071
|
- **\u30C6\u30FC\u30D6\u30EB\u304C2\u3064\u4EE5\u4E0A**: \`askUserQuestion\`\uFF08multiSelect: true\uFF09\u3067\u30E6\u30FC\u30B6\u30FC\u306B\u63D0\u793A\u3057\u3001\u4F7F\u7528\u3059\u308B\u30C6\u30FC\u30D6\u30EB\u3092\u9078\u629E\u3055\u305B\u308B\u3002description \u306B\u306F\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u540D\u3092\u8A18\u8F09\u3059\u308B
|
|
96072
96072
|
- **\u30C6\u30FC\u30D6\u30EB\u304C1\u3064\u3060\u3051**: askUserQuestion \u306F\u4F7F\u308F\u305A\u81EA\u52D5\u63A1\u7528
|
|
96073
|
-
8. Phase 5 \u306E \`finalizeSetup\` \u306B\u6E21\u3059 \`projectKnowledge\` \u3067\u306F\u3001\u30B9\u30C6\u30C3\u30D75\u3067\u30E6\u30FC\u30B6\u30FC\u304C\u9078\u629E\u3057\u305F\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u3092
|
|
96073
|
+
8. Phase 5 \u306E \`finalizeSetup\` \u306B\u6E21\u3059 \`projectKnowledge\` \u3067\u306F\u3001\u30B9\u30C6\u30C3\u30D75\u3067\u30E6\u30FC\u30B6\u30FC\u304C\u9078\u629E\u3057\u305F\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u3092\u3053\u306E\u30B3\u30CD\u30AF\u30B7\u30E7\u30F3\u306E\u30B9\u30B3\u30FC\u30D7\u60C5\u5831\u3068\u3057\u3066\u8A18\u9332\u3059\u308B\uFF08\u8907\u6570\u9078\u629E\u3057\u305F\u5834\u5408\u306F\u5168\u4EF6\uFF09\u3002\u30D1\u30D6\u30EA\u30C3\u30AF\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u306F \`bigquery-public-data.{dataset}\` \u306E\u5F62\u5F0F\u3067\u8A18\u9332\u3059\u308B\u3002
|
|
96074
96074
|
|
|
96075
96075
|
#### \u5236\u7D04
|
|
96076
96076
|
- **\u30C6\u30FC\u30D6\u30EB\u306E\u884C\u30C7\u30FC\u30BF\u3092\u8AAD\u307F\u53D6\u3089\u306A\u3044\u3053\u3068**\u3002\u5B9F\u884C\u3057\u3066\u3088\u3044\u306E\u306F\u4E0A\u8A18\u624B\u9806\u3067\u6307\u5B9A\u3055\u308C\u305F\u30E1\u30BF\u30C7\u30FC\u30BF\u53D6\u5F97\u30AF\u30A8\u30EA\u306E\u307F\u3002\u305D\u308C\u4EE5\u5916\u306E\u30AF\u30A8\u30EA\u306F\u5B9F\u884C\u7981\u6B62
|
|
@@ -96099,7 +96099,7 @@ var bigqueryOnboarding = new ConnectorOnboarding({
|
|
|
96099
96099
|
7. Branch based on results:
|
|
96100
96100
|
- **2 or more tables**: Present them to the user via \`askUserQuestion\` (multiSelect: true) and let them select which tables to use. Include the dataset name in the description
|
|
96101
96101
|
- **Exactly 1 table**: Do NOT call askUserQuestion. Auto-select it
|
|
96102
|
-
8. When passing \`projectKnowledge\` to \`finalizeSetup\` in Phase 5, record each dataset selected in step 5
|
|
96102
|
+
8. When passing \`projectKnowledge\` to \`finalizeSetup\` in Phase 5, record each dataset selected in step 5 as this connection's scope info (record all of them if multiple were chosen). Use the form \`bigquery-public-data.{dataset}\` for public datasets.
|
|
96103
96103
|
|
|
96104
96104
|
#### Constraints
|
|
96105
96105
|
- **Do NOT read table row data**. Only the metadata queries specified in the steps above are allowed. All other queries are forbidden
|
|
@@ -96527,7 +96527,7 @@ var bigqueryOnboarding2 = new ConnectorOnboarding({
|
|
|
96527
96527
|
7. \u7D50\u679C\u306B\u5FDC\u3058\u3066\u5206\u5C90:
|
|
96528
96528
|
- **\u30C6\u30FC\u30D6\u30EB\u304C2\u3064\u4EE5\u4E0A**: \`askUserQuestion\`\uFF08multiSelect: true\uFF09\u3067\u30E6\u30FC\u30B6\u30FC\u306B\u63D0\u793A\u3057\u3001\u4F7F\u7528\u3059\u308B\u30C6\u30FC\u30D6\u30EB\u3092\u9078\u629E\u3055\u305B\u308B\u3002description \u306B\u306F\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u540D\u3092\u8A18\u8F09\u3059\u308B
|
|
96529
96529
|
- **\u30C6\u30FC\u30D6\u30EB\u304C1\u3064\u3060\u3051**: askUserQuestion \u306F\u4F7F\u308F\u305A\u81EA\u52D5\u63A1\u7528
|
|
96530
|
-
8. Phase 5 \u306E \`finalizeSetup\` \u306B\u6E21\u3059 \`projectKnowledge\` \u3067\u306F\u3001\u30B9\u30C6\u30C3\u30D75\u3067\u30E6\u30FC\u30B6\u30FC\u304C\u9078\u629E\u3057\u305F\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u3092
|
|
96530
|
+
8. Phase 5 \u306E \`finalizeSetup\` \u306B\u6E21\u3059 \`projectKnowledge\` \u3067\u306F\u3001\u30B9\u30C6\u30C3\u30D75\u3067\u30E6\u30FC\u30B6\u30FC\u304C\u9078\u629E\u3057\u305F\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u3092\u3053\u306E\u30B3\u30CD\u30AF\u30B7\u30E7\u30F3\u306E\u30B9\u30B3\u30FC\u30D7\u60C5\u5831\u3068\u3057\u3066\u8A18\u9332\u3059\u308B\uFF08\u8907\u6570\u9078\u629E\u3057\u305F\u5834\u5408\u306F\u5168\u4EF6\uFF09\u3002\u30D1\u30D6\u30EA\u30C3\u30AF\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u306F \`bigquery-public-data.{dataset}\` \u306E\u5F62\u5F0F\u3067\u8A18\u9332\u3059\u308B\u3002
|
|
96531
96531
|
|
|
96532
96532
|
#### \u5236\u7D04
|
|
96533
96533
|
- **\u30C6\u30FC\u30D6\u30EB\u306E\u884C\u30C7\u30FC\u30BF\u3092\u8AAD\u307F\u53D6\u3089\u306A\u3044\u3053\u3068**\u3002\u5B9F\u884C\u3057\u3066\u3088\u3044\u306E\u306F\u4E0A\u8A18\u624B\u9806\u3067\u6307\u5B9A\u3055\u308C\u305F\u30E1\u30BF\u30C7\u30FC\u30BF\u53D6\u5F97\u30AF\u30A8\u30EA\u306E\u307F\u3002\u305D\u308C\u4EE5\u5916\u306E\u30AF\u30A8\u30EA\u306F\u5B9F\u884C\u7981\u6B62
|
|
@@ -96556,7 +96556,7 @@ var bigqueryOnboarding2 = new ConnectorOnboarding({
|
|
|
96556
96556
|
7. Branch based on results:
|
|
96557
96557
|
- **2 or more tables**: Present them to the user via \`askUserQuestion\` (multiSelect: true) and let them select which tables to use. Include the dataset name in the description
|
|
96558
96558
|
- **Exactly 1 table**: Do NOT call askUserQuestion. Auto-select it
|
|
96559
|
-
8. When passing \`projectKnowledge\` to \`finalizeSetup\` in Phase 5, record each dataset selected in step 5
|
|
96559
|
+
8. When passing \`projectKnowledge\` to \`finalizeSetup\` in Phase 5, record each dataset selected in step 5 as this connection's scope info (record all of them if multiple were chosen). Use the form \`bigquery-public-data.{dataset}\` for public datasets.
|
|
96560
96560
|
|
|
96561
96561
|
#### Constraints
|
|
96562
96562
|
- **Do NOT read table row data**. Only the metadata queries specified in the steps above are allowed. All other queries are forbidden
|
|
@@ -97588,7 +97588,7 @@ var awsBillingConnector = new ConnectorPlugin({
|
|
|
97588
97588
|
description: "Connect to AWS Cost Explorer to analyze AWS spend, usage, and forecast costs across services, accounts, and regions.",
|
|
97589
97589
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/6u4IRN1BNS0EVSjsWSnrq1/53721bfc097a5ff04d07c15cc5e80a0d/Amazon_Web_Services-Logo.wine.svg",
|
|
97590
97590
|
parameters: parameters8,
|
|
97591
|
-
releaseFlag: { dev1: true, dev2:
|
|
97591
|
+
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
97592
97592
|
categories: ["finance"],
|
|
97593
97593
|
onboarding: awsBillingOnboarding,
|
|
97594
97594
|
systemPrompt: {
|
|
@@ -100043,6 +100043,16 @@ const realtime = await ga.runRealtimeReport({
|
|
|
100043
100043
|
// ../connectors/src/connectors/google-calendar/tools/request.ts
|
|
100044
100044
|
import { z as z24 } from "zod";
|
|
100045
100045
|
|
|
100046
|
+
// ../connectors/src/lib/normalize-path.ts
|
|
100047
|
+
function normalizeRequestPath(path6, basePathSegment) {
|
|
100048
|
+
let p2 = path6.trim();
|
|
100049
|
+
if (!p2.startsWith("/")) p2 = "/" + p2;
|
|
100050
|
+
if (p2 === basePathSegment || p2.startsWith(basePathSegment + "/")) {
|
|
100051
|
+
p2 = p2.slice(basePathSegment.length) || "/";
|
|
100052
|
+
}
|
|
100053
|
+
return p2;
|
|
100054
|
+
}
|
|
100055
|
+
|
|
100046
100056
|
// ../connectors/src/connectors/google-calendar/parameters.ts
|
|
100047
100057
|
var parameters15 = {
|
|
100048
100058
|
serviceAccountKeyJsonBase64: new ParameterDefinition({
|
|
@@ -100057,7 +100067,9 @@ var parameters15 = {
|
|
|
100057
100067
|
};
|
|
100058
100068
|
|
|
100059
100069
|
// ../connectors/src/connectors/google-calendar/tools/request.ts
|
|
100060
|
-
var
|
|
100070
|
+
var BASE_HOST = "https://www.googleapis.com";
|
|
100071
|
+
var BASE_PATH_SEGMENT = "/calendar/v3";
|
|
100072
|
+
var BASE_URL6 = `${BASE_HOST}${BASE_PATH_SEGMENT}`;
|
|
100061
100073
|
var REQUEST_TIMEOUT_MS14 = 6e4;
|
|
100062
100074
|
function decodeServiceAccount(keyJsonBase64) {
|
|
100063
100075
|
const decoded = Buffer.from(keyJsonBase64, "base64").toString("utf-8");
|
|
@@ -100136,7 +100148,8 @@ var requestTool5 = new ConnectorTool({
|
|
|
100136
100148
|
serviceAccountEmail
|
|
100137
100149
|
};
|
|
100138
100150
|
}
|
|
100139
|
-
|
|
100151
|
+
const normalizedPath = normalizeRequestPath(path6, BASE_PATH_SEGMENT);
|
|
100152
|
+
let url = `${BASE_URL6}${normalizedPath}`;
|
|
100140
100153
|
if (queryParams) {
|
|
100141
100154
|
const searchParams = new URLSearchParams(queryParams);
|
|
100142
100155
|
url += `?${searchParams.toString()}`;
|
|
@@ -100186,7 +100199,9 @@ var requestTool5 = new ConnectorTool({
|
|
|
100186
100199
|
|
|
100187
100200
|
// ../connectors/src/connectors/google-calendar/tools/request-with-delegation.ts
|
|
100188
100201
|
import { z as z25 } from "zod";
|
|
100189
|
-
var
|
|
100202
|
+
var BASE_HOST2 = "https://www.googleapis.com";
|
|
100203
|
+
var BASE_PATH_SEGMENT2 = "/calendar/v3";
|
|
100204
|
+
var BASE_URL7 = `${BASE_HOST2}${BASE_PATH_SEGMENT2}`;
|
|
100190
100205
|
var REQUEST_TIMEOUT_MS15 = 6e4;
|
|
100191
100206
|
function decodeServiceAccount2(keyJsonBase64) {
|
|
100192
100207
|
const decoded = Buffer.from(keyJsonBase64, "base64").toString("utf-8");
|
|
@@ -100271,7 +100286,8 @@ var requestWithDelegationTool = new ConnectorTool({
|
|
|
100271
100286
|
serviceAccountEmail
|
|
100272
100287
|
};
|
|
100273
100288
|
}
|
|
100274
|
-
|
|
100289
|
+
const normalizedPath = normalizeRequestPath(path6, BASE_PATH_SEGMENT2);
|
|
100290
|
+
let url = `${BASE_URL7}${normalizedPath}`;
|
|
100275
100291
|
if (queryParams) {
|
|
100276
100292
|
const searchParams = new URLSearchParams(queryParams);
|
|
100277
100293
|
url += `?${searchParams.toString()}`;
|
|
@@ -100394,9 +100410,7 @@ var googleCalendarOnboarding = new ConnectorOnboarding({
|
|
|
100394
100410
|
|
|
100395
100411
|
## \u30B9\u30C6\u30C3\u30D7 4: Project Knowledge \u306B\u8A18\u9332
|
|
100396
100412
|
|
|
100397
|
-
\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
|
|
100398
|
-
- \u30C9\u30E1\u30A4\u30F3\u5168\u4F53\u306E\u59D4\u4EFB\u7D4C\u7531: \`- calendar: <calendarId> (delegation, subject: <subject>, name: "<\u30AB\u30EC\u30F3\u30C0\u30FC\u540D>")\`
|
|
100399
|
-
- \u30B5\u30FC\u30D3\u30B9\u30A2\u30AB\u30A6\u30F3\u30C8\u7D4C\u8DEF: \`- calendar: <calendarId> (service-account, name: "<\u30AB\u30EC\u30F3\u30C0\u30FC\u540D>")\`
|
|
100413
|
+
\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\u5404\u30AB\u30EC\u30F3\u30C0\u30FC\u3092\u300C\u30AB\u30EC\u30F3\u30C0\u30FC\u540D\u30FB\u30AB\u30EC\u30F3\u30C0\u30FC ID\u30FB\u30A2\u30AF\u30BB\u30B9\u7D4C\u8DEF\uFF08delegation \u304B service-account \u304B\uFF09\u30FBdelegation \u306E\u5834\u5408\u306F subject\u300D\u3068\u3068\u3082\u306B\u3053\u306E\u30B3\u30CD\u30AF\u30B7\u30E7\u30F3\u306E\u30B9\u30B3\u30FC\u30D7\u60C5\u5831\u3068\u3057\u3066\u8A18\u9332\u3059\u308B\u3002
|
|
100400
100414
|
|
|
100401
100415
|
## \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
|
|
100402
100416
|
|
|
@@ -100488,9 +100502,7 @@ Discover calendars from each Workspace user and let the user narrow them down.
|
|
|
100488
100502
|
|
|
100489
100503
|
## Step 4: Record in Project Knowledge
|
|
100490
100504
|
|
|
100491
|
-
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
|
|
100492
|
-
- Via Domain-wide Delegation: \`- calendar: <calendarId> (delegation, subject: <subject>, name: "<calendar name>")\`
|
|
100493
|
-
- Via service account: \`- calendar: <calendarId> (service-account, name: "<calendar name>")\`
|
|
100505
|
+
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\` and record each calendar with its name, calendar ID, access path (delegation or service-account), and (for delegation) the subject as this connection's scope info.
|
|
100494
100506
|
|
|
100495
100507
|
## Step 5: Escalation when zero calendars are selected
|
|
100496
100508
|
|
|
@@ -100516,18 +100528,18 @@ Behavior per selection:
|
|
|
100516
100528
|
- Write at most 1 sentence between tool calls`
|
|
100517
100529
|
},
|
|
100518
100530
|
dataOverviewInstructions: {
|
|
100519
|
-
en: `For each calendar
|
|
100520
|
-
-
|
|
100521
|
-
-
|
|
100531
|
+
en: `For each calendar configured for this connection, fetch metadata and a small sample of upcoming events. Pick the tool that matches the calendar's access path:
|
|
100532
|
+
- Calendars accessed via delegation \u2192 \`${requestWithDelegationToolName}\` with the user's email as \`subject\`
|
|
100533
|
+
- Calendars shared directly with the service account \u2192 \`${requestToolName}\`
|
|
100522
100534
|
|
|
100523
100535
|
Pass \`scopes: ${READONLY_SCOPES}\` for every call.
|
|
100524
100536
|
|
|
100525
100537
|
For each calendar:
|
|
100526
100538
|
1. \`method=GET\`, \`path=/calendars/<id>\` to fetch metadata.
|
|
100527
100539
|
2. \`method=GET\`, \`path=/calendars/<id>/events\`, \`queryParams={ timeMin: <RFC3339 now>, maxResults: "10", singleEvents: "true", orderBy: "startTime" }\`.`,
|
|
100528
|
-
ja:
|
|
100529
|
-
-
|
|
100530
|
-
-
|
|
100540
|
+
ja: `\u3053\u306E\u30B3\u30CD\u30AF\u30B7\u30E7\u30F3\u3067\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u308B\u5404\u30AB\u30EC\u30F3\u30C0\u30FC\u306B\u3064\u3044\u3066\u3001\u30E1\u30BF\u30C7\u30FC\u30BF\u3068\u76F4\u8FD1\u306E\u30A4\u30D9\u30F3\u30C8\u3092\u5C11\u91CF\u53D6\u5F97\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u30A2\u30AF\u30BB\u30B9\u7D4C\u8DEF\u306B\u5FDC\u3058\u3066\u30C4\u30FC\u30EB\u3092\u9078\u3073\u307E\u3059:
|
|
100541
|
+
- delegation \u7D4C\u7531\u306E\u30AB\u30EC\u30F3\u30C0\u30FC \u2192 \`${requestWithDelegationToolName}\` \u3092\u3001\u5BFE\u8C61\u30E6\u30FC\u30B6\u30FC\u306E\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3092 \`subject\` \u3068\u3057\u3066\u547C\u3076
|
|
100542
|
+
- service account \u306B\u76F4\u63A5\u5171\u6709\u3055\u308C\u305F\u30AB\u30EC\u30F3\u30C0\u30FC \u2192 \`${requestToolName}\` \u3092\u547C\u3076
|
|
100531
100543
|
|
|
100532
100544
|
\`scopes\` \u306F\u6BCE\u56DE \`${READONLY_SCOPES}\` \u3092\u6E21\u3057\u3066\u304F\u3060\u3055\u3044\u3002
|
|
100533
100545
|
|
|
@@ -100576,10 +100588,10 @@ Per-endpoint scope reference: https://developers.google.com/calendar/api/auth
|
|
|
100576
100588
|
|
|
100577
100589
|
### Choosing the right tool
|
|
100578
100590
|
|
|
100579
|
-
|
|
100591
|
+
Each calendar configured for this connection has an access path. Match the path to the tool:
|
|
100580
100592
|
|
|
100581
|
-
-
|
|
100582
|
-
-
|
|
100593
|
+
- A Workspace user's calendar accessed via Domain-wide Delegation \u2192 use \`request_with_delegation\` and pass that user's email as \`subject\`
|
|
100594
|
+
- A calendar shared directly with the service account \u2192 use \`request\` (no \`subject\`)
|
|
100583
100595
|
|
|
100584
100596
|
### Path conventions
|
|
100585
100597
|
|
|
@@ -100634,14 +100646,14 @@ export default async function handler(c: Context) {
|
|
|
100634
100646
|
orderBy: "startTime",
|
|
100635
100647
|
});
|
|
100636
100648
|
|
|
100637
|
-
//
|
|
100649
|
+
// alice@example.com is accessed via delegation
|
|
100638
100650
|
const aliceRes = await calendar.requestWithDelegation(
|
|
100639
100651
|
\`/calendars/alice@example.com/events?\${qs}\`,
|
|
100640
100652
|
{ subject: "alice@example.com", scopes: READ },
|
|
100641
100653
|
);
|
|
100642
100654
|
const alice = await aliceRes.json();
|
|
100643
100655
|
|
|
100644
|
-
//
|
|
100656
|
+
// team@example.com is shared directly with the service account
|
|
100645
100657
|
const teamRes = await calendar.request(
|
|
100646
100658
|
\`/calendars/team@example.com/events?\${qs}\`,
|
|
100647
100659
|
{ scopes: READ },
|
|
@@ -100674,10 +100686,10 @@ export default async function handler(c: Context) {
|
|
|
100674
100686
|
|
|
100675
100687
|
### \u9069\u5207\u306A\u30C4\u30FC\u30EB\u306E\u9078\u3073\u65B9
|
|
100676
100688
|
|
|
100677
|
-
\u3053\u306E\u30B3\u30CD\u30AF\u30B7\u30E7\u30F3\
|
|
100689
|
+
\u3053\u306E\u30B3\u30CD\u30AF\u30B7\u30E7\u30F3\u3067\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u308B\u5404\u30AB\u30EC\u30F3\u30C0\u30FC\u306B\u306F\u30A2\u30AF\u30BB\u30B9\u7D4C\u8DEF\u304C\u3042\u308A\u307E\u3059\u3002\u7D4C\u8DEF\u306B\u5FDC\u3058\u3066\u30C4\u30FC\u30EB\u3092\u9078\u3093\u3067\u304F\u3060\u3055\u3044:
|
|
100678
100690
|
|
|
100679
|
-
-
|
|
100680
|
-
-
|
|
100691
|
+
- delegation \u7D4C\u7531\uFF08Workspace \u30E6\u30FC\u30B6\u30FC\u306E\u30AB\u30EC\u30F3\u30C0\u30FC\u306B Domain-wide Delegation \u3067\u30A2\u30AF\u30BB\u30B9\uFF09\u2192 \`request_with_delegation\` \u3092\u4F7F\u3044\u3001\u5BFE\u8C61\u30E6\u30FC\u30B6\u30FC\u306E\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3092 \`subject\` \u3068\u3057\u3066\u6E21\u3059
|
|
100692
|
+
- service account \u7D4C\u7531\uFF08\u30B5\u30FC\u30D3\u30B9\u30A2\u30AB\u30A6\u30F3\u30C8\u306B\u76F4\u63A5\u5171\u6709\u3055\u308C\u305F\u30AB\u30EC\u30F3\u30C0\u30FC\uFF09\u2192 \`request\` \u3092\u4F7F\u3046\uFF08\`subject\` \u4E0D\u8981\uFF09
|
|
100681
100693
|
|
|
100682
100694
|
### \u30D1\u30B9\u306E\u66F8\u304D\u65B9
|
|
100683
100695
|
|
|
@@ -100732,14 +100744,14 @@ export default async function handler(c: Context) {
|
|
|
100732
100744
|
orderBy: "startTime",
|
|
100733
100745
|
});
|
|
100734
100746
|
|
|
100735
|
-
//
|
|
100747
|
+
// alice@example.com \u306F delegation \u7D4C\u8DEF\u3067\u30A2\u30AF\u30BB\u30B9
|
|
100736
100748
|
const aliceRes = await calendar.requestWithDelegation(
|
|
100737
100749
|
\`/calendars/alice@example.com/events?\${qs}\`,
|
|
100738
100750
|
{ subject: "alice@example.com", scopes: READ },
|
|
100739
100751
|
);
|
|
100740
100752
|
const alice = await aliceRes.json();
|
|
100741
100753
|
|
|
100742
|
-
//
|
|
100754
|
+
// team@example.com \u306F SA \u306B\u76F4\u63A5\u5171\u6709
|
|
100743
100755
|
const teamRes = await calendar.request(
|
|
100744
100756
|
\`/calendars/team@example.com/events?\${qs}\`,
|
|
100745
100757
|
{ scopes: READ },
|
|
@@ -100923,7 +100935,9 @@ var parameters16 = {
|
|
|
100923
100935
|
|
|
100924
100936
|
// ../connectors/src/connectors/google-calendar-oauth/tools/request.ts
|
|
100925
100937
|
import { z as z27 } from "zod";
|
|
100926
|
-
var
|
|
100938
|
+
var BASE_HOST3 = "https://www.googleapis.com";
|
|
100939
|
+
var BASE_PATH_SEGMENT3 = "/calendar/v3";
|
|
100940
|
+
var BASE_URL9 = `${BASE_HOST3}${BASE_PATH_SEGMENT3}`;
|
|
100927
100941
|
var REQUEST_TIMEOUT_MS17 = 6e4;
|
|
100928
100942
|
var cachedToken10 = null;
|
|
100929
100943
|
async function getProxyToken10(config) {
|
|
@@ -101000,7 +101014,11 @@ Authentication is handled automatically via OAuth proxy.
|
|
|
101000
101014
|
try {
|
|
101001
101015
|
const calendarId = parameters16.calendarId.tryGetValue(connection2) ?? "primary";
|
|
101002
101016
|
const resolvedPath = path6.replace(/\{calendarId\}/g, calendarId);
|
|
101003
|
-
|
|
101017
|
+
const normalizedPath = normalizeRequestPath(
|
|
101018
|
+
resolvedPath,
|
|
101019
|
+
BASE_PATH_SEGMENT3
|
|
101020
|
+
);
|
|
101021
|
+
let url = `${BASE_URL9}${normalizedPath}`;
|
|
101004
101022
|
if (queryParams) {
|
|
101005
101023
|
const searchParams = new URLSearchParams(queryParams);
|
|
101006
101024
|
url += `?${searchParams.toString()}`;
|
|
@@ -101236,7 +101254,9 @@ var parameters17 = {};
|
|
|
101236
101254
|
|
|
101237
101255
|
// ../connectors/src/connectors/google-docs/tools/request.ts
|
|
101238
101256
|
import { z as z28 } from "zod";
|
|
101239
|
-
var
|
|
101257
|
+
var DOCS_BASE_HOST = "https://docs.googleapis.com";
|
|
101258
|
+
var DOCS_BASE_PATH_SEGMENT = "/v1/documents";
|
|
101259
|
+
var DOCS_BASE_URL = `${DOCS_BASE_HOST}${DOCS_BASE_PATH_SEGMENT}`;
|
|
101240
101260
|
var REQUEST_TIMEOUT_MS18 = 6e4;
|
|
101241
101261
|
var cachedToken11 = null;
|
|
101242
101262
|
async function getProxyToken11(config) {
|
|
@@ -101311,7 +101331,11 @@ Authentication is handled automatically via OAuth proxy.`,
|
|
|
101311
101331
|
`[connector-request] google-docs/${connection2.name}: ${method} ${path6}`
|
|
101312
101332
|
);
|
|
101313
101333
|
try {
|
|
101314
|
-
|
|
101334
|
+
const normalizedPath = normalizeRequestPath(
|
|
101335
|
+
path6,
|
|
101336
|
+
DOCS_BASE_PATH_SEGMENT
|
|
101337
|
+
);
|
|
101338
|
+
let url = `${DOCS_BASE_URL}${normalizedPath === "/" ? "" : normalizedPath}`;
|
|
101315
101339
|
if (queryParams) {
|
|
101316
101340
|
const searchParams = new URLSearchParams(queryParams);
|
|
101317
101341
|
url += `?${searchParams.toString()}`;
|
|
@@ -101530,7 +101554,9 @@ var parameters18 = {};
|
|
|
101530
101554
|
|
|
101531
101555
|
// ../connectors/src/connectors/google-drive/tools/request.ts
|
|
101532
101556
|
import { z as z29 } from "zod";
|
|
101533
|
-
var
|
|
101557
|
+
var BASE_HOST4 = "https://www.googleapis.com";
|
|
101558
|
+
var BASE_PATH_SEGMENT4 = "/drive/v3";
|
|
101559
|
+
var BASE_URL10 = `${BASE_HOST4}${BASE_PATH_SEGMENT4}`;
|
|
101534
101560
|
var REQUEST_TIMEOUT_MS19 = 6e4;
|
|
101535
101561
|
var cachedToken12 = null;
|
|
101536
101562
|
async function getProxyToken12(config) {
|
|
@@ -101605,7 +101631,8 @@ Authentication is handled automatically via OAuth proxy.`,
|
|
|
101605
101631
|
`[connector-request] google-drive/${connection2.name}: ${method} ${path6}`
|
|
101606
101632
|
);
|
|
101607
101633
|
try {
|
|
101608
|
-
|
|
101634
|
+
const normalizedPath = normalizeRequestPath(path6, BASE_PATH_SEGMENT4);
|
|
101635
|
+
let url = `${BASE_URL10}${normalizedPath}`;
|
|
101609
101636
|
if (queryParams) {
|
|
101610
101637
|
const searchParams = new URLSearchParams(queryParams);
|
|
101611
101638
|
url += `?${searchParams.toString()}`;
|
|
@@ -101964,7 +101991,9 @@ await drive.updateFile("fileId123", {}, "newFolderId", "oldFolderId");
|
|
|
101964
101991
|
|
|
101965
101992
|
// ../connectors/src/connectors/google-sheets/tools/request.ts
|
|
101966
101993
|
import { z as z30 } from "zod";
|
|
101967
|
-
var
|
|
101994
|
+
var SHEETS_BASE_HOST = "https://sheets.googleapis.com";
|
|
101995
|
+
var SHEETS_BASE_PATH_SEGMENT = "/v4/spreadsheets";
|
|
101996
|
+
var SHEETS_BASE_URL = `${SHEETS_BASE_HOST}${SHEETS_BASE_PATH_SEGMENT}`;
|
|
101968
101997
|
var REQUEST_TIMEOUT_MS20 = 6e4;
|
|
101969
101998
|
var cachedToken13 = null;
|
|
101970
101999
|
async function getProxyToken13(config) {
|
|
@@ -102044,7 +102073,11 @@ Authentication is handled automatically via OAuth proxy.`,
|
|
|
102044
102073
|
`[connector-request] google-sheets/${connection2.name}: ${method} ${path6}`
|
|
102045
102074
|
);
|
|
102046
102075
|
try {
|
|
102047
|
-
|
|
102076
|
+
const normalizedPath = normalizeRequestPath(
|
|
102077
|
+
path6,
|
|
102078
|
+
SHEETS_BASE_PATH_SEGMENT
|
|
102079
|
+
);
|
|
102080
|
+
let url = `${SHEETS_BASE_URL}${normalizedPath === "/" ? "" : normalizedPath}`;
|
|
102048
102081
|
if (queryParams) {
|
|
102049
102082
|
const searchParams = new URLSearchParams(queryParams);
|
|
102050
102083
|
url += `?${searchParams.toString()}`;
|
|
@@ -102335,7 +102368,9 @@ var parameters20 = {};
|
|
|
102335
102368
|
|
|
102336
102369
|
// ../connectors/src/connectors/google-slides/tools/request.ts
|
|
102337
102370
|
import { z as z31 } from "zod";
|
|
102338
|
-
var
|
|
102371
|
+
var SLIDES_BASE_HOST = "https://slides.googleapis.com";
|
|
102372
|
+
var SLIDES_BASE_PATH_SEGMENT = "/v1/presentations";
|
|
102373
|
+
var SLIDES_BASE_URL = `${SLIDES_BASE_HOST}${SLIDES_BASE_PATH_SEGMENT}`;
|
|
102339
102374
|
var REQUEST_TIMEOUT_MS21 = 6e4;
|
|
102340
102375
|
var cachedToken14 = null;
|
|
102341
102376
|
async function getProxyToken14(config) {
|
|
@@ -102410,7 +102445,11 @@ Authentication is handled automatically via OAuth proxy.`,
|
|
|
102410
102445
|
`[connector-request] google-slides/${connection2.name}: ${method} ${path6}`
|
|
102411
102446
|
);
|
|
102412
102447
|
try {
|
|
102413
|
-
|
|
102448
|
+
const normalizedPath = normalizeRequestPath(
|
|
102449
|
+
path6,
|
|
102450
|
+
SLIDES_BASE_PATH_SEGMENT
|
|
102451
|
+
);
|
|
102452
|
+
let url = `${SLIDES_BASE_URL}${normalizedPath === "/" ? "" : normalizedPath}`;
|
|
102414
102453
|
if (queryParams) {
|
|
102415
102454
|
const searchParams = new URLSearchParams(queryParams);
|
|
102416
102455
|
url += `?${searchParams.toString()}`;
|
|
@@ -107576,7 +107615,9 @@ var parameters40 = {
|
|
|
107576
107615
|
|
|
107577
107616
|
// ../connectors/src/connectors/asana/tools/request.ts
|
|
107578
107617
|
import { z as z48 } from "zod";
|
|
107579
|
-
var
|
|
107618
|
+
var BASE_HOST5 = "https://app.asana.com";
|
|
107619
|
+
var BASE_PATH_SEGMENT5 = "/api/1.0";
|
|
107620
|
+
var BASE_URL19 = `${BASE_HOST5}${BASE_PATH_SEGMENT5}`;
|
|
107580
107621
|
var REQUEST_TIMEOUT_MS37 = 6e4;
|
|
107581
107622
|
var inputSchema48 = z48.object({
|
|
107582
107623
|
toolUseIntent: z48.string().optional().describe(
|
|
@@ -107640,7 +107681,8 @@ Pagination: Use limit (1-100) and offset query parameters. The response includes
|
|
|
107640
107681
|
);
|
|
107641
107682
|
try {
|
|
107642
107683
|
const token = parameters40.personalAccessToken.getValue(connection2);
|
|
107643
|
-
const
|
|
107684
|
+
const normalizedPath = normalizeRequestPath(path6, BASE_PATH_SEGMENT5);
|
|
107685
|
+
const url = `${BASE_URL19}${normalizedPath}`;
|
|
107644
107686
|
const controller = new AbortController();
|
|
107645
107687
|
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS37);
|
|
107646
107688
|
try {
|
|
@@ -110055,7 +110097,9 @@ var parameters47 = {
|
|
|
110055
110097
|
|
|
110056
110098
|
// ../connectors/src/connectors/tiktok-ads/tools/request.ts
|
|
110057
110099
|
import { z as z60 } from "zod";
|
|
110058
|
-
var
|
|
110100
|
+
var BASE_HOST6 = "https://business-api.tiktok.com";
|
|
110101
|
+
var BASE_PATH_SEGMENT6 = "/open_api/v1.3";
|
|
110102
|
+
var BASE_URL27 = `${BASE_HOST6}${BASE_PATH_SEGMENT6}`;
|
|
110059
110103
|
var REQUEST_TIMEOUT_MS45 = 6e4;
|
|
110060
110104
|
var cachedToken23 = null;
|
|
110061
110105
|
async function getProxyToken23(config) {
|
|
@@ -110131,7 +110175,8 @@ The advertiser_id is automatically injected if configured.`,
|
|
|
110131
110175
|
);
|
|
110132
110176
|
try {
|
|
110133
110177
|
const advertiserId = parameters47.advertiserId.tryGetValue(connection2) ?? "";
|
|
110134
|
-
|
|
110178
|
+
const normalizedPath = normalizeRequestPath(path6, BASE_PATH_SEGMENT6);
|
|
110179
|
+
let url = `${BASE_URL27}${normalizedPath}`;
|
|
110135
110180
|
if (method === "GET") {
|
|
110136
110181
|
const params = new URLSearchParams(queryParams ?? {});
|
|
110137
110182
|
if (advertiserId && !params.has("advertiser_id")) {
|
|
@@ -111345,7 +111390,9 @@ var parameters51 = {
|
|
|
111345
111390
|
};
|
|
111346
111391
|
|
|
111347
111392
|
// ../connectors/src/connectors/gmail/tools/request-with-delegation.ts
|
|
111348
|
-
var
|
|
111393
|
+
var BASE_HOST7 = "https://gmail.googleapis.com";
|
|
111394
|
+
var BASE_PATH_SEGMENT7 = "/gmail/v1/users";
|
|
111395
|
+
var BASE_URL28 = `${BASE_HOST7}${BASE_PATH_SEGMENT7}`;
|
|
111349
111396
|
var REQUEST_TIMEOUT_MS49 = 6e4;
|
|
111350
111397
|
function decodeServiceAccount3(keyJsonBase64) {
|
|
111351
111398
|
const decoded = Buffer.from(keyJsonBase64, "base64").toString("utf-8");
|
|
@@ -111430,7 +111477,8 @@ var requestWithDelegationTool2 = new ConnectorTool({
|
|
|
111430
111477
|
serviceAccountEmail
|
|
111431
111478
|
};
|
|
111432
111479
|
}
|
|
111433
|
-
|
|
111480
|
+
const normalizedPath = normalizeRequestPath(path6, BASE_PATH_SEGMENT7);
|
|
111481
|
+
let url = `${BASE_URL28}${normalizedPath}`;
|
|
111434
111482
|
if (queryParams) {
|
|
111435
111483
|
const searchParams = new URLSearchParams(queryParams);
|
|
111436
111484
|
url += `?${searchParams.toString()}`;
|
|
@@ -111501,9 +111549,7 @@ var gmailOnboarding = new ConnectorOnboarding({
|
|
|
111501
111549
|
- \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
|
|
111502
111550
|
- \u300C\u5165\u529B\u3057\u76F4\u3059\u300D: \u30B9\u30C6\u30C3\u30D7 1 \u304B\u3089\u518D\u5B9F\u884C
|
|
111503
111551
|
|
|
111504
|
-
4. \u5168\u30A2\u30C9\u30EC\u30B9\u304C\u6210\u529F\u3057\u305F\u3089 \`finalizeSetup\` \u3092\u547C\u3076\u3002
|
|
111505
|
-
- \`- subject: alice@example.com\`
|
|
111506
|
-
- \`- subject: bob@example.com\`
|
|
111552
|
+
4. \u5168\u30A2\u30C9\u30EC\u30B9\u304C\u6210\u529F\u3057\u305F\u3089 \`finalizeSetup\` \u3092\u547C\u3076\u3002\u691C\u8A3C\u6E08\u307F\u306E\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\uFF08\u30B9\u30C6\u30C3\u30D7 2 \u3067 \`subject\` \u3068\u3057\u3066\u4F7F\u3063\u305F\u5404 \`<email>\`\uFF09\u3092\u3053\u306E\u30B3\u30CD\u30AF\u30B7\u30E7\u30F3\u306E\u30B9\u30B3\u30FC\u30D7\u60C5\u5831\u3068\u3057\u3066\u8A18\u9332\u3059\u308B\u3002
|
|
111507
111553
|
|
|
111508
111554
|
#### \u5236\u7D04
|
|
111509
111555
|
- \u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u4E2D\u306B\u30E1\u30C3\u30BB\u30FC\u30B8\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 \`/me/profile\` \u78BA\u8A8D\u306E\u307F
|
|
@@ -111526,21 +111572,19 @@ var gmailOnboarding = new ConnectorOnboarding({
|
|
|
111526
111572
|
- On "retry" \u2192 re-run step 2 with the previously entered email list
|
|
111527
111573
|
- On "Re-enter" \u2192 re-run step 1
|
|
111528
111574
|
|
|
111529
|
-
4. Once every email succeeds, call \`finalizeSetup\`.
|
|
111530
|
-
- \`- subject: alice@example.com\`
|
|
111531
|
-
- \`- subject: bob@example.com\`
|
|
111575
|
+
4. Once every email succeeds, call \`finalizeSetup\`. Record the verified email addresses (the \`<email>\` values used as \`subject\` in step 2) as this connection's scope info.
|
|
111532
111576
|
|
|
111533
111577
|
#### Constraints
|
|
111534
111578
|
- Do NOT read message bodies during setup. Only the \`/me/profile\` verification is permitted
|
|
111535
111579
|
- Write at most 1 sentence between tool calls`
|
|
111536
111580
|
},
|
|
111537
111581
|
dataOverviewInstructions: {
|
|
111538
|
-
en: `Pick ONE
|
|
111582
|
+
en: `Pick ONE target user and use that user's email as \`subject\` for every call below. Pass \`scopes: ${READONLY_SCOPES2}\` every time.
|
|
111539
111583
|
|
|
111540
111584
|
1. \`method=GET\`, \`path=/me/labels\` to list labels.
|
|
111541
111585
|
2. \`method=GET\`, \`path=/me/messages?maxResults=5\` to fetch recent message IDs.
|
|
111542
111586
|
3. For each message id, \`method=GET\`, \`path=/me/messages/{id}?format=metadata\`.`,
|
|
111543
|
-
ja:
|
|
111587
|
+
ja: `\u4EE3\u7406\u5BFE\u8C61\u306E\u30E6\u30FC\u30B6\u30FC\u3092 1 \u4EBA\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_SCOPES2}\` \u3092\u6E21\u3057\u307E\u3059\u3002
|
|
111544
111588
|
|
|
111545
111589
|
1. \`method=GET\`\u3001\`path=/me/labels\` \u3067\u30E9\u30D9\u30EB\u4E00\u89A7\u3092\u53D6\u5F97
|
|
111546
111590
|
2. \`method=GET\`\u3001\`path=/me/messages?maxResults=5\` \u3067\u6700\u8FD1\u306E\u30E1\u30C3\u30BB\u30FC\u30B8 ID \u3092\u53D6\u5F97
|
|
@@ -111563,7 +111607,7 @@ var gmailConnector = new ConnectorPlugin({
|
|
|
111563
111607
|
systemPrompt: {
|
|
111564
111608
|
en: `### Tools
|
|
111565
111609
|
|
|
111566
|
-
- \`gmail-service-account_request_with_delegation\`: Call the Gmail API on behalf of the specified Workspace user via Domain-wide Delegation. Pass \`subject\` as the target user email; the token will be issued as that user.
|
|
111610
|
+
- \`gmail-service-account_request_with_delegation\`: Call the Gmail API on behalf of the specified Workspace user via Domain-wide Delegation. Pass \`subject\` as the target user's email; the token will be issued as that user. Always pass \`scopes\`.
|
|
111567
111611
|
|
|
111568
111612
|
### OAuth Scopes (pass as \`scopes\` argument)
|
|
111569
111613
|
|
|
@@ -111627,7 +111671,7 @@ import { connection } from "@squadbase/vite-server/connectors/gmail";
|
|
|
111627
111671
|
|
|
111628
111672
|
const gmail = connection("<connectionId>");
|
|
111629
111673
|
|
|
111630
|
-
//
|
|
111674
|
+
// The user to impersonate.
|
|
111631
111675
|
const subject = "alice@example.com";
|
|
111632
111676
|
const READ = ["https://www.googleapis.com/auth/gmail.readonly"];
|
|
111633
111677
|
|
|
@@ -111656,7 +111700,7 @@ for (const msg of messages.messages ?? []) {
|
|
|
111656
111700
|
\`\`\``,
|
|
111657
111701
|
ja: `### \u30C4\u30FC\u30EB
|
|
111658
111702
|
|
|
111659
|
-
- \`gmail-service-account_request_with_delegation\`: \u6307\u5B9A\u3055\u308C\u305F Workspace \u30E6\u30FC\u30B6\u30FC\u306B\u4EE3\u308F\u3063\u3066 Domain-wide Delegation \u7D4C\u7531\u3067 Gmail API \u3092\u547C\u3073\u51FA\u3057\u307E\u3059\u3002\u4EE3\u7406\u5BFE\u8C61\u306E\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
|
|
111703
|
+
- \`gmail-service-account_request_with_delegation\`: \u6307\u5B9A\u3055\u308C\u305F Workspace \u30E6\u30FC\u30B6\u30FC\u306B\u4EE3\u308F\u3063\u3066 Domain-wide Delegation \u7D4C\u7531\u3067 Gmail API \u3092\u547C\u3073\u51FA\u3057\u307E\u3059\u3002\u4EE3\u7406\u5BFE\u8C61\u306E\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\`scopes\` \u3082\u6BCE\u56DE\u6E21\u3057\u3066\u304F\u3060\u3055\u3044\u3002
|
|
111660
111704
|
|
|
111661
111705
|
### OAuth \u30B9\u30B3\u30FC\u30D7 (\`scopes\` \u5F15\u6570\u3067\u6E21\u3059)
|
|
111662
111706
|
|
|
@@ -111720,7 +111764,7 @@ import { connection } from "@squadbase/vite-server/connectors/gmail";
|
|
|
111720
111764
|
|
|
111721
111765
|
const gmail = connection("<connectionId>");
|
|
111722
111766
|
|
|
111723
|
-
// \u4EE3\u7406\u5BFE\u8C61\u30E6\u30FC\u30B6\u30FC
|
|
111767
|
+
// \u4EE3\u7406\u5BFE\u8C61\u30E6\u30FC\u30B6\u30FC
|
|
111724
111768
|
const subject = "alice@example.com";
|
|
111725
111769
|
const READ = ["https://www.googleapis.com/auth/gmail.readonly"];
|
|
111726
111770
|
|
|
@@ -111753,7 +111797,9 @@ for (const msg of messages.messages ?? []) {
|
|
|
111753
111797
|
|
|
111754
111798
|
// ../connectors/src/connectors/gmail-oauth/tools/request.ts
|
|
111755
111799
|
import { z as z65 } from "zod";
|
|
111756
|
-
var
|
|
111800
|
+
var BASE_HOST8 = "https://gmail.googleapis.com";
|
|
111801
|
+
var BASE_PATH_SEGMENT8 = "/gmail/v1/users";
|
|
111802
|
+
var BASE_URL29 = `${BASE_HOST8}${BASE_PATH_SEGMENT8}`;
|
|
111757
111803
|
var REQUEST_TIMEOUT_MS50 = 6e4;
|
|
111758
111804
|
var cachedToken25 = null;
|
|
111759
111805
|
async function getProxyToken25(config) {
|
|
@@ -111829,7 +111875,8 @@ All paths are relative to https://gmail.googleapis.com/gmail/v1/users. Use '/me'
|
|
|
111829
111875
|
`[connector-request] gmail-oauth/${connection2.name}: ${method} ${path6}`
|
|
111830
111876
|
);
|
|
111831
111877
|
try {
|
|
111832
|
-
|
|
111878
|
+
const normalizedPath = normalizeRequestPath(path6, BASE_PATH_SEGMENT8);
|
|
111879
|
+
let url = `${BASE_URL29}${normalizedPath}`;
|
|
111833
111880
|
if (queryParams) {
|
|
111834
111881
|
const searchParams = new URLSearchParams(queryParams);
|
|
111835
111882
|
url += `?${searchParams.toString()}`;
|
|
@@ -112139,7 +112186,9 @@ var parameters53 = {
|
|
|
112139
112186
|
};
|
|
112140
112187
|
|
|
112141
112188
|
// ../connectors/src/connectors/google-audit-log/tools/request-with-delegation.ts
|
|
112142
|
-
var
|
|
112189
|
+
var BASE_HOST9 = "https://admin.googleapis.com";
|
|
112190
|
+
var BASE_PATH_SEGMENT9 = "/admin/reports/v1";
|
|
112191
|
+
var BASE_URL30 = `${BASE_HOST9}${BASE_PATH_SEGMENT9}`;
|
|
112143
112192
|
var REQUEST_TIMEOUT_MS51 = 6e4;
|
|
112144
112193
|
function decodeServiceAccount4(keyJsonBase64) {
|
|
112145
112194
|
const decoded = Buffer.from(keyJsonBase64, "base64").toString("utf-8");
|
|
@@ -112225,7 +112274,8 @@ var requestWithDelegationTool3 = new ConnectorTool({
|
|
|
112225
112274
|
serviceAccountEmail
|
|
112226
112275
|
};
|
|
112227
112276
|
}
|
|
112228
|
-
|
|
112277
|
+
const normalizedPath = normalizeRequestPath(path6, BASE_PATH_SEGMENT9);
|
|
112278
|
+
let url = `${BASE_URL30}${normalizedPath}`;
|
|
112229
112279
|
if (queryParams) {
|
|
112230
112280
|
const searchParams = new URLSearchParams(queryParams);
|
|
112231
112281
|
url += `?${searchParams.toString()}`;
|
|
@@ -112295,8 +112345,7 @@ var googleAuditLogOnboarding = new ConnectorOnboarding({
|
|
|
112295
112345
|
- \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
|
|
112296
112346
|
- \u300C\u5165\u529B\u3057\u76F4\u3059\u300D: \u30B9\u30C6\u30C3\u30D7 1 \u304B\u3089\u518D\u5B9F\u884C
|
|
112297
112347
|
|
|
112298
|
-
4. \u5168\u30A2\u30C9\u30EC\u30B9\u304C\u6210\u529F\u3057\u305F\u3089 \`finalizeSetup\` \u3092\u547C\u3076\u3002
|
|
112299
|
-
- \`- subject: admin@example.com\`
|
|
112348
|
+
4. \u5168\u30A2\u30C9\u30EC\u30B9\u304C\u6210\u529F\u3057\u305F\u3089 \`finalizeSetup\` \u3092\u547C\u3076\u3002\u691C\u8A3C\u6E08\u307F\u306E\u7BA1\u7406\u8005\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3092\u3053\u306E\u30B3\u30CD\u30AF\u30B7\u30E7\u30F3\u306E\u30B9\u30B3\u30FC\u30D7\u60C5\u5831\u3068\u3057\u3066\u8A18\u9332\u3059\u308B\u3002
|
|
112300
112349
|
|
|
112301
112350
|
#### \u5236\u7D04
|
|
112302
112351
|
- \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
|
|
@@ -112320,20 +112369,19 @@ var googleAuditLogOnboarding = new ConnectorOnboarding({
|
|
|
112320
112369
|
- On "retry" \u2192 re-run step 2 with the previously entered email list
|
|
112321
112370
|
- On "Re-enter" \u2192 re-run step 1
|
|
112322
112371
|
|
|
112323
|
-
4. Once every email succeeds, call \`finalizeSetup\`.
|
|
112324
|
-
- \`- subject: admin@example.com\`
|
|
112372
|
+
4. Once every email succeeds, call \`finalizeSetup\`. Record the verified admin email addresses as this connection's scope info.
|
|
112325
112373
|
|
|
112326
112374
|
#### Constraints
|
|
112327
112375
|
- Do NOT read audit log contents during setup. Only the access verification call in step 2 is permitted
|
|
112328
112376
|
- Write at most 1 sentence between tool calls`
|
|
112329
112377
|
},
|
|
112330
112378
|
dataOverviewInstructions: {
|
|
112331
|
-
en: `Pick ONE admin
|
|
112379
|
+
en: `Pick ONE admin user and use that user's email as \`subject\` for every call below. Pass \`scopes: ${READONLY_SCOPES3}\` every time.
|
|
112332
112380
|
|
|
112333
112381
|
1. \`method=GET\`, \`path=/activity/users/all/applications/login\`, \`queryParams={ maxResults: "10" }\` to verify recent login activity events are available.
|
|
112334
112382
|
2. \`method=GET\`, \`path=/activity/users/all/applications/admin\`, \`queryParams={ maxResults: "10" }\` to inspect recent admin console events.
|
|
112335
112383
|
3. \`method=GET\`, \`path=/usage/dates/{YYYY-MM-DD}\` (use yesterday's date) to fetch a customer-level usage report sample.`,
|
|
112336
|
-
ja:
|
|
112384
|
+
ja: `\u5BFE\u8C61\u306E\u7BA1\u7406\u8005\u30E6\u30FC\u30B6\u30FC\u3092 1 \u4EBA\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
|
|
112337
112385
|
|
|
112338
112386
|
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
|
|
112339
112387
|
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
|
|
@@ -112348,15 +112396,15 @@ var googleAuditLogConnector = new ConnectorPlugin({
|
|
|
112348
112396
|
authType: AUTH_TYPES.SERVICE_ACCOUNT,
|
|
112349
112397
|
name: "Google Audit Log",
|
|
112350
112398
|
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.",
|
|
112351
|
-
iconUrl: "https://
|
|
112399
|
+
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/6VWp0bASiAEgiSlwoZOT8A/fb59a3a2d0219db7df0a943b286a5995/admin_2020q4_48dp.png",
|
|
112352
112400
|
parameters: parameters53,
|
|
112353
|
-
releaseFlag: { dev1: true, dev2:
|
|
112401
|
+
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
112354
112402
|
categories: ["observability"],
|
|
112355
112403
|
onboarding: googleAuditLogOnboarding,
|
|
112356
112404
|
systemPrompt: {
|
|
112357
112405
|
en: `### Tools
|
|
112358
112406
|
|
|
112359
|
-
- \`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.
|
|
112407
|
+
- \`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. Always pass \`scopes\`.
|
|
112360
112408
|
|
|
112361
112409
|
### OAuth Scopes (pass as \`scopes\` argument)
|
|
112362
112410
|
|
|
@@ -112414,7 +112462,7 @@ import { connection } from "@squadbase/vite-server/connectors/google-audit-log";
|
|
|
112414
112462
|
|
|
112415
112463
|
const reports = connection("<connectionId>");
|
|
112416
112464
|
|
|
112417
|
-
const SUBJECT = "admin@example.com"; //
|
|
112465
|
+
const SUBJECT = "admin@example.com"; // the admin user to impersonate
|
|
112418
112466
|
const AUDIT = ["https://www.googleapis.com/auth/admin.reports.audit.readonly"];
|
|
112419
112467
|
|
|
112420
112468
|
export default async function handler(c: Context) {
|
|
@@ -112445,7 +112493,7 @@ export default async function handler(c: Context) {
|
|
|
112445
112493
|
\`\`\``,
|
|
112446
112494
|
ja: `### \u30C4\u30FC\u30EB
|
|
112447
112495
|
|
|
112448
|
-
- \`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
|
|
112496
|
+
- \`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\`scopes\` \u3082\u6BCE\u56DE\u6E21\u3057\u3066\u304F\u3060\u3055\u3044\u3002
|
|
112449
112497
|
|
|
112450
112498
|
### OAuth \u30B9\u30B3\u30FC\u30D7 (\`scopes\` \u5F15\u6570\u3067\u6E21\u3059)
|
|
112451
112499
|
|
|
@@ -112502,7 +112550,7 @@ import { connection } from "@squadbase/vite-server/connectors/google-audit-log";
|
|
|
112502
112550
|
|
|
112503
112551
|
const reports = connection("<connectionId>");
|
|
112504
112552
|
|
|
112505
|
-
const SUBJECT = "admin@example.com"; //
|
|
112553
|
+
const SUBJECT = "admin@example.com"; // \u4EE3\u7406\u5BFE\u8C61\u306E\u7BA1\u7406\u8005
|
|
112506
112554
|
const AUDIT = ["https://www.googleapis.com/auth/admin.reports.audit.readonly"];
|
|
112507
112555
|
|
|
112508
112556
|
export default async function handler(c: Context) {
|