@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/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\u3092 \`#### \u30B9\u30B3\u30FC\u30D7\` \u7BC0\u306B \`- database: <\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u540D>\` \u3068\u3057\u3066\u3001\u30B9\u30C6\u30C3\u30D75\u3067\u9078\u629E\u3057\u305F\u30B9\u30AD\u30FC\u30DE\u3092 \`- schema: <\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u540D>.<\u30B9\u30AD\u30FC\u30DE\u540D>\` \u3068\u3057\u3066\u8A18\u9332\u3059\u308B\u3053\u3068\uFF08\u8907\u6570\u9078\u629E\u3057\u305F\u5834\u5408\u306F\u8907\u6570\u884C\u3067\u5217\u6319\u3059\u308B\uFF09\u3002\u300C\u5168\u30C6\u30FC\u30D6\u30EB\u300D\u304C\u9078\u3070\u308C\u305F\u30B9\u30AD\u30FC\u30DE\u306B\u3064\u3044\u3066\u306F \`#### \u30C6\u30FC\u30D6\u30EB\` \u3067\u500B\u5225\u5217\u6319\u3067\u304D\u306A\u3044\u305F\u3081\u3001\u30B9\u30B3\u30FC\u30D7\u7BC0\u306B \`- allTables: <\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u540D>.<\u30B9\u30AD\u30FC\u30DE\u540D>.*\` \u306E\u5F62\u3067\u30EF\u30A4\u30EB\u30C9\u30AB\u30FC\u30C9\u7BC4\u56F2\u3092\u660E\u793A\u7684\u306B\u8A18\u9332\u3059\u308B\u3002\u500B\u5225\u306B\u9078\u629E\u3055\u308C\u305F\u30C6\u30FC\u30D6\u30EB\u306F \`#### \u30C6\u30FC\u30D6\u30EB\` \u7BC0\u3067\u5217\u6319\u3055\u308C\u308B\u305F\u3081\u3001\u30B9\u30B3\u30FC\u30D7\u7BC0\u306B\u306F\u66F8\u304B\u306A\u3044\u3002
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 each database selected in step 2 under the \`#### \u30B9\u30B3\u30FC\u30D7\` subsection as \`- database: <database_name>\` and each schema selected in step 5 as \`- schema: <database_name>.<schema_name>\` (one bullet per selection if multiple were chosen). For schemas where "all tables" was chosen, the wildcard range cannot be expressed by the per-table enumeration under \`#### \u30C6\u30FC\u30D6\u30EB\`, so record it in the scope section as \`- allTables: <database_name>.<schema_name>.*\`. Individually selected tables are listed under \`#### \u30C6\u30FC\u30D6\u30EB\`, so do NOT repeat them in the scope section.
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 \`#### \u30B9\u30B3\u30FC\u30D7\` \u7BC0\u306B \`- dataset: <\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u540D>\` \u3068\u3057\u3066\u8A18\u9332\u3059\u308B\u3053\u3068\uFF08\u8907\u6570\u9078\u629E\u3057\u305F\u5834\u5408\u306F\u8907\u6570\u884C\u3067\u5217\u6319\u3059\u308B\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\u9078\u629E\u3057\u305F\u30C6\u30FC\u30D6\u30EB\u306F \`#### \u30C6\u30FC\u30D6\u30EB\` \u7BC0\u3067\u5217\u6319\u3055\u308C\u308B\u305F\u3081\u3001\u30B9\u30B3\u30FC\u30D7\u7BC0\u306B \`tables\` \u306F\u66F8\u304B\u306A\u3044\u3002
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 under the \`#### \u30B9\u30B3\u30FC\u30D7\` subsection as \`- dataset: <dataset_name>\` (one bullet per dataset if multiple were chosen). Use the form \`bigquery-public-data.{dataset}\` for public datasets. Selected tables are listed under \`#### \u30C6\u30FC\u30D6\u30EB\`, so do NOT add a \`tables:\` entry to the scope section.
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 \`#### \u30B9\u30B3\u30FC\u30D7\` \u7BC0\u306B \`- dataset: <\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u540D>\` \u3068\u3057\u3066\u8A18\u9332\u3059\u308B\u3053\u3068\uFF08\u8907\u6570\u9078\u629E\u3057\u305F\u5834\u5408\u306F\u8907\u6570\u884C\u3067\u5217\u6319\u3059\u308B\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\u9078\u629E\u3057\u305F\u30C6\u30FC\u30D6\u30EB\u306F \`#### \u30C6\u30FC\u30D6\u30EB\` \u7BC0\u3067\u5217\u6319\u3055\u308C\u308B\u305F\u3081\u3001\u30B9\u30B3\u30FC\u30D7\u7BC0\u306B \`tables\` \u306F\u66F8\u304B\u306A\u3044\u3002
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 under the \`#### \u30B9\u30B3\u30FC\u30D7\` subsection as \`- dataset: <dataset_name>\` (one bullet per dataset if multiple were chosen). Use the form \`bigquery-public-data.{dataset}\` for public datasets. Selected tables are listed under \`#### \u30C6\u30FC\u30D6\u30EB\`, so do NOT add a \`tables:\` entry to the scope section.
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: false, prod: false },
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 BASE_URL6 = "https://www.googleapis.com/calendar/v3";
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
- let url = `${BASE_URL6}${path6.startsWith("/") ? "" : "/"}${path6}`;
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 BASE_URL7 = "https://www.googleapis.com/calendar/v3";
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
- let url = `${BASE_URL7}${path6.startsWith("/") ? "" : "/"}${path6}`;
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\`projectKnowledge\` \u306E \`#### \u30B9\u30B3\u30FC\u30D7\` \u7BC0\u306B\u5404\u30AB\u30EC\u30F3\u30C0\u30FC\u3092 1 \u884C\u305A\u3064\u5217\u6319\u3059\u308B:
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\`. Under \`#### \u30B9\u30B3\u30FC\u30D7\` in \`projectKnowledge\`, list each calendar on its own line:
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 recorded under \`#### \u30B9\u30B3\u30FC\u30D7\`, fetch metadata and a small sample of upcoming events. The annotation on each line tells you which tool to use:
100520
- - \`(delegation, subject: <email>, ...)\` \u2192 \`${requestWithDelegationToolName}\` with \`subject: <email>\`
100521
- - \`(service-account, ...)\` \u2192 \`${requestToolName}\`
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: `\`#### \u30B9\u30B3\u30FC\u30D7\` \u306E\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\u5404\u884C\u306E\u6CE8\u91C8\u3067\u4F7F\u7528\u3059\u308B\u30C4\u30FC\u30EB\u3092\u9078\u3073\u307E\u3059:
100529
- - \`(delegation, subject: <email>, ...)\` \u2192 \`${requestWithDelegationToolName}\` \u3092 \`subject: <email>\` \u4ED8\u304D\u3067\u547C\u3076
100530
- - \`(service-account, ...)\` \u2192 \`${requestToolName}\` \u3092\u547C\u3076
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
- Read \`#### \u30B9\u30B3\u30FC\u30D7\` in the project knowledge for this connection. Each calendar appears as a \`- calendar: <id> (...)\` line whose annotation tells you which tool to use:
100591
+ Each calendar configured for this connection has an access path. Match the path to the tool:
100580
100592
 
100581
- - \`(delegation, subject: <email>, name: "...")\` \u2192 use \`request_with_delegation\` and pass \`subject: <email>\`
100582
- - \`(service-account, name: "...")\` \u2192 use \`request\` (no \`subject\`)
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
- // Project knowledge says: alice@example.com is reachable via delegation
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
- // Project knowledge says: team@example.com is shared with the SA
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\u306E Project Knowledge \u306E \`#### \u30B9\u30B3\u30FC\u30D7\` \u3092\u8AAD\u3093\u3067\u304F\u3060\u3055\u3044\u3002\u5404\u30AB\u30EC\u30F3\u30C0\u30FC\u306F \`- calendar: <id> (...)\` \u5F62\u5F0F\u306E\u884C\u3068\u3057\u3066\u8A18\u9332\u3055\u308C\u3066\u304A\u308A\u3001\u6CE8\u91C8\u304C\u3069\u3061\u3089\u306E\u30C4\u30FC\u30EB\u3092\u4F7F\u3046\u3079\u304D\u304B\u3092\u793A\u3057\u307E\u3059:
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
- - \`(delegation, subject: <email>, name: "...")\` \u2192 \`request_with_delegation\` \u3092\u4F7F\u3044\u3001\`subject: <email>\` \u3092\u6E21\u3059
100680
- - \`(service-account, name: "...")\` \u2192 \`request\` \u3092\u4F7F\u3046\uFF08\`subject\` \u4E0D\u8981\uFF09
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
- // Project Knowledge: alice@example.com \u306F delegation \u7D4C\u8DEF\u3067\u30A2\u30AF\u30BB\u30B9\u53EF\u80FD
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
- // Project Knowledge: team@example.com \u306F SA \u306B\u5171\u6709\u3055\u308C\u3066\u3044\u308B
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 BASE_URL9 = "https://www.googleapis.com/calendar/v3";
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
- let url = `${BASE_URL9}${resolvedPath.startsWith("/") ? "" : "/"}${resolvedPath}`;
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 DOCS_BASE_URL = "https://docs.googleapis.com/v1/documents";
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
- let url = `${DOCS_BASE_URL}${path6 === "" || path6.startsWith("/") ? "" : "/"}${path6}`;
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 BASE_URL10 = "https://www.googleapis.com/drive/v3";
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
- let url = `${BASE_URL10}${path6.startsWith("/") ? "" : "/"}${path6}`;
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 SHEETS_BASE_URL = "https://sheets.googleapis.com/v4/spreadsheets";
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
- let url = `${SHEETS_BASE_URL}${path6 === "" || path6.startsWith("/") ? "" : "/"}${path6}`;
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 SLIDES_BASE_URL = "https://slides.googleapis.com/v1/presentations";
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
- let url = `${SLIDES_BASE_URL}${path6 === "" || path6.startsWith("/") ? "" : "/"}${path6}`;
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 BASE_URL19 = "https://app.asana.com/api/1.0";
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 url = `${BASE_URL19}${path6}`;
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 BASE_URL27 = "https://business-api.tiktok.com/open_api/v1.3/";
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
- let url = `${BASE_URL27}${path6}`;
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 BASE_URL28 = "https://gmail.googleapis.com/gmail/v1/users";
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
- let url = `${BASE_URL28}${path6.startsWith("/") ? "" : "/"}${path6}`;
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\`projectKnowledge\` \u306E \`#### \u30B9\u30B3\u30FC\u30D7\` \u7BC0\u306B\u5404\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3092 1 \u884C\u305A\u3064\u5217\u6319\u3059\u308B:
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\`. Under \`#### \u30B9\u30B3\u30FC\u30D7\` in \`projectKnowledge\`, list each email on its own line:
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 email from \`#### \u30B9\u30B3\u30FC\u30D7\` (a \`- subject: <email>\` line) and use it as \`subject\` for every call below. Pass \`scopes: ${READONLY_SCOPES2}\` every time.
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: `\`#### \u30B9\u30B3\u30FC\u30D7\` \u306E \`- subject: <email>\` \u884C\u304B\u3089 1 \u3064\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
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. The set of users this connection works with is recorded in the project knowledge under "#### \u30B9\u30B3\u30FC\u30D7" as \`- subject: <email>\` lines \u2014 read those and pick a subject before calling. Always pass \`scopes\`.
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
- // Pick the impersonated user from project knowledge ("#### \u30B9\u30B3\u30FC\u30D7").
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\u3053\u306E\u30B3\u30CD\u30AF\u30B7\u30E7\u30F3\u304C\u5BFE\u8C61\u3068\u3059\u308B\u30E6\u30FC\u30B6\u30FC\u306F Project Knowledge \u306E "#### \u30B9\u30B3\u30FC\u30D7" \u306B \`- subject: <email>\` \u5F62\u5F0F\u3067\u8A18\u9332\u3055\u308C\u3066\u3044\u308B\u305F\u3081\u3001\u547C\u3073\u51FA\u3057\u524D\u306B\u305D\u3053\u3092\u8AAD\u3093\u3067 subject \u3092\u6C7A\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002\`scopes\` \u3082\u6BCE\u56DE\u6E21\u3057\u3066\u304F\u3060\u3055\u3044\u3002
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\u306F Project Knowledge ("#### \u30B9\u30B3\u30FC\u30D7") \u304B\u3089\u9078\u3076
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 BASE_URL29 = "https://gmail.googleapis.com/gmail/v1/users";
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
- let url = `${BASE_URL29}${path6.startsWith("/") ? "" : "/"}${path6}`;
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 BASE_URL30 = "https://admin.googleapis.com/admin/reports/v1";
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
- let url = `${BASE_URL30}${path6.startsWith("/") ? "" : "/"}${path6}`;
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\`projectKnowledge\` \u306E \`#### \u30B9\u30B3\u30FC\u30D7\` \u7BC0\u306B\u5404\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3092 1 \u884C\u305A\u3064\u5217\u6319\u3059\u308B:
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\`. Under \`#### \u30B9\u30B3\u30FC\u30D7\` in \`projectKnowledge\`, list each email on its own line:
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 email from \`#### \u30B9\u30B3\u30FC\u30D7\` (a \`- subject: <email>\` line) and use it as \`subject\` for every call below. Pass \`scopes: ${READONLY_SCOPES3}\` every time.
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: `\`#### \u30B9\u30B3\u30FC\u30D7\` \u306E \`- subject: <email>\` \u884C\u304B\u3089 1 \u3064\u306E\u7BA1\u7406\u8005\u3092\u9078\u3073\u3001\u4EE5\u4E0B\u306E\u30B9\u30C6\u30C3\u30D7\u3067 \`subject\` \u5F15\u6570\u3068\u3057\u3066\u4F7F\u3063\u3066\u304F\u3060\u3055\u3044\u3002\`scopes\` \u306F\u6BCE\u56DE \`${READONLY_SCOPES3}\` \u3092\u6E21\u3057\u307E\u3059\u3002
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://www.gstatic.com/images/branding/product/2x/admin_2020q4_48dp.png",
112399
+ iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/6VWp0bASiAEgiSlwoZOT8A/fb59a3a2d0219db7df0a943b286a5995/admin_2020q4_48dp.png",
112352
112400
  parameters: parameters53,
112353
- releaseFlag: { dev1: true, dev2: false, prod: false },
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. The set of admins this connection works with is recorded in the project knowledge under "#### \u30B9\u30B3\u30FC\u30D7" as \`- subject: <email>\` lines \u2014 read those and pick a subject before calling. Always pass \`scopes\`.
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"; // pick from "#### \u30B9\u30B3\u30FC\u30D7" in project knowledge
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\u3053\u306E\u30B3\u30CD\u30AF\u30B7\u30E7\u30F3\u304C\u5BFE\u8C61\u3068\u3059\u308B\u7BA1\u7406\u8005\u306F Project Knowledge \u306E "#### \u30B9\u30B3\u30FC\u30D7" \u306B \`- subject: <email>\` \u5F62\u5F0F\u3067\u8A18\u9332\u3055\u308C\u3066\u3044\u308B\u305F\u3081\u3001\u547C\u3073\u51FA\u3057\u524D\u306B\u305D\u3053\u3092\u8AAD\u3093\u3067 subject \u3092\u6C7A\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002\`scopes\` \u3082\u6BCE\u56DE\u6E21\u3057\u3066\u304F\u3060\u3055\u3044\u3002
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"; // Project Knowledge \u306E "#### \u30B9\u30B3\u30FC\u30D7" \u304B\u3089\u9078\u3076
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) {