@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/cli/index.js
CHANGED
|
@@ -94802,7 +94802,7 @@ var snowflakeOnboarding = new ConnectorOnboarding({
|
|
|
94802
94802
|
8. \u7D50\u679C\u306B\u5FDC\u3058\u3066\u5206\u5C90:
|
|
94803
94803
|
- **\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
|
|
94804
94804
|
- **\u30C6\u30FC\u30D6\u30EB\u304C1\u3064\u3060\u3051**: askUserQuestion \u306F\u4F7F\u308F\u305A\u81EA\u52D5\u63A1\u7528
|
|
94805
|
-
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\
|
|
94805
|
+
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
|
|
94806
94806
|
|
|
94807
94807
|
#### \u5236\u7D04
|
|
94808
94808
|
- 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
|
|
@@ -94825,7 +94825,7 @@ var snowflakeOnboarding = new ConnectorOnboarding({
|
|
|
94825
94825
|
8. Branch based on results:
|
|
94826
94826
|
- **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
|
|
94827
94827
|
- **Exactly 1 table**: Do NOT call askUserQuestion. Auto-select it
|
|
94828
|
-
9. When passing \`projectKnowledge\` to \`finalizeSetup\` in Phase 5, record
|
|
94828
|
+
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.
|
|
94829
94829
|
|
|
94830
94830
|
#### Constraints
|
|
94831
94831
|
- askUserQuestion options requires at least 2 items. If there is only 1 item, do NOT call askUserQuestion \u2014 proceed to the next step directly
|
|
@@ -96135,7 +96135,7 @@ var bigqueryOnboarding = new ConnectorOnboarding({
|
|
|
96135
96135
|
7. \u7D50\u679C\u306B\u5FDC\u3058\u3066\u5206\u5C90:
|
|
96136
96136
|
- **\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
|
|
96137
96137
|
- **\u30C6\u30FC\u30D6\u30EB\u304C1\u3064\u3060\u3051**: askUserQuestion \u306F\u4F7F\u308F\u305A\u81EA\u52D5\u63A1\u7528
|
|
96138
|
-
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
|
|
96138
|
+
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
|
|
96139
96139
|
|
|
96140
96140
|
#### \u5236\u7D04
|
|
96141
96141
|
- **\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
|
|
@@ -96164,7 +96164,7 @@ var bigqueryOnboarding = new ConnectorOnboarding({
|
|
|
96164
96164
|
7. Branch based on results:
|
|
96165
96165
|
- **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
|
|
96166
96166
|
- **Exactly 1 table**: Do NOT call askUserQuestion. Auto-select it
|
|
96167
|
-
8. When passing \`projectKnowledge\` to \`finalizeSetup\` in Phase 5, record each dataset selected in step 5
|
|
96167
|
+
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.
|
|
96168
96168
|
|
|
96169
96169
|
#### Constraints
|
|
96170
96170
|
- **Do NOT read table row data**. Only the metadata queries specified in the steps above are allowed. All other queries are forbidden
|
|
@@ -96592,7 +96592,7 @@ var bigqueryOnboarding2 = new ConnectorOnboarding({
|
|
|
96592
96592
|
7. \u7D50\u679C\u306B\u5FDC\u3058\u3066\u5206\u5C90:
|
|
96593
96593
|
- **\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
|
|
96594
96594
|
- **\u30C6\u30FC\u30D6\u30EB\u304C1\u3064\u3060\u3051**: askUserQuestion \u306F\u4F7F\u308F\u305A\u81EA\u52D5\u63A1\u7528
|
|
96595
|
-
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
|
|
96595
|
+
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
|
|
96596
96596
|
|
|
96597
96597
|
#### \u5236\u7D04
|
|
96598
96598
|
- **\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
|
|
@@ -96621,7 +96621,7 @@ var bigqueryOnboarding2 = new ConnectorOnboarding({
|
|
|
96621
96621
|
7. Branch based on results:
|
|
96622
96622
|
- **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
|
|
96623
96623
|
- **Exactly 1 table**: Do NOT call askUserQuestion. Auto-select it
|
|
96624
|
-
8. When passing \`projectKnowledge\` to \`finalizeSetup\` in Phase 5, record each dataset selected in step 5
|
|
96624
|
+
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.
|
|
96625
96625
|
|
|
96626
96626
|
#### Constraints
|
|
96627
96627
|
- **Do NOT read table row data**. Only the metadata queries specified in the steps above are allowed. All other queries are forbidden
|
|
@@ -97653,7 +97653,7 @@ var awsBillingConnector = new ConnectorPlugin({
|
|
|
97653
97653
|
description: "Connect to AWS Cost Explorer to analyze AWS spend, usage, and forecast costs across services, accounts, and regions.",
|
|
97654
97654
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/6u4IRN1BNS0EVSjsWSnrq1/53721bfc097a5ff04d07c15cc5e80a0d/Amazon_Web_Services-Logo.wine.svg",
|
|
97655
97655
|
parameters: parameters8,
|
|
97656
|
-
releaseFlag: { dev1: true, dev2:
|
|
97656
|
+
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
97657
97657
|
categories: ["finance"],
|
|
97658
97658
|
onboarding: awsBillingOnboarding,
|
|
97659
97659
|
systemPrompt: {
|
|
@@ -100108,6 +100108,16 @@ const realtime = await ga.runRealtimeReport({
|
|
|
100108
100108
|
// ../connectors/src/connectors/google-calendar/tools/request.ts
|
|
100109
100109
|
import { z as z24 } from "zod";
|
|
100110
100110
|
|
|
100111
|
+
// ../connectors/src/lib/normalize-path.ts
|
|
100112
|
+
function normalizeRequestPath(path5, basePathSegment) {
|
|
100113
|
+
let p2 = path5.trim();
|
|
100114
|
+
if (!p2.startsWith("/")) p2 = "/" + p2;
|
|
100115
|
+
if (p2 === basePathSegment || p2.startsWith(basePathSegment + "/")) {
|
|
100116
|
+
p2 = p2.slice(basePathSegment.length) || "/";
|
|
100117
|
+
}
|
|
100118
|
+
return p2;
|
|
100119
|
+
}
|
|
100120
|
+
|
|
100111
100121
|
// ../connectors/src/connectors/google-calendar/parameters.ts
|
|
100112
100122
|
var parameters15 = {
|
|
100113
100123
|
serviceAccountKeyJsonBase64: new ParameterDefinition({
|
|
@@ -100122,7 +100132,9 @@ var parameters15 = {
|
|
|
100122
100132
|
};
|
|
100123
100133
|
|
|
100124
100134
|
// ../connectors/src/connectors/google-calendar/tools/request.ts
|
|
100125
|
-
var
|
|
100135
|
+
var BASE_HOST = "https://www.googleapis.com";
|
|
100136
|
+
var BASE_PATH_SEGMENT = "/calendar/v3";
|
|
100137
|
+
var BASE_URL6 = `${BASE_HOST}${BASE_PATH_SEGMENT}`;
|
|
100126
100138
|
var REQUEST_TIMEOUT_MS14 = 6e4;
|
|
100127
100139
|
function decodeServiceAccount(keyJsonBase64) {
|
|
100128
100140
|
const decoded = Buffer.from(keyJsonBase64, "base64").toString("utf-8");
|
|
@@ -100201,7 +100213,8 @@ var requestTool5 = new ConnectorTool({
|
|
|
100201
100213
|
serviceAccountEmail
|
|
100202
100214
|
};
|
|
100203
100215
|
}
|
|
100204
|
-
|
|
100216
|
+
const normalizedPath = normalizeRequestPath(path5, BASE_PATH_SEGMENT);
|
|
100217
|
+
let url = `${BASE_URL6}${normalizedPath}`;
|
|
100205
100218
|
if (queryParams) {
|
|
100206
100219
|
const searchParams = new URLSearchParams(queryParams);
|
|
100207
100220
|
url += `?${searchParams.toString()}`;
|
|
@@ -100251,7 +100264,9 @@ var requestTool5 = new ConnectorTool({
|
|
|
100251
100264
|
|
|
100252
100265
|
// ../connectors/src/connectors/google-calendar/tools/request-with-delegation.ts
|
|
100253
100266
|
import { z as z25 } from "zod";
|
|
100254
|
-
var
|
|
100267
|
+
var BASE_HOST2 = "https://www.googleapis.com";
|
|
100268
|
+
var BASE_PATH_SEGMENT2 = "/calendar/v3";
|
|
100269
|
+
var BASE_URL7 = `${BASE_HOST2}${BASE_PATH_SEGMENT2}`;
|
|
100255
100270
|
var REQUEST_TIMEOUT_MS15 = 6e4;
|
|
100256
100271
|
function decodeServiceAccount2(keyJsonBase64) {
|
|
100257
100272
|
const decoded = Buffer.from(keyJsonBase64, "base64").toString("utf-8");
|
|
@@ -100336,7 +100351,8 @@ var requestWithDelegationTool = new ConnectorTool({
|
|
|
100336
100351
|
serviceAccountEmail
|
|
100337
100352
|
};
|
|
100338
100353
|
}
|
|
100339
|
-
|
|
100354
|
+
const normalizedPath = normalizeRequestPath(path5, BASE_PATH_SEGMENT2);
|
|
100355
|
+
let url = `${BASE_URL7}${normalizedPath}`;
|
|
100340
100356
|
if (queryParams) {
|
|
100341
100357
|
const searchParams = new URLSearchParams(queryParams);
|
|
100342
100358
|
url += `?${searchParams.toString()}`;
|
|
@@ -100459,9 +100475,7 @@ var googleCalendarOnboarding = new ConnectorOnboarding({
|
|
|
100459
100475
|
|
|
100460
100476
|
## \u30B9\u30C6\u30C3\u30D7 4: Project Knowledge \u306B\u8A18\u9332
|
|
100461
100477
|
|
|
100462
|
-
\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
|
|
100463
|
-
- \u30C9\u30E1\u30A4\u30F3\u5168\u4F53\u306E\u59D4\u4EFB\u7D4C\u7531: \`- calendar: <calendarId> (delegation, subject: <subject>, name: "<\u30AB\u30EC\u30F3\u30C0\u30FC\u540D>")\`
|
|
100464
|
-
- \u30B5\u30FC\u30D3\u30B9\u30A2\u30AB\u30A6\u30F3\u30C8\u7D4C\u8DEF: \`- calendar: <calendarId> (service-account, name: "<\u30AB\u30EC\u30F3\u30C0\u30FC\u540D>")\`
|
|
100478
|
+
\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
|
|
100465
100479
|
|
|
100466
100480
|
## \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
|
|
100467
100481
|
|
|
@@ -100553,9 +100567,7 @@ Discover calendars from each Workspace user and let the user narrow them down.
|
|
|
100553
100567
|
|
|
100554
100568
|
## Step 4: Record in Project Knowledge
|
|
100555
100569
|
|
|
100556
|
-
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
|
|
100557
|
-
- Via Domain-wide Delegation: \`- calendar: <calendarId> (delegation, subject: <subject>, name: "<calendar name>")\`
|
|
100558
|
-
- Via service account: \`- calendar: <calendarId> (service-account, name: "<calendar name>")\`
|
|
100570
|
+
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.
|
|
100559
100571
|
|
|
100560
100572
|
## Step 5: Escalation when zero calendars are selected
|
|
100561
100573
|
|
|
@@ -100581,18 +100593,18 @@ Behavior per selection:
|
|
|
100581
100593
|
- Write at most 1 sentence between tool calls`
|
|
100582
100594
|
},
|
|
100583
100595
|
dataOverviewInstructions: {
|
|
100584
|
-
en: `For each calendar
|
|
100585
|
-
-
|
|
100586
|
-
-
|
|
100596
|
+
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:
|
|
100597
|
+
- Calendars accessed via delegation \u2192 \`${requestWithDelegationToolName}\` with the user's email as \`subject\`
|
|
100598
|
+
- Calendars shared directly with the service account \u2192 \`${requestToolName}\`
|
|
100587
100599
|
|
|
100588
100600
|
Pass \`scopes: ${READONLY_SCOPES}\` for every call.
|
|
100589
100601
|
|
|
100590
100602
|
For each calendar:
|
|
100591
100603
|
1. \`method=GET\`, \`path=/calendars/<id>\` to fetch metadata.
|
|
100592
100604
|
2. \`method=GET\`, \`path=/calendars/<id>/events\`, \`queryParams={ timeMin: <RFC3339 now>, maxResults: "10", singleEvents: "true", orderBy: "startTime" }\`.`,
|
|
100593
|
-
ja:
|
|
100594
|
-
-
|
|
100595
|
-
-
|
|
100605
|
+
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:
|
|
100606
|
+
- 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
|
|
100607
|
+
- service account \u306B\u76F4\u63A5\u5171\u6709\u3055\u308C\u305F\u30AB\u30EC\u30F3\u30C0\u30FC \u2192 \`${requestToolName}\` \u3092\u547C\u3076
|
|
100596
100608
|
|
|
100597
100609
|
\`scopes\` \u306F\u6BCE\u56DE \`${READONLY_SCOPES}\` \u3092\u6E21\u3057\u3066\u304F\u3060\u3055\u3044\u3002
|
|
100598
100610
|
|
|
@@ -100641,10 +100653,10 @@ Per-endpoint scope reference: https://developers.google.com/calendar/api/auth
|
|
|
100641
100653
|
|
|
100642
100654
|
### Choosing the right tool
|
|
100643
100655
|
|
|
100644
|
-
|
|
100656
|
+
Each calendar configured for this connection has an access path. Match the path to the tool:
|
|
100645
100657
|
|
|
100646
|
-
-
|
|
100647
|
-
-
|
|
100658
|
+
- A Workspace user's calendar accessed via Domain-wide Delegation \u2192 use \`request_with_delegation\` and pass that user's email as \`subject\`
|
|
100659
|
+
- A calendar shared directly with the service account \u2192 use \`request\` (no \`subject\`)
|
|
100648
100660
|
|
|
100649
100661
|
### Path conventions
|
|
100650
100662
|
|
|
@@ -100699,14 +100711,14 @@ export default async function handler(c: Context) {
|
|
|
100699
100711
|
orderBy: "startTime",
|
|
100700
100712
|
});
|
|
100701
100713
|
|
|
100702
|
-
//
|
|
100714
|
+
// alice@example.com is accessed via delegation
|
|
100703
100715
|
const aliceRes = await calendar.requestWithDelegation(
|
|
100704
100716
|
\`/calendars/alice@example.com/events?\${qs}\`,
|
|
100705
100717
|
{ subject: "alice@example.com", scopes: READ },
|
|
100706
100718
|
);
|
|
100707
100719
|
const alice = await aliceRes.json();
|
|
100708
100720
|
|
|
100709
|
-
//
|
|
100721
|
+
// team@example.com is shared directly with the service account
|
|
100710
100722
|
const teamRes = await calendar.request(
|
|
100711
100723
|
\`/calendars/team@example.com/events?\${qs}\`,
|
|
100712
100724
|
{ scopes: READ },
|
|
@@ -100739,10 +100751,10 @@ export default async function handler(c: Context) {
|
|
|
100739
100751
|
|
|
100740
100752
|
### \u9069\u5207\u306A\u30C4\u30FC\u30EB\u306E\u9078\u3073\u65B9
|
|
100741
100753
|
|
|
100742
|
-
\u3053\u306E\u30B3\u30CD\u30AF\u30B7\u30E7\u30F3\
|
|
100754
|
+
\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:
|
|
100743
100755
|
|
|
100744
|
-
-
|
|
100745
|
-
-
|
|
100756
|
+
- 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
|
|
100757
|
+
- 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
|
|
100746
100758
|
|
|
100747
100759
|
### \u30D1\u30B9\u306E\u66F8\u304D\u65B9
|
|
100748
100760
|
|
|
@@ -100797,14 +100809,14 @@ export default async function handler(c: Context) {
|
|
|
100797
100809
|
orderBy: "startTime",
|
|
100798
100810
|
});
|
|
100799
100811
|
|
|
100800
|
-
//
|
|
100812
|
+
// alice@example.com \u306F delegation \u7D4C\u8DEF\u3067\u30A2\u30AF\u30BB\u30B9
|
|
100801
100813
|
const aliceRes = await calendar.requestWithDelegation(
|
|
100802
100814
|
\`/calendars/alice@example.com/events?\${qs}\`,
|
|
100803
100815
|
{ subject: "alice@example.com", scopes: READ },
|
|
100804
100816
|
);
|
|
100805
100817
|
const alice = await aliceRes.json();
|
|
100806
100818
|
|
|
100807
|
-
//
|
|
100819
|
+
// team@example.com \u306F SA \u306B\u76F4\u63A5\u5171\u6709
|
|
100808
100820
|
const teamRes = await calendar.request(
|
|
100809
100821
|
\`/calendars/team@example.com/events?\${qs}\`,
|
|
100810
100822
|
{ scopes: READ },
|
|
@@ -100988,7 +101000,9 @@ var parameters16 = {
|
|
|
100988
101000
|
|
|
100989
101001
|
// ../connectors/src/connectors/google-calendar-oauth/tools/request.ts
|
|
100990
101002
|
import { z as z27 } from "zod";
|
|
100991
|
-
var
|
|
101003
|
+
var BASE_HOST3 = "https://www.googleapis.com";
|
|
101004
|
+
var BASE_PATH_SEGMENT3 = "/calendar/v3";
|
|
101005
|
+
var BASE_URL9 = `${BASE_HOST3}${BASE_PATH_SEGMENT3}`;
|
|
100992
101006
|
var REQUEST_TIMEOUT_MS17 = 6e4;
|
|
100993
101007
|
var cachedToken10 = null;
|
|
100994
101008
|
async function getProxyToken10(config) {
|
|
@@ -101065,7 +101079,11 @@ Authentication is handled automatically via OAuth proxy.
|
|
|
101065
101079
|
try {
|
|
101066
101080
|
const calendarId = parameters16.calendarId.tryGetValue(connection) ?? "primary";
|
|
101067
101081
|
const resolvedPath = path5.replace(/\{calendarId\}/g, calendarId);
|
|
101068
|
-
|
|
101082
|
+
const normalizedPath = normalizeRequestPath(
|
|
101083
|
+
resolvedPath,
|
|
101084
|
+
BASE_PATH_SEGMENT3
|
|
101085
|
+
);
|
|
101086
|
+
let url = `${BASE_URL9}${normalizedPath}`;
|
|
101069
101087
|
if (queryParams) {
|
|
101070
101088
|
const searchParams = new URLSearchParams(queryParams);
|
|
101071
101089
|
url += `?${searchParams.toString()}`;
|
|
@@ -101301,7 +101319,9 @@ var parameters17 = {};
|
|
|
101301
101319
|
|
|
101302
101320
|
// ../connectors/src/connectors/google-docs/tools/request.ts
|
|
101303
101321
|
import { z as z28 } from "zod";
|
|
101304
|
-
var
|
|
101322
|
+
var DOCS_BASE_HOST = "https://docs.googleapis.com";
|
|
101323
|
+
var DOCS_BASE_PATH_SEGMENT = "/v1/documents";
|
|
101324
|
+
var DOCS_BASE_URL = `${DOCS_BASE_HOST}${DOCS_BASE_PATH_SEGMENT}`;
|
|
101305
101325
|
var REQUEST_TIMEOUT_MS18 = 6e4;
|
|
101306
101326
|
var cachedToken11 = null;
|
|
101307
101327
|
async function getProxyToken11(config) {
|
|
@@ -101376,7 +101396,11 @@ Authentication is handled automatically via OAuth proxy.`,
|
|
|
101376
101396
|
`[connector-request] google-docs/${connection.name}: ${method} ${path5}`
|
|
101377
101397
|
);
|
|
101378
101398
|
try {
|
|
101379
|
-
|
|
101399
|
+
const normalizedPath = normalizeRequestPath(
|
|
101400
|
+
path5,
|
|
101401
|
+
DOCS_BASE_PATH_SEGMENT
|
|
101402
|
+
);
|
|
101403
|
+
let url = `${DOCS_BASE_URL}${normalizedPath === "/" ? "" : normalizedPath}`;
|
|
101380
101404
|
if (queryParams) {
|
|
101381
101405
|
const searchParams = new URLSearchParams(queryParams);
|
|
101382
101406
|
url += `?${searchParams.toString()}`;
|
|
@@ -101595,7 +101619,9 @@ var parameters18 = {};
|
|
|
101595
101619
|
|
|
101596
101620
|
// ../connectors/src/connectors/google-drive/tools/request.ts
|
|
101597
101621
|
import { z as z29 } from "zod";
|
|
101598
|
-
var
|
|
101622
|
+
var BASE_HOST4 = "https://www.googleapis.com";
|
|
101623
|
+
var BASE_PATH_SEGMENT4 = "/drive/v3";
|
|
101624
|
+
var BASE_URL10 = `${BASE_HOST4}${BASE_PATH_SEGMENT4}`;
|
|
101599
101625
|
var REQUEST_TIMEOUT_MS19 = 6e4;
|
|
101600
101626
|
var cachedToken12 = null;
|
|
101601
101627
|
async function getProxyToken12(config) {
|
|
@@ -101670,7 +101696,8 @@ Authentication is handled automatically via OAuth proxy.`,
|
|
|
101670
101696
|
`[connector-request] google-drive/${connection.name}: ${method} ${path5}`
|
|
101671
101697
|
);
|
|
101672
101698
|
try {
|
|
101673
|
-
|
|
101699
|
+
const normalizedPath = normalizeRequestPath(path5, BASE_PATH_SEGMENT4);
|
|
101700
|
+
let url = `${BASE_URL10}${normalizedPath}`;
|
|
101674
101701
|
if (queryParams) {
|
|
101675
101702
|
const searchParams = new URLSearchParams(queryParams);
|
|
101676
101703
|
url += `?${searchParams.toString()}`;
|
|
@@ -102029,7 +102056,9 @@ await drive.updateFile("fileId123", {}, "newFolderId", "oldFolderId");
|
|
|
102029
102056
|
|
|
102030
102057
|
// ../connectors/src/connectors/google-sheets/tools/request.ts
|
|
102031
102058
|
import { z as z30 } from "zod";
|
|
102032
|
-
var
|
|
102059
|
+
var SHEETS_BASE_HOST = "https://sheets.googleapis.com";
|
|
102060
|
+
var SHEETS_BASE_PATH_SEGMENT = "/v4/spreadsheets";
|
|
102061
|
+
var SHEETS_BASE_URL = `${SHEETS_BASE_HOST}${SHEETS_BASE_PATH_SEGMENT}`;
|
|
102033
102062
|
var REQUEST_TIMEOUT_MS20 = 6e4;
|
|
102034
102063
|
var cachedToken13 = null;
|
|
102035
102064
|
async function getProxyToken13(config) {
|
|
@@ -102109,7 +102138,11 @@ Authentication is handled automatically via OAuth proxy.`,
|
|
|
102109
102138
|
`[connector-request] google-sheets/${connection.name}: ${method} ${path5}`
|
|
102110
102139
|
);
|
|
102111
102140
|
try {
|
|
102112
|
-
|
|
102141
|
+
const normalizedPath = normalizeRequestPath(
|
|
102142
|
+
path5,
|
|
102143
|
+
SHEETS_BASE_PATH_SEGMENT
|
|
102144
|
+
);
|
|
102145
|
+
let url = `${SHEETS_BASE_URL}${normalizedPath === "/" ? "" : normalizedPath}`;
|
|
102113
102146
|
if (queryParams) {
|
|
102114
102147
|
const searchParams = new URLSearchParams(queryParams);
|
|
102115
102148
|
url += `?${searchParams.toString()}`;
|
|
@@ -102400,7 +102433,9 @@ var parameters20 = {};
|
|
|
102400
102433
|
|
|
102401
102434
|
// ../connectors/src/connectors/google-slides/tools/request.ts
|
|
102402
102435
|
import { z as z31 } from "zod";
|
|
102403
|
-
var
|
|
102436
|
+
var SLIDES_BASE_HOST = "https://slides.googleapis.com";
|
|
102437
|
+
var SLIDES_BASE_PATH_SEGMENT = "/v1/presentations";
|
|
102438
|
+
var SLIDES_BASE_URL = `${SLIDES_BASE_HOST}${SLIDES_BASE_PATH_SEGMENT}`;
|
|
102404
102439
|
var REQUEST_TIMEOUT_MS21 = 6e4;
|
|
102405
102440
|
var cachedToken14 = null;
|
|
102406
102441
|
async function getProxyToken14(config) {
|
|
@@ -102475,7 +102510,11 @@ Authentication is handled automatically via OAuth proxy.`,
|
|
|
102475
102510
|
`[connector-request] google-slides/${connection.name}: ${method} ${path5}`
|
|
102476
102511
|
);
|
|
102477
102512
|
try {
|
|
102478
|
-
|
|
102513
|
+
const normalizedPath = normalizeRequestPath(
|
|
102514
|
+
path5,
|
|
102515
|
+
SLIDES_BASE_PATH_SEGMENT
|
|
102516
|
+
);
|
|
102517
|
+
let url = `${SLIDES_BASE_URL}${normalizedPath === "/" ? "" : normalizedPath}`;
|
|
102479
102518
|
if (queryParams) {
|
|
102480
102519
|
const searchParams = new URLSearchParams(queryParams);
|
|
102481
102520
|
url += `?${searchParams.toString()}`;
|
|
@@ -107641,7 +107680,9 @@ var parameters40 = {
|
|
|
107641
107680
|
|
|
107642
107681
|
// ../connectors/src/connectors/asana/tools/request.ts
|
|
107643
107682
|
import { z as z48 } from "zod";
|
|
107644
|
-
var
|
|
107683
|
+
var BASE_HOST5 = "https://app.asana.com";
|
|
107684
|
+
var BASE_PATH_SEGMENT5 = "/api/1.0";
|
|
107685
|
+
var BASE_URL19 = `${BASE_HOST5}${BASE_PATH_SEGMENT5}`;
|
|
107645
107686
|
var REQUEST_TIMEOUT_MS37 = 6e4;
|
|
107646
107687
|
var inputSchema48 = z48.object({
|
|
107647
107688
|
toolUseIntent: z48.string().optional().describe(
|
|
@@ -107705,7 +107746,8 @@ Pagination: Use limit (1-100) and offset query parameters. The response includes
|
|
|
107705
107746
|
);
|
|
107706
107747
|
try {
|
|
107707
107748
|
const token = parameters40.personalAccessToken.getValue(connection);
|
|
107708
|
-
const
|
|
107749
|
+
const normalizedPath = normalizeRequestPath(path5, BASE_PATH_SEGMENT5);
|
|
107750
|
+
const url = `${BASE_URL19}${normalizedPath}`;
|
|
107709
107751
|
const controller = new AbortController();
|
|
107710
107752
|
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS37);
|
|
107711
107753
|
try {
|
|
@@ -110120,7 +110162,9 @@ var parameters47 = {
|
|
|
110120
110162
|
|
|
110121
110163
|
// ../connectors/src/connectors/tiktok-ads/tools/request.ts
|
|
110122
110164
|
import { z as z60 } from "zod";
|
|
110123
|
-
var
|
|
110165
|
+
var BASE_HOST6 = "https://business-api.tiktok.com";
|
|
110166
|
+
var BASE_PATH_SEGMENT6 = "/open_api/v1.3";
|
|
110167
|
+
var BASE_URL27 = `${BASE_HOST6}${BASE_PATH_SEGMENT6}`;
|
|
110124
110168
|
var REQUEST_TIMEOUT_MS45 = 6e4;
|
|
110125
110169
|
var cachedToken23 = null;
|
|
110126
110170
|
async function getProxyToken23(config) {
|
|
@@ -110196,7 +110240,8 @@ The advertiser_id is automatically injected if configured.`,
|
|
|
110196
110240
|
);
|
|
110197
110241
|
try {
|
|
110198
110242
|
const advertiserId = parameters47.advertiserId.tryGetValue(connection) ?? "";
|
|
110199
|
-
|
|
110243
|
+
const normalizedPath = normalizeRequestPath(path5, BASE_PATH_SEGMENT6);
|
|
110244
|
+
let url = `${BASE_URL27}${normalizedPath}`;
|
|
110200
110245
|
if (method === "GET") {
|
|
110201
110246
|
const params = new URLSearchParams(queryParams ?? {});
|
|
110202
110247
|
if (advertiserId && !params.has("advertiser_id")) {
|
|
@@ -111410,7 +111455,9 @@ var parameters51 = {
|
|
|
111410
111455
|
};
|
|
111411
111456
|
|
|
111412
111457
|
// ../connectors/src/connectors/gmail/tools/request-with-delegation.ts
|
|
111413
|
-
var
|
|
111458
|
+
var BASE_HOST7 = "https://gmail.googleapis.com";
|
|
111459
|
+
var BASE_PATH_SEGMENT7 = "/gmail/v1/users";
|
|
111460
|
+
var BASE_URL28 = `${BASE_HOST7}${BASE_PATH_SEGMENT7}`;
|
|
111414
111461
|
var REQUEST_TIMEOUT_MS49 = 6e4;
|
|
111415
111462
|
function decodeServiceAccount3(keyJsonBase64) {
|
|
111416
111463
|
const decoded = Buffer.from(keyJsonBase64, "base64").toString("utf-8");
|
|
@@ -111495,7 +111542,8 @@ var requestWithDelegationTool2 = new ConnectorTool({
|
|
|
111495
111542
|
serviceAccountEmail
|
|
111496
111543
|
};
|
|
111497
111544
|
}
|
|
111498
|
-
|
|
111545
|
+
const normalizedPath = normalizeRequestPath(path5, BASE_PATH_SEGMENT7);
|
|
111546
|
+
let url = `${BASE_URL28}${normalizedPath}`;
|
|
111499
111547
|
if (queryParams) {
|
|
111500
111548
|
const searchParams = new URLSearchParams(queryParams);
|
|
111501
111549
|
url += `?${searchParams.toString()}`;
|
|
@@ -111566,9 +111614,7 @@ var gmailOnboarding = new ConnectorOnboarding({
|
|
|
111566
111614
|
- \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
|
|
111567
111615
|
- \u300C\u5165\u529B\u3057\u76F4\u3059\u300D: \u30B9\u30C6\u30C3\u30D7 1 \u304B\u3089\u518D\u5B9F\u884C
|
|
111568
111616
|
|
|
111569
|
-
4. \u5168\u30A2\u30C9\u30EC\u30B9\u304C\u6210\u529F\u3057\u305F\u3089 \`finalizeSetup\` \u3092\u547C\u3076\u3002
|
|
111570
|
-
- \`- subject: alice@example.com\`
|
|
111571
|
-
- \`- subject: bob@example.com\`
|
|
111617
|
+
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
|
|
111572
111618
|
|
|
111573
111619
|
#### \u5236\u7D04
|
|
111574
111620
|
- \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
|
|
@@ -111591,21 +111637,19 @@ var gmailOnboarding = new ConnectorOnboarding({
|
|
|
111591
111637
|
- On "retry" \u2192 re-run step 2 with the previously entered email list
|
|
111592
111638
|
- On "Re-enter" \u2192 re-run step 1
|
|
111593
111639
|
|
|
111594
|
-
4. Once every email succeeds, call \`finalizeSetup\`.
|
|
111595
|
-
- \`- subject: alice@example.com\`
|
|
111596
|
-
- \`- subject: bob@example.com\`
|
|
111640
|
+
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.
|
|
111597
111641
|
|
|
111598
111642
|
#### Constraints
|
|
111599
111643
|
- Do NOT read message bodies during setup. Only the \`/me/profile\` verification is permitted
|
|
111600
111644
|
- Write at most 1 sentence between tool calls`
|
|
111601
111645
|
},
|
|
111602
111646
|
dataOverviewInstructions: {
|
|
111603
|
-
en: `Pick ONE
|
|
111647
|
+
en: `Pick ONE target user and use that user's email as \`subject\` for every call below. Pass \`scopes: ${READONLY_SCOPES2}\` every time.
|
|
111604
111648
|
|
|
111605
111649
|
1. \`method=GET\`, \`path=/me/labels\` to list labels.
|
|
111606
111650
|
2. \`method=GET\`, \`path=/me/messages?maxResults=5\` to fetch recent message IDs.
|
|
111607
111651
|
3. For each message id, \`method=GET\`, \`path=/me/messages/{id}?format=metadata\`.`,
|
|
111608
|
-
ja:
|
|
111652
|
+
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
|
|
111609
111653
|
|
|
111610
111654
|
1. \`method=GET\`\u3001\`path=/me/labels\` \u3067\u30E9\u30D9\u30EB\u4E00\u89A7\u3092\u53D6\u5F97
|
|
111611
111655
|
2. \`method=GET\`\u3001\`path=/me/messages?maxResults=5\` \u3067\u6700\u8FD1\u306E\u30E1\u30C3\u30BB\u30FC\u30B8 ID \u3092\u53D6\u5F97
|
|
@@ -111628,7 +111672,7 @@ var gmailConnector = new ConnectorPlugin({
|
|
|
111628
111672
|
systemPrompt: {
|
|
111629
111673
|
en: `### Tools
|
|
111630
111674
|
|
|
111631
|
-
- \`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.
|
|
111675
|
+
- \`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\`.
|
|
111632
111676
|
|
|
111633
111677
|
### OAuth Scopes (pass as \`scopes\` argument)
|
|
111634
111678
|
|
|
@@ -111692,7 +111736,7 @@ import { connection } from "@squadbase/vite-server/connectors/gmail";
|
|
|
111692
111736
|
|
|
111693
111737
|
const gmail = connection("<connectionId>");
|
|
111694
111738
|
|
|
111695
|
-
//
|
|
111739
|
+
// The user to impersonate.
|
|
111696
111740
|
const subject = "alice@example.com";
|
|
111697
111741
|
const READ = ["https://www.googleapis.com/auth/gmail.readonly"];
|
|
111698
111742
|
|
|
@@ -111721,7 +111765,7 @@ for (const msg of messages.messages ?? []) {
|
|
|
111721
111765
|
\`\`\``,
|
|
111722
111766
|
ja: `### \u30C4\u30FC\u30EB
|
|
111723
111767
|
|
|
111724
|
-
- \`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
|
|
111768
|
+
- \`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
|
|
111725
111769
|
|
|
111726
111770
|
### OAuth \u30B9\u30B3\u30FC\u30D7 (\`scopes\` \u5F15\u6570\u3067\u6E21\u3059)
|
|
111727
111771
|
|
|
@@ -111785,7 +111829,7 @@ import { connection } from "@squadbase/vite-server/connectors/gmail";
|
|
|
111785
111829
|
|
|
111786
111830
|
const gmail = connection("<connectionId>");
|
|
111787
111831
|
|
|
111788
|
-
// \u4EE3\u7406\u5BFE\u8C61\u30E6\u30FC\u30B6\u30FC
|
|
111832
|
+
// \u4EE3\u7406\u5BFE\u8C61\u30E6\u30FC\u30B6\u30FC
|
|
111789
111833
|
const subject = "alice@example.com";
|
|
111790
111834
|
const READ = ["https://www.googleapis.com/auth/gmail.readonly"];
|
|
111791
111835
|
|
|
@@ -111818,7 +111862,9 @@ for (const msg of messages.messages ?? []) {
|
|
|
111818
111862
|
|
|
111819
111863
|
// ../connectors/src/connectors/gmail-oauth/tools/request.ts
|
|
111820
111864
|
import { z as z65 } from "zod";
|
|
111821
|
-
var
|
|
111865
|
+
var BASE_HOST8 = "https://gmail.googleapis.com";
|
|
111866
|
+
var BASE_PATH_SEGMENT8 = "/gmail/v1/users";
|
|
111867
|
+
var BASE_URL29 = `${BASE_HOST8}${BASE_PATH_SEGMENT8}`;
|
|
111822
111868
|
var REQUEST_TIMEOUT_MS50 = 6e4;
|
|
111823
111869
|
var cachedToken25 = null;
|
|
111824
111870
|
async function getProxyToken25(config) {
|
|
@@ -111894,7 +111940,8 @@ All paths are relative to https://gmail.googleapis.com/gmail/v1/users. Use '/me'
|
|
|
111894
111940
|
`[connector-request] gmail-oauth/${connection.name}: ${method} ${path5}`
|
|
111895
111941
|
);
|
|
111896
111942
|
try {
|
|
111897
|
-
|
|
111943
|
+
const normalizedPath = normalizeRequestPath(path5, BASE_PATH_SEGMENT8);
|
|
111944
|
+
let url = `${BASE_URL29}${normalizedPath}`;
|
|
111898
111945
|
if (queryParams) {
|
|
111899
111946
|
const searchParams = new URLSearchParams(queryParams);
|
|
111900
111947
|
url += `?${searchParams.toString()}`;
|
|
@@ -112204,7 +112251,9 @@ var parameters53 = {
|
|
|
112204
112251
|
};
|
|
112205
112252
|
|
|
112206
112253
|
// ../connectors/src/connectors/google-audit-log/tools/request-with-delegation.ts
|
|
112207
|
-
var
|
|
112254
|
+
var BASE_HOST9 = "https://admin.googleapis.com";
|
|
112255
|
+
var BASE_PATH_SEGMENT9 = "/admin/reports/v1";
|
|
112256
|
+
var BASE_URL30 = `${BASE_HOST9}${BASE_PATH_SEGMENT9}`;
|
|
112208
112257
|
var REQUEST_TIMEOUT_MS51 = 6e4;
|
|
112209
112258
|
function decodeServiceAccount4(keyJsonBase64) {
|
|
112210
112259
|
const decoded = Buffer.from(keyJsonBase64, "base64").toString("utf-8");
|
|
@@ -112290,7 +112339,8 @@ var requestWithDelegationTool3 = new ConnectorTool({
|
|
|
112290
112339
|
serviceAccountEmail
|
|
112291
112340
|
};
|
|
112292
112341
|
}
|
|
112293
|
-
|
|
112342
|
+
const normalizedPath = normalizeRequestPath(path5, BASE_PATH_SEGMENT9);
|
|
112343
|
+
let url = `${BASE_URL30}${normalizedPath}`;
|
|
112294
112344
|
if (queryParams) {
|
|
112295
112345
|
const searchParams = new URLSearchParams(queryParams);
|
|
112296
112346
|
url += `?${searchParams.toString()}`;
|
|
@@ -112360,8 +112410,7 @@ var googleAuditLogOnboarding = new ConnectorOnboarding({
|
|
|
112360
112410
|
- \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
|
|
112361
112411
|
- \u300C\u5165\u529B\u3057\u76F4\u3059\u300D: \u30B9\u30C6\u30C3\u30D7 1 \u304B\u3089\u518D\u5B9F\u884C
|
|
112362
112412
|
|
|
112363
|
-
4. \u5168\u30A2\u30C9\u30EC\u30B9\u304C\u6210\u529F\u3057\u305F\u3089 \`finalizeSetup\` \u3092\u547C\u3076\u3002
|
|
112364
|
-
- \`- subject: admin@example.com\`
|
|
112413
|
+
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
|
|
112365
112414
|
|
|
112366
112415
|
#### \u5236\u7D04
|
|
112367
112416
|
- \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
|
|
@@ -112385,20 +112434,19 @@ var googleAuditLogOnboarding = new ConnectorOnboarding({
|
|
|
112385
112434
|
- On "retry" \u2192 re-run step 2 with the previously entered email list
|
|
112386
112435
|
- On "Re-enter" \u2192 re-run step 1
|
|
112387
112436
|
|
|
112388
|
-
4. Once every email succeeds, call \`finalizeSetup\`.
|
|
112389
|
-
- \`- subject: admin@example.com\`
|
|
112437
|
+
4. Once every email succeeds, call \`finalizeSetup\`. Record the verified admin email addresses as this connection's scope info.
|
|
112390
112438
|
|
|
112391
112439
|
#### Constraints
|
|
112392
112440
|
- Do NOT read audit log contents during setup. Only the access verification call in step 2 is permitted
|
|
112393
112441
|
- Write at most 1 sentence between tool calls`
|
|
112394
112442
|
},
|
|
112395
112443
|
dataOverviewInstructions: {
|
|
112396
|
-
en: `Pick ONE admin
|
|
112444
|
+
en: `Pick ONE admin user and use that user's email as \`subject\` for every call below. Pass \`scopes: ${READONLY_SCOPES3}\` every time.
|
|
112397
112445
|
|
|
112398
112446
|
1. \`method=GET\`, \`path=/activity/users/all/applications/login\`, \`queryParams={ maxResults: "10" }\` to verify recent login activity events are available.
|
|
112399
112447
|
2. \`method=GET\`, \`path=/activity/users/all/applications/admin\`, \`queryParams={ maxResults: "10" }\` to inspect recent admin console events.
|
|
112400
112448
|
3. \`method=GET\`, \`path=/usage/dates/{YYYY-MM-DD}\` (use yesterday's date) to fetch a customer-level usage report sample.`,
|
|
112401
|
-
ja:
|
|
112449
|
+
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
|
|
112402
112450
|
|
|
112403
112451
|
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
|
|
112404
112452
|
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
|
|
@@ -112413,15 +112461,15 @@ var googleAuditLogConnector = new ConnectorPlugin({
|
|
|
112413
112461
|
authType: AUTH_TYPES.SERVICE_ACCOUNT,
|
|
112414
112462
|
name: "Google Audit Log",
|
|
112415
112463
|
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.",
|
|
112416
|
-
iconUrl: "https://
|
|
112464
|
+
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/6VWp0bASiAEgiSlwoZOT8A/fb59a3a2d0219db7df0a943b286a5995/admin_2020q4_48dp.png",
|
|
112417
112465
|
parameters: parameters53,
|
|
112418
|
-
releaseFlag: { dev1: true, dev2:
|
|
112466
|
+
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
112419
112467
|
categories: ["observability"],
|
|
112420
112468
|
onboarding: googleAuditLogOnboarding,
|
|
112421
112469
|
systemPrompt: {
|
|
112422
112470
|
en: `### Tools
|
|
112423
112471
|
|
|
112424
|
-
- \`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.
|
|
112472
|
+
- \`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\`.
|
|
112425
112473
|
|
|
112426
112474
|
### OAuth Scopes (pass as \`scopes\` argument)
|
|
112427
112475
|
|
|
@@ -112479,7 +112527,7 @@ import { connection } from "@squadbase/vite-server/connectors/google-audit-log";
|
|
|
112479
112527
|
|
|
112480
112528
|
const reports = connection("<connectionId>");
|
|
112481
112529
|
|
|
112482
|
-
const SUBJECT = "admin@example.com"; //
|
|
112530
|
+
const SUBJECT = "admin@example.com"; // the admin user to impersonate
|
|
112483
112531
|
const AUDIT = ["https://www.googleapis.com/auth/admin.reports.audit.readonly"];
|
|
112484
112532
|
|
|
112485
112533
|
export default async function handler(c: Context) {
|
|
@@ -112510,7 +112558,7 @@ export default async function handler(c: Context) {
|
|
|
112510
112558
|
\`\`\``,
|
|
112511
112559
|
ja: `### \u30C4\u30FC\u30EB
|
|
112512
112560
|
|
|
112513
|
-
- \`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
|
|
112561
|
+
- \`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
|
|
112514
112562
|
|
|
112515
112563
|
### OAuth \u30B9\u30B3\u30FC\u30D7 (\`scopes\` \u5F15\u6570\u3067\u6E21\u3059)
|
|
112516
112564
|
|
|
@@ -112567,7 +112615,7 @@ import { connection } from "@squadbase/vite-server/connectors/google-audit-log";
|
|
|
112567
112615
|
|
|
112568
112616
|
const reports = connection("<connectionId>");
|
|
112569
112617
|
|
|
112570
|
-
const SUBJECT = "admin@example.com"; //
|
|
112618
|
+
const SUBJECT = "admin@example.com"; // \u4EE3\u7406\u5BFE\u8C61\u306E\u7BA1\u7406\u8005
|
|
112571
112619
|
const AUDIT = ["https://www.googleapis.com/auth/admin.reports.audit.readonly"];
|
|
112572
112620
|
|
|
112573
112621
|
export default async function handler(c: Context) {
|