@squadbase/vite-server 0.1.3-dev.2 → 0.1.3-dev.4
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 +922 -904
- package/dist/connectors/hubspot-oauth.js +1 -1
- package/dist/connectors/hubspot.js +3 -12
- package/dist/connectors/stripe-api-key.d.ts +5 -0
- package/dist/connectors/stripe-api-key.js +526 -0
- package/dist/index.js +922 -904
- package/dist/main.js +922 -904
- package/dist/vite-plugin.js +922 -904
- package/package.json +6 -2
package/dist/index.js
CHANGED
|
@@ -72015,7 +72015,7 @@ var tools17 = { request: requestTool8 };
|
|
|
72015
72015
|
var hubspotOauthConnector = new ConnectorPlugin({
|
|
72016
72016
|
slug: "hubspot",
|
|
72017
72017
|
authType: AUTH_TYPES.OAUTH,
|
|
72018
|
-
name: "HubSpot
|
|
72018
|
+
name: "HubSpot",
|
|
72019
72019
|
description: "Connect to HubSpot CRM for contacts, deals, companies, and marketing data using OAuth.",
|
|
72020
72020
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/5UcSkKkzhUMA4RsM45ynuo/43b967e36915ca0fc5d277684b204320/hubspot.svg",
|
|
72021
72021
|
parameters: parameters17,
|
|
@@ -72448,11 +72448,303 @@ const data = await res.json();
|
|
|
72448
72448
|
}
|
|
72449
72449
|
});
|
|
72450
72450
|
|
|
72451
|
-
// ../connectors/src/connectors/
|
|
72451
|
+
// ../connectors/src/connectors/stripe-api-key/tools/request.ts
|
|
72452
72452
|
import { z as z27 } from "zod";
|
|
72453
72453
|
|
|
72454
|
-
// ../connectors/src/connectors/
|
|
72454
|
+
// ../connectors/src/connectors/stripe-api-key/parameters.ts
|
|
72455
72455
|
var parameters19 = {
|
|
72456
|
+
apiKey: new ParameterDefinition({
|
|
72457
|
+
slug: "api-key",
|
|
72458
|
+
name: "Stripe API Key",
|
|
72459
|
+
description: "Your Stripe Secret API Key (sk_live_... / sk_test_...) or Restricted API Key (rk_live_... / rk_test_...).",
|
|
72460
|
+
envVarBaseKey: "STRIPE_API_KEY",
|
|
72461
|
+
type: "text",
|
|
72462
|
+
secret: true,
|
|
72463
|
+
required: true
|
|
72464
|
+
})
|
|
72465
|
+
};
|
|
72466
|
+
|
|
72467
|
+
// ../connectors/src/connectors/stripe-api-key/tools/request.ts
|
|
72468
|
+
var BASE_URL12 = "https://api.stripe.com";
|
|
72469
|
+
var REQUEST_TIMEOUT_MS17 = 6e4;
|
|
72470
|
+
var inputSchema27 = z27.object({
|
|
72471
|
+
toolUseIntent: z27.string().optional().describe(
|
|
72472
|
+
"Brief description of what you intend to accomplish with this tool call"
|
|
72473
|
+
),
|
|
72474
|
+
connectionId: z27.string().describe("ID of the Stripe API Key connection to use"),
|
|
72475
|
+
method: z27.enum(["GET", "POST", "DELETE"]).describe(
|
|
72476
|
+
"HTTP method. GET for reading resources, POST for creating or updating, DELETE for removing."
|
|
72477
|
+
),
|
|
72478
|
+
path: z27.string().describe(
|
|
72479
|
+
"API path appended to https://api.stripe.com (e.g., '/v1/charges', '/v1/customers', '/v1/invoices')"
|
|
72480
|
+
),
|
|
72481
|
+
queryParams: z27.record(z27.string(), z27.string()).optional().describe("Query parameters to append to the URL"),
|
|
72482
|
+
body: z27.record(z27.string(), z27.unknown()).optional().describe(
|
|
72483
|
+
"Request body for POST requests. Stripe uses form-encoded bodies \u2014 pass a flat key-value object and it will be encoded automatically."
|
|
72484
|
+
)
|
|
72485
|
+
});
|
|
72486
|
+
var outputSchema27 = z27.discriminatedUnion("success", [
|
|
72487
|
+
z27.object({
|
|
72488
|
+
success: z27.literal(true),
|
|
72489
|
+
status: z27.number(),
|
|
72490
|
+
data: z27.record(z27.string(), z27.unknown())
|
|
72491
|
+
}),
|
|
72492
|
+
z27.object({
|
|
72493
|
+
success: z27.literal(false),
|
|
72494
|
+
error: z27.string()
|
|
72495
|
+
})
|
|
72496
|
+
]);
|
|
72497
|
+
var requestTool10 = new ConnectorTool({
|
|
72498
|
+
name: "request",
|
|
72499
|
+
description: `Send authenticated requests to the Stripe API.
|
|
72500
|
+
Authentication is handled automatically using the configured API Key (Bearer token).
|
|
72501
|
+
Use this tool for all Stripe API interactions: querying charges, customers, invoices, subscriptions, products, prices, payment intents, balances, and more.`,
|
|
72502
|
+
inputSchema: inputSchema27,
|
|
72503
|
+
outputSchema: outputSchema27,
|
|
72504
|
+
async execute({ connectionId, method, path: path5, queryParams, body }, connections) {
|
|
72505
|
+
const connection2 = connections.find((c6) => c6.id === connectionId);
|
|
72506
|
+
if (!connection2) {
|
|
72507
|
+
return {
|
|
72508
|
+
success: false,
|
|
72509
|
+
error: `Connection ${connectionId} not found`
|
|
72510
|
+
};
|
|
72511
|
+
}
|
|
72512
|
+
console.log(
|
|
72513
|
+
`[connector-request] stripe-api-key/${connection2.name}: ${method} ${path5}`
|
|
72514
|
+
);
|
|
72515
|
+
try {
|
|
72516
|
+
const apiKey = parameters19.apiKey.getValue(connection2);
|
|
72517
|
+
let url = `${BASE_URL12}${path5.startsWith("/") ? "" : "/"}${path5}`;
|
|
72518
|
+
if (queryParams) {
|
|
72519
|
+
const searchParams = new URLSearchParams(queryParams);
|
|
72520
|
+
url += `?${searchParams.toString()}`;
|
|
72521
|
+
}
|
|
72522
|
+
const controller = new AbortController();
|
|
72523
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS17);
|
|
72524
|
+
try {
|
|
72525
|
+
const headers = {
|
|
72526
|
+
Authorization: `Bearer ${apiKey}`
|
|
72527
|
+
};
|
|
72528
|
+
let requestBody;
|
|
72529
|
+
if (body) {
|
|
72530
|
+
headers["Content-Type"] = "application/x-www-form-urlencoded";
|
|
72531
|
+
requestBody = new URLSearchParams(
|
|
72532
|
+
Object.entries(body).map(([k6, v7]) => [k6, String(v7)])
|
|
72533
|
+
).toString();
|
|
72534
|
+
}
|
|
72535
|
+
const response = await fetch(url, {
|
|
72536
|
+
method,
|
|
72537
|
+
headers,
|
|
72538
|
+
body: requestBody,
|
|
72539
|
+
signal: controller.signal
|
|
72540
|
+
});
|
|
72541
|
+
const data = await response.json();
|
|
72542
|
+
if (!response.ok) {
|
|
72543
|
+
const errorObj = data?.error;
|
|
72544
|
+
const errorMessage = typeof errorObj === "object" && errorObj !== null && "message" in errorObj ? String(errorObj.message) : typeof data?.message === "string" ? data.message : `HTTP ${response.status} ${response.statusText}`;
|
|
72545
|
+
return { success: false, error: errorMessage };
|
|
72546
|
+
}
|
|
72547
|
+
return { success: true, status: response.status, data };
|
|
72548
|
+
} finally {
|
|
72549
|
+
clearTimeout(timeout);
|
|
72550
|
+
}
|
|
72551
|
+
} catch (err) {
|
|
72552
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
72553
|
+
return { success: false, error: msg };
|
|
72554
|
+
}
|
|
72555
|
+
}
|
|
72556
|
+
});
|
|
72557
|
+
|
|
72558
|
+
// ../connectors/src/connectors/stripe-api-key/setup.ts
|
|
72559
|
+
var requestToolName4 = `stripe-api-key_${requestTool10.name}`;
|
|
72560
|
+
var stripeApiKeyOnboarding = new ConnectorOnboarding({
|
|
72561
|
+
connectionSetupInstructions: {
|
|
72562
|
+
ja: `\u4EE5\u4E0B\u306E\u624B\u9806\u3067Stripe\u30B3\u30CD\u30AF\u30B7\u30E7\u30F3\u306E\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u3092\u884C\u3063\u3066\u304F\u3060\u3055\u3044\u3002
|
|
72563
|
+
|
|
72564
|
+
1. \`${requestToolName4}\` \u3092\u547C\u3073\u51FA\u3057\u3066\u3001\u30A2\u30AB\u30A6\u30F3\u30C8\u6B8B\u9AD8\u3092\u53D6\u5F97\u3059\u308B:
|
|
72565
|
+
- \`method\`: \`"GET"\`
|
|
72566
|
+
- \`path\`: \`"/v1/balance"\`
|
|
72567
|
+
2. \u30A8\u30E9\u30FC\u304C\u8FD4\u3055\u308C\u305F\u5834\u5408\u3001\u30E6\u30FC\u30B6\u30FC\u306BAPI\u30AD\u30FC\u306E\u8A2D\u5B9A\u3092\u78BA\u8A8D\u3059\u308B\u3088\u3046\u4F1D\u3048\u308B\uFF08Secret API Key\u307E\u305F\u306FRestricted API Key\u304C\u6B63\u3057\u304F\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u308B\u304B\uFF09
|
|
72568
|
+
3. \`updateConnectionContext\` \u3092\u547C\u3073\u51FA\u3059:
|
|
72569
|
+
- \`note\`: \u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u5185\u5BB9\u306E\u7C21\u5358\u306A\u8AAC\u660E
|
|
72570
|
+
|
|
72571
|
+
#### \u5236\u7D04
|
|
72572
|
+
- **\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u4E2D\u306B\u6C7A\u6E08\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\u30EA\u30AF\u30A8\u30B9\u30C8\u306E\u307F
|
|
72573
|
+
- \u30C4\u30FC\u30EB\u9593\u306F1\u6587\u3060\u3051\u66F8\u3044\u3066\u5373\u6B21\u306E\u30C4\u30FC\u30EB\u547C\u3073\u51FA\u3057\u3002\u4E0D\u8981\u306A\u8AAC\u660E\u306F\u7701\u7565\u3057\u3001\u52B9\u7387\u7684\u306B\u9032\u3081\u308B`,
|
|
72574
|
+
en: `Follow these steps to set up the Stripe connection.
|
|
72575
|
+
|
|
72576
|
+
1. Call \`${requestToolName4}\` to fetch account balance:
|
|
72577
|
+
- \`method\`: \`"GET"\`
|
|
72578
|
+
- \`path\`: \`"/v1/balance"\`
|
|
72579
|
+
2. If an error is returned, ask the user to check the API key settings (verify that the Secret API Key or Restricted API Key is configured correctly)
|
|
72580
|
+
3. Call \`updateConnectionContext\`:
|
|
72581
|
+
- \`note\`: Brief description of the setup
|
|
72582
|
+
|
|
72583
|
+
#### Constraints
|
|
72584
|
+
- **Do NOT read payment data during setup**. Only the metadata request specified in the steps above is allowed
|
|
72585
|
+
- Write only 1 sentence between tool calls, then immediately call the next tool. Skip unnecessary explanations and proceed efficiently`
|
|
72586
|
+
},
|
|
72587
|
+
dataOverviewInstructions: {
|
|
72588
|
+
en: `1. Call ${requestToolName4} with GET /v1/customers?limit=5 to explore customers structure
|
|
72589
|
+
2. Call ${requestToolName4} with GET /v1/charges?limit=5 to explore charges structure
|
|
72590
|
+
3. Explore other endpoints (invoices, subscriptions, products) as needed`,
|
|
72591
|
+
ja: `1. ${requestToolName4} \u3067 GET /v1/customers?limit=5 \u3092\u547C\u3073\u51FA\u3057\u3001\u9867\u5BA2\u306E\u69CB\u9020\u3092\u78BA\u8A8D
|
|
72592
|
+
2. ${requestToolName4} \u3067 GET /v1/charges?limit=5 \u3092\u547C\u3073\u51FA\u3057\u3001\u8AB2\u91D1\u306E\u69CB\u9020\u3092\u78BA\u8A8D
|
|
72593
|
+
3. \u5FC5\u8981\u306B\u5FDC\u3058\u3066\u4ED6\u306E\u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8\uFF08\u8ACB\u6C42\u66F8\u3001\u30B5\u30D6\u30B9\u30AF\u30EA\u30D7\u30B7\u30E7\u30F3\u3001\u5546\u54C1\uFF09\u3092\u63A2\u7D22`
|
|
72594
|
+
}
|
|
72595
|
+
});
|
|
72596
|
+
|
|
72597
|
+
// ../connectors/src/connectors/stripe-api-key/index.ts
|
|
72598
|
+
var tools19 = { request: requestTool10 };
|
|
72599
|
+
var stripeApiKeyConnector = new ConnectorPlugin({
|
|
72600
|
+
slug: "stripe",
|
|
72601
|
+
authType: AUTH_TYPES.API_KEY,
|
|
72602
|
+
name: "Stripe (API Key)",
|
|
72603
|
+
description: "Connect to Stripe for payment, customer, and subscription data using a Secret API Key or Restricted API Key.",
|
|
72604
|
+
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/2QNK0u2doqp41uL0POS4Ks/7a92367e2388ec77c7f4ada143606f9a/stripe.jpeg",
|
|
72605
|
+
parameters: parameters19,
|
|
72606
|
+
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
72607
|
+
onboarding: stripeApiKeyOnboarding,
|
|
72608
|
+
systemPrompt: {
|
|
72609
|
+
en: `### Tools
|
|
72610
|
+
|
|
72611
|
+
- \`stripe-api-key_request\`: The only way to call the Stripe API. Use it to query charges, customers, invoices, subscriptions, products, prices, payment intents, balances, and more. Authentication is configured automatically using the API Key (Bearer token). Stripe uses cursor-based pagination with \`starting_after\` and \`has_more\`.
|
|
72612
|
+
|
|
72613
|
+
### Stripe API Reference
|
|
72614
|
+
|
|
72615
|
+
#### Available Endpoints
|
|
72616
|
+
- GET \`/v1/charges\` \u2014 List charges
|
|
72617
|
+
- GET \`/v1/charges/{chargeId}\` \u2014 Get a charge
|
|
72618
|
+
- GET \`/v1/customers\` \u2014 List customers
|
|
72619
|
+
- GET \`/v1/customers/{customerId}\` \u2014 Get a customer
|
|
72620
|
+
- GET \`/v1/invoices\` \u2014 List invoices
|
|
72621
|
+
- GET \`/v1/invoices/{invoiceId}\` \u2014 Get an invoice
|
|
72622
|
+
- GET \`/v1/subscriptions\` \u2014 List subscriptions
|
|
72623
|
+
- GET \`/v1/subscriptions/{subscriptionId}\` \u2014 Get a subscription
|
|
72624
|
+
- GET \`/v1/products\` \u2014 List products
|
|
72625
|
+
- GET \`/v1/prices\` \u2014 List prices
|
|
72626
|
+
- GET \`/v1/payment_intents\` \u2014 List payment intents
|
|
72627
|
+
- GET \`/v1/balance\` \u2014 Get account balance
|
|
72628
|
+
- GET \`/v1/balance_transactions\` \u2014 List balance transactions
|
|
72629
|
+
|
|
72630
|
+
### Query Parameters
|
|
72631
|
+
- \`limit\` \u2014 Number of results per page (max 100, default 10)
|
|
72632
|
+
- \`starting_after\` \u2014 Pagination cursor (object ID)
|
|
72633
|
+
- \`ending_before\` \u2014 Reverse pagination cursor
|
|
72634
|
+
- \`created[gte]\`, \`created[lte]\` \u2014 Filter by creation date (Unix timestamp)
|
|
72635
|
+
- \`status\` \u2014 Filter by status (varies by resource)
|
|
72636
|
+
|
|
72637
|
+
### Tips
|
|
72638
|
+
- Stripe uses cursor-based pagination with \`starting_after\` and \`has_more\`
|
|
72639
|
+
- All timestamps are Unix timestamps in seconds
|
|
72640
|
+
- Use \`expand[]\` query parameter to include related objects inline
|
|
72641
|
+
- List responses have \`data\` array and \`has_more\` boolean
|
|
72642
|
+
- POST request bodies are form-encoded (pass a flat key-value object)
|
|
72643
|
+
- If using a Restricted API Key, some endpoints may return 403 depending on the key's permissions
|
|
72644
|
+
|
|
72645
|
+
### Business Logic
|
|
72646
|
+
|
|
72647
|
+
The business logic type for this connector is "typescript". Write handler code using the connector SDK shown below. Do NOT access credentials directly from environment variables.
|
|
72648
|
+
|
|
72649
|
+
#### Example
|
|
72650
|
+
|
|
72651
|
+
\`\`\`ts
|
|
72652
|
+
import { connection } from "@squadbase/vite-server/connectors/stripe-api-key";
|
|
72653
|
+
|
|
72654
|
+
const stripe = connection("<connectionId>");
|
|
72655
|
+
|
|
72656
|
+
// Authenticated fetch (returns standard Response)
|
|
72657
|
+
const res = await stripe.request("/v1/customers?limit=10");
|
|
72658
|
+
const data = await res.json();
|
|
72659
|
+
\`\`\``,
|
|
72660
|
+
ja: `### \u30C4\u30FC\u30EB
|
|
72661
|
+
|
|
72662
|
+
- \`stripe-api-key_request\`: Stripe API\u3092\u547C\u3073\u51FA\u3059\u552F\u4E00\u306E\u624B\u6BB5\u3067\u3059\u3002\u8ACB\u6C42\u3001\u9867\u5BA2\u3001\u8ACB\u6C42\u66F8\u3001\u30B5\u30D6\u30B9\u30AF\u30EA\u30D7\u30B7\u30E7\u30F3\u3001\u5546\u54C1\u3001\u4FA1\u683C\u3001\u652F\u6255\u3044\u30A4\u30F3\u30C6\u30F3\u30C8\u3001\u6B8B\u9AD8\u306A\u3069\u306E\u30AF\u30A8\u30EA\u306B\u4F7F\u7528\u3057\u307E\u3059\u3002API\u30AD\u30FC\uFF08Bearer\u30C8\u30FC\u30AF\u30F3\uFF09\u3067\u8A8D\u8A3C\u306F\u81EA\u52D5\u8A2D\u5B9A\u3055\u308C\u307E\u3059\u3002Stripe\u306F \`starting_after\` \u3068 \`has_more\` \u306B\u3088\u308B\u30AB\u30FC\u30BD\u30EB\u30D9\u30FC\u30B9\u306E\u30DA\u30FC\u30B8\u30CD\u30FC\u30B7\u30E7\u30F3\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002
|
|
72663
|
+
|
|
72664
|
+
### Stripe API \u30EA\u30D5\u30A1\u30EC\u30F3\u30B9
|
|
72665
|
+
|
|
72666
|
+
#### \u5229\u7528\u53EF\u80FD\u306A\u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8
|
|
72667
|
+
- GET \`/v1/charges\` \u2014 \u8ACB\u6C42\u4E00\u89A7\u3092\u53D6\u5F97
|
|
72668
|
+
- GET \`/v1/charges/{chargeId}\` \u2014 \u8ACB\u6C42\u3092\u53D6\u5F97
|
|
72669
|
+
- GET \`/v1/customers\` \u2014 \u9867\u5BA2\u4E00\u89A7\u3092\u53D6\u5F97
|
|
72670
|
+
- GET \`/v1/customers/{customerId}\` \u2014 \u9867\u5BA2\u3092\u53D6\u5F97
|
|
72671
|
+
- GET \`/v1/invoices\` \u2014 \u8ACB\u6C42\u66F8\u4E00\u89A7\u3092\u53D6\u5F97
|
|
72672
|
+
- GET \`/v1/invoices/{invoiceId}\` \u2014 \u8ACB\u6C42\u66F8\u3092\u53D6\u5F97
|
|
72673
|
+
- GET \`/v1/subscriptions\` \u2014 \u30B5\u30D6\u30B9\u30AF\u30EA\u30D7\u30B7\u30E7\u30F3\u4E00\u89A7\u3092\u53D6\u5F97
|
|
72674
|
+
- GET \`/v1/subscriptions/{subscriptionId}\` \u2014 \u30B5\u30D6\u30B9\u30AF\u30EA\u30D7\u30B7\u30E7\u30F3\u3092\u53D6\u5F97
|
|
72675
|
+
- GET \`/v1/products\` \u2014 \u5546\u54C1\u4E00\u89A7\u3092\u53D6\u5F97
|
|
72676
|
+
- GET \`/v1/prices\` \u2014 \u4FA1\u683C\u4E00\u89A7\u3092\u53D6\u5F97
|
|
72677
|
+
- GET \`/v1/payment_intents\` \u2014 \u652F\u6255\u3044\u30A4\u30F3\u30C6\u30F3\u30C8\u4E00\u89A7\u3092\u53D6\u5F97
|
|
72678
|
+
- GET \`/v1/balance\` \u2014 \u30A2\u30AB\u30A6\u30F3\u30C8\u6B8B\u9AD8\u3092\u53D6\u5F97
|
|
72679
|
+
- GET \`/v1/balance_transactions\` \u2014 \u6B8B\u9AD8\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3\u4E00\u89A7\u3092\u53D6\u5F97
|
|
72680
|
+
|
|
72681
|
+
### \u30AF\u30A8\u30EA\u30D1\u30E9\u30E1\u30FC\u30BF
|
|
72682
|
+
- \`limit\` \u2014 \u30DA\u30FC\u30B8\u3042\u305F\u308A\u306E\u7D50\u679C\u6570\uFF08\u6700\u5927100\u3001\u30C7\u30D5\u30A9\u30EB\u30C810\uFF09
|
|
72683
|
+
- \`starting_after\` \u2014 \u30DA\u30FC\u30B8\u30CD\u30FC\u30B7\u30E7\u30F3\u30AB\u30FC\u30BD\u30EB\uFF08\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8ID\uFF09
|
|
72684
|
+
- \`ending_before\` \u2014 \u9006\u65B9\u5411\u30DA\u30FC\u30B8\u30CD\u30FC\u30B7\u30E7\u30F3\u30AB\u30FC\u30BD\u30EB
|
|
72685
|
+
- \`created[gte]\`, \`created[lte]\` \u2014 \u4F5C\u6210\u65E5\u3067\u30D5\u30A3\u30EB\u30BF\uFF08Unix\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\uFF09
|
|
72686
|
+
- \`status\` \u2014 \u30B9\u30C6\u30FC\u30BF\u30B9\u3067\u30D5\u30A3\u30EB\u30BF\uFF08\u30EA\u30BD\u30FC\u30B9\u306B\u3088\u308A\u7570\u306A\u308B\uFF09
|
|
72687
|
+
|
|
72688
|
+
### \u30D2\u30F3\u30C8
|
|
72689
|
+
- Stripe\u306F \`starting_after\` \u3068 \`has_more\` \u306B\u3088\u308B\u30AB\u30FC\u30BD\u30EB\u30D9\u30FC\u30B9\u306E\u30DA\u30FC\u30B8\u30CD\u30FC\u30B7\u30E7\u30F3\u3092\u4F7F\u7528\u3057\u307E\u3059
|
|
72690
|
+
- \u3059\u3079\u3066\u306E\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u306F\u79D2\u5358\u4F4D\u306EUnix\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u3067\u3059
|
|
72691
|
+
- \u95A2\u9023\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3092\u30A4\u30F3\u30E9\u30A4\u30F3\u3067\u542B\u3081\u308B\u306B\u306F \`expand[]\` \u30AF\u30A8\u30EA\u30D1\u30E9\u30E1\u30FC\u30BF\u3092\u4F7F\u7528\u3057\u307E\u3059
|
|
72692
|
+
- \u4E00\u89A7\u30EC\u30B9\u30DD\u30F3\u30B9\u306B\u306F \`data\` \u914D\u5217\u3068 \`has_more\` \u30D6\u30FC\u30EB\u5024\u304C\u542B\u307E\u308C\u307E\u3059
|
|
72693
|
+
- POST\u30EA\u30AF\u30A8\u30B9\u30C8\u306E\u30DC\u30C7\u30A3\u306F\u30D5\u30A9\u30FC\u30E0\u30A8\u30F3\u30B3\u30FC\u30C9\u3067\u3059\uFF08\u30D5\u30E9\u30C3\u30C8\u306A\u30AD\u30FC\u30FB\u30D0\u30EA\u30E5\u30FC\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3092\u6E21\u3057\u3066\u304F\u3060\u3055\u3044\uFF09
|
|
72694
|
+
- Restricted API Key\u3092\u4F7F\u7528\u3057\u3066\u3044\u308B\u5834\u5408\u3001\u30AD\u30FC\u306E\u6A29\u9650\u306B\u3088\u3063\u3066\u306F\u4E00\u90E8\u306E\u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8\u3067403\u304C\u8FD4\u308B\u3053\u3068\u304C\u3042\u308A\u307E\u3059
|
|
72695
|
+
|
|
72696
|
+
### Business Logic
|
|
72697
|
+
|
|
72698
|
+
\u3053\u306E\u30B3\u30CD\u30AF\u30BF\u306E\u30D3\u30B8\u30CD\u30B9\u30ED\u30B8\u30C3\u30AF\u30BF\u30A4\u30D7\u306F "typescript" \u3067\u3059\u3002\u4EE5\u4E0B\u306B\u793A\u3059\u30B3\u30CD\u30AF\u30BFSDK\u3092\u4F7F\u7528\u3057\u3066\u30CF\u30F3\u30C9\u30E9\u30B3\u30FC\u30C9\u3092\u8A18\u8FF0\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u74B0\u5883\u5909\u6570\u304B\u3089\u76F4\u63A5\u8A8D\u8A3C\u60C5\u5831\u306B\u30A2\u30AF\u30BB\u30B9\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002
|
|
72699
|
+
|
|
72700
|
+
#### Example
|
|
72701
|
+
|
|
72702
|
+
\`\`\`ts
|
|
72703
|
+
import { connection } from "@squadbase/vite-server/connectors/stripe-api-key";
|
|
72704
|
+
|
|
72705
|
+
const stripe = connection("<connectionId>");
|
|
72706
|
+
|
|
72707
|
+
// Authenticated fetch (returns standard Response)
|
|
72708
|
+
const res = await stripe.request("/v1/customers?limit=10");
|
|
72709
|
+
const data = await res.json();
|
|
72710
|
+
\`\`\``
|
|
72711
|
+
},
|
|
72712
|
+
tools: tools19,
|
|
72713
|
+
async checkConnection(params) {
|
|
72714
|
+
try {
|
|
72715
|
+
const apiKey = params["api-key"];
|
|
72716
|
+
if (!apiKey) {
|
|
72717
|
+
return {
|
|
72718
|
+
success: false,
|
|
72719
|
+
error: "API Key is not configured"
|
|
72720
|
+
};
|
|
72721
|
+
}
|
|
72722
|
+
const res = await fetch("https://api.stripe.com/v1/balance", {
|
|
72723
|
+
method: "GET",
|
|
72724
|
+
headers: { Authorization: `Bearer ${apiKey}` }
|
|
72725
|
+
});
|
|
72726
|
+
if (!res.ok) {
|
|
72727
|
+
const errorText = await res.text().catch(() => res.statusText);
|
|
72728
|
+
return {
|
|
72729
|
+
success: false,
|
|
72730
|
+
error: `Stripe API failed: HTTP ${res.status} ${errorText}`
|
|
72731
|
+
};
|
|
72732
|
+
}
|
|
72733
|
+
return { success: true };
|
|
72734
|
+
} catch (error2) {
|
|
72735
|
+
return {
|
|
72736
|
+
success: false,
|
|
72737
|
+
error: error2 instanceof Error ? error2.message : String(error2)
|
|
72738
|
+
};
|
|
72739
|
+
}
|
|
72740
|
+
}
|
|
72741
|
+
});
|
|
72742
|
+
|
|
72743
|
+
// ../connectors/src/connectors/airtable-oauth/tools/request.ts
|
|
72744
|
+
import { z as z28 } from "zod";
|
|
72745
|
+
|
|
72746
|
+
// ../connectors/src/connectors/airtable-oauth/parameters.ts
|
|
72747
|
+
var parameters20 = {
|
|
72456
72748
|
baseId: new ParameterDefinition({
|
|
72457
72749
|
slug: "base-id",
|
|
72458
72750
|
name: "Airtable Base ID",
|
|
@@ -72465,8 +72757,8 @@ var parameters19 = {
|
|
|
72465
72757
|
};
|
|
72466
72758
|
|
|
72467
72759
|
// ../connectors/src/connectors/airtable-oauth/tools/request.ts
|
|
72468
|
-
var
|
|
72469
|
-
var
|
|
72760
|
+
var BASE_URL13 = "https://api.airtable.com/v0";
|
|
72761
|
+
var REQUEST_TIMEOUT_MS18 = 6e4;
|
|
72470
72762
|
var cachedToken12 = null;
|
|
72471
72763
|
async function getProxyToken12(config) {
|
|
72472
72764
|
if (cachedToken12 && cachedToken12.expiresAt > Date.now() + 6e4) {
|
|
@@ -72498,36 +72790,36 @@ async function getProxyToken12(config) {
|
|
|
72498
72790
|
};
|
|
72499
72791
|
return data.token;
|
|
72500
72792
|
}
|
|
72501
|
-
var
|
|
72502
|
-
toolUseIntent:
|
|
72793
|
+
var inputSchema28 = z28.object({
|
|
72794
|
+
toolUseIntent: z28.string().optional().describe(
|
|
72503
72795
|
"Brief description of what you intend to accomplish with this tool call"
|
|
72504
72796
|
),
|
|
72505
|
-
connectionId:
|
|
72506
|
-
method:
|
|
72507
|
-
path:
|
|
72797
|
+
connectionId: z28.string().describe("ID of the Airtable OAuth connection to use"),
|
|
72798
|
+
method: z28.enum(["GET", "POST", "PATCH", "DELETE"]).describe("HTTP method"),
|
|
72799
|
+
path: z28.string().describe(
|
|
72508
72800
|
"API path appended to https://api.airtable.com/v0 (e.g., '/{baseId}/{tableIdOrName}', '/meta/bases/{baseId}/tables'). {baseId} is automatically replaced if a default is configured."
|
|
72509
72801
|
),
|
|
72510
|
-
queryParams:
|
|
72511
|
-
body:
|
|
72802
|
+
queryParams: z28.record(z28.string(), z28.string()).optional().describe("Query parameters to append to the URL"),
|
|
72803
|
+
body: z28.record(z28.string(), z28.unknown()).optional().describe("Request body (JSON) for POST/PATCH requests")
|
|
72512
72804
|
});
|
|
72513
|
-
var
|
|
72514
|
-
|
|
72515
|
-
success:
|
|
72516
|
-
status:
|
|
72517
|
-
data:
|
|
72805
|
+
var outputSchema28 = z28.discriminatedUnion("success", [
|
|
72806
|
+
z28.object({
|
|
72807
|
+
success: z28.literal(true),
|
|
72808
|
+
status: z28.number(),
|
|
72809
|
+
data: z28.record(z28.string(), z28.unknown())
|
|
72518
72810
|
}),
|
|
72519
|
-
|
|
72520
|
-
success:
|
|
72521
|
-
error:
|
|
72811
|
+
z28.object({
|
|
72812
|
+
success: z28.literal(false),
|
|
72813
|
+
error: z28.string()
|
|
72522
72814
|
})
|
|
72523
72815
|
]);
|
|
72524
|
-
var
|
|
72816
|
+
var requestTool11 = new ConnectorTool({
|
|
72525
72817
|
name: "request",
|
|
72526
72818
|
description: `Send authenticated requests to the Airtable API.
|
|
72527
72819
|
Authentication is handled automatically via OAuth proxy.
|
|
72528
72820
|
{baseId} in the path is automatically replaced with the connection's default base ID if configured.`,
|
|
72529
|
-
inputSchema:
|
|
72530
|
-
outputSchema:
|
|
72821
|
+
inputSchema: inputSchema28,
|
|
72822
|
+
outputSchema: outputSchema28,
|
|
72531
72823
|
async execute({ connectionId, method, path: path5, queryParams, body }, connections, config) {
|
|
72532
72824
|
const connection2 = connections.find((c6) => c6.id === connectionId);
|
|
72533
72825
|
if (!connection2) {
|
|
@@ -72540,9 +72832,9 @@ Authentication is handled automatically via OAuth proxy.
|
|
|
72540
72832
|
`[connector-request] airtable-oauth/${connection2.name}: ${method} ${path5}`
|
|
72541
72833
|
);
|
|
72542
72834
|
try {
|
|
72543
|
-
const baseId =
|
|
72835
|
+
const baseId = parameters20.baseId.tryGetValue(connection2);
|
|
72544
72836
|
const resolvedPath = baseId ? path5.replace(/\{baseId\}/g, baseId) : path5;
|
|
72545
|
-
let url = `${
|
|
72837
|
+
let url = `${BASE_URL13}${resolvedPath.startsWith("/") ? "" : "/"}${resolvedPath}`;
|
|
72546
72838
|
if (queryParams) {
|
|
72547
72839
|
const searchParams = new URLSearchParams(queryParams);
|
|
72548
72840
|
url += `?${searchParams.toString()}`;
|
|
@@ -72550,7 +72842,7 @@ Authentication is handled automatically via OAuth proxy.
|
|
|
72550
72842
|
const token = await getProxyToken12(config.oauthProxy);
|
|
72551
72843
|
const proxyUrl = `https://${config.oauthProxy.sandboxId}.${config.oauthProxy.previewBaseDomain}/_sqcore/connections/${connectionId}/request`;
|
|
72552
72844
|
const controller = new AbortController();
|
|
72553
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
72845
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS18);
|
|
72554
72846
|
try {
|
|
72555
72847
|
const response = await fetch(proxyUrl, {
|
|
72556
72848
|
method: "POST",
|
|
@@ -72582,7 +72874,7 @@ Authentication is handled automatically via OAuth proxy.
|
|
|
72582
72874
|
});
|
|
72583
72875
|
|
|
72584
72876
|
// ../connectors/src/connectors/airtable-oauth/setup.ts
|
|
72585
|
-
var
|
|
72877
|
+
var requestToolName5 = `airtable-oauth_${requestTool11.name}`;
|
|
72586
72878
|
var airtableOauthOnboarding = new ConnectorOnboarding({
|
|
72587
72879
|
connectionSetupInstructions: {
|
|
72588
72880
|
ja: `\u4EE5\u4E0B\u306E\u624B\u9806\u3067Airtable OAuth\u30B3\u30CD\u30AF\u30B7\u30E7\u30F3\u306E\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u3092\u884C\u3063\u3066\u304F\u3060\u3055\u3044\u3002
|
|
@@ -72592,7 +72884,7 @@ var airtableOauthOnboarding = new ConnectorOnboarding({
|
|
|
72592
72884
|
3. \`updateConnectionParameters\` \u3092\u547C\u3073\u51FA\u3059:
|
|
72593
72885
|
- \`parameterSlug\`: \`"base-id"\`
|
|
72594
72886
|
- \`value\`: \u62BD\u51FA\u3057\u305F\u30D9\u30FC\u30B9ID
|
|
72595
|
-
4. \`${
|
|
72887
|
+
4. \`${requestToolName5}\` \u3092\u547C\u3073\u51FA\u3057\u3066\u3001\u30D9\u30FC\u30B9\u306E\u30C6\u30FC\u30D6\u30EB\u4E00\u89A7\u3092\u53D6\u5F97\u3059\u308B:
|
|
72596
72888
|
- \`method\`: \`"GET"\`
|
|
72597
72889
|
- \`path\`: \`"/meta/bases/{baseId}/tables"\`
|
|
72598
72890
|
5. \u30A8\u30E9\u30FC\u304C\u8FD4\u3055\u308C\u305F\u5834\u5408\u3001\u30E6\u30FC\u30B6\u30FC\u306B\u30D9\u30FC\u30B9\u306E\u5171\u6709\u8A2D\u5B9A\u3092\u78BA\u8A8D\u3059\u308B\u3088\u3046\u4F1D\u3048\u308B
|
|
@@ -72611,7 +72903,7 @@ var airtableOauthOnboarding = new ConnectorOnboarding({
|
|
|
72611
72903
|
3. Call \`updateConnectionParameters\`:
|
|
72612
72904
|
- \`parameterSlug\`: \`"base-id"\`
|
|
72613
72905
|
- \`value\`: The extracted base ID
|
|
72614
|
-
4. Call \`${
|
|
72906
|
+
4. Call \`${requestToolName5}\` to fetch the base's table list:
|
|
72615
72907
|
- \`method\`: \`"GET"\`
|
|
72616
72908
|
- \`path\`: \`"/meta/bases/{baseId}/tables"\`
|
|
72617
72909
|
5. If an error is returned, ask the user to check the base sharing settings
|
|
@@ -72633,14 +72925,14 @@ var airtableOauthOnboarding = new ConnectorOnboarding({
|
|
|
72633
72925
|
});
|
|
72634
72926
|
|
|
72635
72927
|
// ../connectors/src/connectors/airtable-oauth/index.ts
|
|
72636
|
-
var
|
|
72928
|
+
var tools20 = { request: requestTool11 };
|
|
72637
72929
|
var airtableOauthConnector = new ConnectorPlugin({
|
|
72638
72930
|
slug: "airtable",
|
|
72639
72931
|
authType: AUTH_TYPES.OAUTH,
|
|
72640
72932
|
name: "Airtable (OAuth)",
|
|
72641
72933
|
description: "Connect to Airtable for spreadsheet-database hybrid data management using OAuth.",
|
|
72642
72934
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/19JUphfOZjyjTK6Zg4NGCf/8c56227b088cada52d3a2d9385a3be97/airtable.svg",
|
|
72643
|
-
parameters:
|
|
72935
|
+
parameters: parameters20,
|
|
72644
72936
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
72645
72937
|
onboarding: airtableOauthOnboarding,
|
|
72646
72938
|
proxyPolicy: {
|
|
@@ -72749,10 +73041,10 @@ const records = await airtable.request("/{baseId}/Tasks?maxRecords=100");
|
|
|
72749
73041
|
const recordsData = await records.json();
|
|
72750
73042
|
\`\`\``
|
|
72751
73043
|
},
|
|
72752
|
-
tools:
|
|
73044
|
+
tools: tools20,
|
|
72753
73045
|
async checkConnection(params, config) {
|
|
72754
73046
|
const { proxyFetch } = config;
|
|
72755
|
-
const baseId = params[
|
|
73047
|
+
const baseId = params[parameters20.baseId.slug];
|
|
72756
73048
|
if (!baseId) {
|
|
72757
73049
|
return { success: true };
|
|
72758
73050
|
}
|
|
@@ -72791,7 +73083,7 @@ var kintoneOnboarding = new ConnectorOnboarding({
|
|
|
72791
73083
|
});
|
|
72792
73084
|
|
|
72793
73085
|
// ../connectors/src/connectors/kintone/parameters.ts
|
|
72794
|
-
var
|
|
73086
|
+
var parameters21 = {
|
|
72795
73087
|
baseUrl: new ParameterDefinition({
|
|
72796
73088
|
slug: "base-url",
|
|
72797
73089
|
name: "kintone Base URL",
|
|
@@ -72822,32 +73114,32 @@ var parameters20 = {
|
|
|
72822
73114
|
};
|
|
72823
73115
|
|
|
72824
73116
|
// ../connectors/src/connectors/kintone/tools/request.ts
|
|
72825
|
-
import { z as
|
|
72826
|
-
var
|
|
72827
|
-
var
|
|
72828
|
-
toolUseIntent:
|
|
72829
|
-
connectionId:
|
|
72830
|
-
method:
|
|
72831
|
-
path:
|
|
72832
|
-
body:
|
|
73117
|
+
import { z as z29 } from "zod";
|
|
73118
|
+
var REQUEST_TIMEOUT_MS19 = 6e4;
|
|
73119
|
+
var inputSchema29 = z29.object({
|
|
73120
|
+
toolUseIntent: z29.string().optional().describe("Brief description of what you intend to accomplish with this tool call"),
|
|
73121
|
+
connectionId: z29.string().describe("ID of the kintone connection to use"),
|
|
73122
|
+
method: z29.enum(["GET", "POST", "PUT", "DELETE"]).describe("HTTP method"),
|
|
73123
|
+
path: z29.string().describe("API path (e.g., 'apps.json', 'records.json?app=1&query=...')"),
|
|
73124
|
+
body: z29.record(z29.string(), z29.unknown()).optional().describe("Request body (JSON)")
|
|
72833
73125
|
});
|
|
72834
|
-
var
|
|
72835
|
-
|
|
72836
|
-
success:
|
|
72837
|
-
status:
|
|
72838
|
-
data:
|
|
73126
|
+
var outputSchema29 = z29.discriminatedUnion("success", [
|
|
73127
|
+
z29.object({
|
|
73128
|
+
success: z29.literal(true),
|
|
73129
|
+
status: z29.number(),
|
|
73130
|
+
data: z29.record(z29.string(), z29.unknown())
|
|
72839
73131
|
}),
|
|
72840
|
-
|
|
72841
|
-
success:
|
|
72842
|
-
error:
|
|
73132
|
+
z29.object({
|
|
73133
|
+
success: z29.literal(false),
|
|
73134
|
+
error: z29.string()
|
|
72843
73135
|
})
|
|
72844
73136
|
]);
|
|
72845
|
-
var
|
|
73137
|
+
var requestTool12 = new ConnectorTool({
|
|
72846
73138
|
name: "request",
|
|
72847
73139
|
description: `Send authenticated requests to the kintone REST API.
|
|
72848
73140
|
Authentication is handled automatically using username and password.`,
|
|
72849
|
-
inputSchema:
|
|
72850
|
-
outputSchema:
|
|
73141
|
+
inputSchema: inputSchema29,
|
|
73142
|
+
outputSchema: outputSchema29,
|
|
72851
73143
|
async execute({ connectionId, method, path: path5, body }, connections) {
|
|
72852
73144
|
const connection2 = connections.find((c6) => c6.id === connectionId);
|
|
72853
73145
|
if (!connection2) {
|
|
@@ -72855,13 +73147,13 @@ Authentication is handled automatically using username and password.`,
|
|
|
72855
73147
|
}
|
|
72856
73148
|
console.log(`[connector-request] kintone/${connection2.name}: ${method} ${path5}`);
|
|
72857
73149
|
try {
|
|
72858
|
-
const baseUrl =
|
|
72859
|
-
const username =
|
|
72860
|
-
const password =
|
|
73150
|
+
const baseUrl = parameters21.baseUrl.getValue(connection2);
|
|
73151
|
+
const username = parameters21.username.getValue(connection2);
|
|
73152
|
+
const password = parameters21.password.getValue(connection2);
|
|
72861
73153
|
const authToken = Buffer.from(`${username}:${password}`).toString("base64");
|
|
72862
73154
|
const url = `${baseUrl.replace(/\/+$/, "")}/k/v1/${path5}`;
|
|
72863
73155
|
const controller = new AbortController();
|
|
72864
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
73156
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS19);
|
|
72865
73157
|
try {
|
|
72866
73158
|
const headers = {
|
|
72867
73159
|
"X-Cybozu-Authorization": authToken
|
|
@@ -72894,14 +73186,14 @@ Authentication is handled automatically using username and password.`,
|
|
|
72894
73186
|
});
|
|
72895
73187
|
|
|
72896
73188
|
// ../connectors/src/connectors/kintone/index.ts
|
|
72897
|
-
var
|
|
73189
|
+
var tools21 = { request: requestTool12 };
|
|
72898
73190
|
var kintoneConnector = new ConnectorPlugin({
|
|
72899
73191
|
slug: "kintone",
|
|
72900
73192
|
authType: null,
|
|
72901
73193
|
name: "kintone (Password)",
|
|
72902
73194
|
description: "Connect to kintone for business application data retrieval and analytics.",
|
|
72903
73195
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/76nPGMJFZkMFE3UQNo2JFy/e71dc5f5d5cec1306ce0e17aafbfd9f0/kintone.png",
|
|
72904
|
-
parameters:
|
|
73196
|
+
parameters: parameters21,
|
|
72905
73197
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
72906
73198
|
onboarding: kintoneOnboarding,
|
|
72907
73199
|
systemPrompt: {
|
|
@@ -73040,7 +73332,7 @@ export default async function handler(c: Context) {
|
|
|
73040
73332
|
- \u5236\u9650: \`limit 100 offset 0\`
|
|
73041
73333
|
- \u6587\u5B57\u5217: \`like "\u90E8\u5206\u4E00\u81F4"\``
|
|
73042
73334
|
},
|
|
73043
|
-
tools:
|
|
73335
|
+
tools: tools21
|
|
73044
73336
|
});
|
|
73045
73337
|
|
|
73046
73338
|
// ../connectors/src/connectors/kintone-api-token/setup.ts
|
|
@@ -73056,7 +73348,7 @@ var kintoneApiTokenOnboarding = new ConnectorOnboarding({
|
|
|
73056
73348
|
});
|
|
73057
73349
|
|
|
73058
73350
|
// ../connectors/src/connectors/kintone-api-token/parameters.ts
|
|
73059
|
-
var
|
|
73351
|
+
var parameters22 = {
|
|
73060
73352
|
baseUrl: new ParameterDefinition({
|
|
73061
73353
|
slug: "base-url",
|
|
73062
73354
|
name: "kintone Base URL",
|
|
@@ -73078,32 +73370,32 @@ var parameters21 = {
|
|
|
73078
73370
|
};
|
|
73079
73371
|
|
|
73080
73372
|
// ../connectors/src/connectors/kintone-api-token/tools/request.ts
|
|
73081
|
-
import { z as
|
|
73082
|
-
var
|
|
73083
|
-
var
|
|
73084
|
-
toolUseIntent:
|
|
73085
|
-
connectionId:
|
|
73086
|
-
method:
|
|
73087
|
-
path:
|
|
73088
|
-
body:
|
|
73373
|
+
import { z as z30 } from "zod";
|
|
73374
|
+
var REQUEST_TIMEOUT_MS20 = 6e4;
|
|
73375
|
+
var inputSchema30 = z30.object({
|
|
73376
|
+
toolUseIntent: z30.string().optional().describe("Brief description of what you intend to accomplish with this tool call"),
|
|
73377
|
+
connectionId: z30.string().describe("ID of the kintone connection to use"),
|
|
73378
|
+
method: z30.enum(["GET", "POST", "PUT", "DELETE"]).describe("HTTP method"),
|
|
73379
|
+
path: z30.string().describe("API path (e.g., 'apps.json', 'records.json?app=1&query=...')"),
|
|
73380
|
+
body: z30.record(z30.string(), z30.unknown()).optional().describe("Request body (JSON)")
|
|
73089
73381
|
});
|
|
73090
|
-
var
|
|
73091
|
-
|
|
73092
|
-
success:
|
|
73093
|
-
status:
|
|
73094
|
-
data:
|
|
73382
|
+
var outputSchema30 = z30.discriminatedUnion("success", [
|
|
73383
|
+
z30.object({
|
|
73384
|
+
success: z30.literal(true),
|
|
73385
|
+
status: z30.number(),
|
|
73386
|
+
data: z30.record(z30.string(), z30.unknown())
|
|
73095
73387
|
}),
|
|
73096
|
-
|
|
73097
|
-
success:
|
|
73098
|
-
error:
|
|
73388
|
+
z30.object({
|
|
73389
|
+
success: z30.literal(false),
|
|
73390
|
+
error: z30.string()
|
|
73099
73391
|
})
|
|
73100
73392
|
]);
|
|
73101
|
-
var
|
|
73393
|
+
var requestTool13 = new ConnectorTool({
|
|
73102
73394
|
name: "request",
|
|
73103
73395
|
description: `Send authenticated requests to the kintone REST API.
|
|
73104
73396
|
Authentication is handled automatically using the API token.`,
|
|
73105
|
-
inputSchema:
|
|
73106
|
-
outputSchema:
|
|
73397
|
+
inputSchema: inputSchema30,
|
|
73398
|
+
outputSchema: outputSchema30,
|
|
73107
73399
|
async execute({ connectionId, method, path: path5, body }, connections) {
|
|
73108
73400
|
const connection2 = connections.find((c6) => c6.id === connectionId);
|
|
73109
73401
|
if (!connection2) {
|
|
@@ -73111,11 +73403,11 @@ Authentication is handled automatically using the API token.`,
|
|
|
73111
73403
|
}
|
|
73112
73404
|
console.log(`[connector-request] kintone-api-token/${connection2.name}: ${method} ${path5}`);
|
|
73113
73405
|
try {
|
|
73114
|
-
const baseUrl =
|
|
73115
|
-
const apiToken =
|
|
73406
|
+
const baseUrl = parameters22.baseUrl.getValue(connection2);
|
|
73407
|
+
const apiToken = parameters22.apiToken.getValue(connection2);
|
|
73116
73408
|
const url = `${baseUrl.replace(/\/+$/, "")}/k/v1/${path5}`;
|
|
73117
73409
|
const controller = new AbortController();
|
|
73118
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
73410
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS20);
|
|
73119
73411
|
try {
|
|
73120
73412
|
const headers = {
|
|
73121
73413
|
"X-Cybozu-API-Token": apiToken
|
|
@@ -73148,14 +73440,14 @@ Authentication is handled automatically using the API token.`,
|
|
|
73148
73440
|
});
|
|
73149
73441
|
|
|
73150
73442
|
// ../connectors/src/connectors/kintone-api-token/index.ts
|
|
73151
|
-
var
|
|
73443
|
+
var tools22 = { request: requestTool13 };
|
|
73152
73444
|
var kintoneApiTokenConnector = new ConnectorPlugin({
|
|
73153
73445
|
slug: "kintone",
|
|
73154
73446
|
authType: AUTH_TYPES.API_KEY,
|
|
73155
73447
|
name: "kintone (API Token)",
|
|
73156
73448
|
description: "Connect to kintone for business application data retrieval and analytics using API token authentication.",
|
|
73157
73449
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/76nPGMJFZkMFE3UQNo2JFy/e71dc5f5d5cec1306ce0e17aafbfd9f0/kintone.png",
|
|
73158
|
-
parameters:
|
|
73450
|
+
parameters: parameters22,
|
|
73159
73451
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
73160
73452
|
onboarding: kintoneApiTokenOnboarding,
|
|
73161
73453
|
systemPrompt: {
|
|
@@ -73254,7 +73546,7 @@ await kintone.request("/k/v1/record.json", {
|
|
|
73254
73546
|
});
|
|
73255
73547
|
\`\`\``
|
|
73256
73548
|
},
|
|
73257
|
-
tools:
|
|
73549
|
+
tools: tools22
|
|
73258
73550
|
});
|
|
73259
73551
|
|
|
73260
73552
|
// ../connectors/src/connectors/wix-store/setup.ts
|
|
@@ -73270,7 +73562,7 @@ var wixStoreOnboarding = new ConnectorOnboarding({
|
|
|
73270
73562
|
});
|
|
73271
73563
|
|
|
73272
73564
|
// ../connectors/src/connectors/wix-store/parameters.ts
|
|
73273
|
-
var
|
|
73565
|
+
var parameters23 = {
|
|
73274
73566
|
accountId: new ParameterDefinition({
|
|
73275
73567
|
slug: "account-id",
|
|
73276
73568
|
name: "Account ID",
|
|
@@ -73301,33 +73593,33 @@ var parameters22 = {
|
|
|
73301
73593
|
};
|
|
73302
73594
|
|
|
73303
73595
|
// ../connectors/src/connectors/wix-store/tools/request.ts
|
|
73304
|
-
import { z as
|
|
73305
|
-
var
|
|
73306
|
-
var
|
|
73307
|
-
var
|
|
73308
|
-
toolUseIntent:
|
|
73309
|
-
connectionId:
|
|
73310
|
-
method:
|
|
73311
|
-
path:
|
|
73312
|
-
body:
|
|
73596
|
+
import { z as z31 } from "zod";
|
|
73597
|
+
var BASE_URL14 = "https://www.wixapis.com/";
|
|
73598
|
+
var REQUEST_TIMEOUT_MS21 = 6e4;
|
|
73599
|
+
var inputSchema31 = z31.object({
|
|
73600
|
+
toolUseIntent: z31.string().optional().describe("Brief description of what you intend to accomplish with this tool call"),
|
|
73601
|
+
connectionId: z31.string().describe("ID of the Wix Store connection to use"),
|
|
73602
|
+
method: z31.enum(["GET", "POST"]).describe("HTTP method"),
|
|
73603
|
+
path: z31.string().describe("API path (e.g., 'stores/v1/products/query', 'stores/v2/orders/query')"),
|
|
73604
|
+
body: z31.record(z31.string(), z31.unknown()).optional().describe("Request body (JSON)")
|
|
73313
73605
|
});
|
|
73314
|
-
var
|
|
73315
|
-
|
|
73316
|
-
success:
|
|
73317
|
-
status:
|
|
73318
|
-
data:
|
|
73606
|
+
var outputSchema31 = z31.discriminatedUnion("success", [
|
|
73607
|
+
z31.object({
|
|
73608
|
+
success: z31.literal(true),
|
|
73609
|
+
status: z31.number(),
|
|
73610
|
+
data: z31.record(z31.string(), z31.unknown())
|
|
73319
73611
|
}),
|
|
73320
|
-
|
|
73321
|
-
success:
|
|
73322
|
-
error:
|
|
73612
|
+
z31.object({
|
|
73613
|
+
success: z31.literal(false),
|
|
73614
|
+
error: z31.string()
|
|
73323
73615
|
})
|
|
73324
73616
|
]);
|
|
73325
|
-
var
|
|
73617
|
+
var requestTool14 = new ConnectorTool({
|
|
73326
73618
|
name: "request",
|
|
73327
73619
|
description: `Send authenticated requests to the Wix Store API.
|
|
73328
73620
|
Authentication is handled automatically using the API Key and Site ID.`,
|
|
73329
|
-
inputSchema:
|
|
73330
|
-
outputSchema:
|
|
73621
|
+
inputSchema: inputSchema31,
|
|
73622
|
+
outputSchema: outputSchema31,
|
|
73331
73623
|
async execute({ connectionId, method, path: path5, body }, connections) {
|
|
73332
73624
|
const connection2 = connections.find((c6) => c6.id === connectionId);
|
|
73333
73625
|
if (!connection2) {
|
|
@@ -73335,11 +73627,11 @@ Authentication is handled automatically using the API Key and Site ID.`,
|
|
|
73335
73627
|
}
|
|
73336
73628
|
console.log(`[connector-request] wix-store/${connection2.name}: ${method} ${path5}`);
|
|
73337
73629
|
try {
|
|
73338
|
-
const apiKey =
|
|
73339
|
-
const siteId =
|
|
73340
|
-
const url = `${
|
|
73630
|
+
const apiKey = parameters23.apiKey.getValue(connection2);
|
|
73631
|
+
const siteId = parameters23.siteId.getValue(connection2);
|
|
73632
|
+
const url = `${BASE_URL14}${path5}`;
|
|
73341
73633
|
const controller = new AbortController();
|
|
73342
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
73634
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS21);
|
|
73343
73635
|
try {
|
|
73344
73636
|
const response = await fetch(url, {
|
|
73345
73637
|
method,
|
|
@@ -73371,14 +73663,14 @@ Authentication is handled automatically using the API Key and Site ID.`,
|
|
|
73371
73663
|
});
|
|
73372
73664
|
|
|
73373
73665
|
// ../connectors/src/connectors/wix-store/index.ts
|
|
73374
|
-
var
|
|
73666
|
+
var tools23 = { request: requestTool14 };
|
|
73375
73667
|
var wixStoreConnector = new ConnectorPlugin({
|
|
73376
73668
|
slug: "wix-store",
|
|
73377
73669
|
authType: null,
|
|
73378
73670
|
name: "Wix Store",
|
|
73379
73671
|
description: "Connect to Wix Store.",
|
|
73380
73672
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/YyFxclQFzROIYpFam6vRK/e7e75d3feac49a1cc5e433c147216d23/Wix_logo_black.svg",
|
|
73381
|
-
parameters:
|
|
73673
|
+
parameters: parameters23,
|
|
73382
73674
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
73383
73675
|
onboarding: wixStoreOnboarding,
|
|
73384
73676
|
systemPrompt: {
|
|
@@ -73531,7 +73823,7 @@ export default async function handler(c: Context) {
|
|
|
73531
73823
|
- \`POST stores/v2/inventoryItems/query\`
|
|
73532
73824
|
- Body: \`{ "query": { "paging": { "limit": 50 } } }\``
|
|
73533
73825
|
},
|
|
73534
|
-
tools:
|
|
73826
|
+
tools: tools23
|
|
73535
73827
|
});
|
|
73536
73828
|
|
|
73537
73829
|
// ../connectors/src/connectors/dbt/setup.ts
|
|
@@ -73547,7 +73839,7 @@ var dbtOnboarding = new ConnectorOnboarding({
|
|
|
73547
73839
|
});
|
|
73548
73840
|
|
|
73549
73841
|
// ../connectors/src/connectors/dbt/parameters.ts
|
|
73550
|
-
var
|
|
73842
|
+
var parameters24 = {
|
|
73551
73843
|
host: new ParameterDefinition({
|
|
73552
73844
|
slug: "host",
|
|
73553
73845
|
name: "dbt Cloud Host",
|
|
@@ -73587,36 +73879,36 @@ var parameters23 = {
|
|
|
73587
73879
|
};
|
|
73588
73880
|
|
|
73589
73881
|
// ../connectors/src/connectors/dbt/tools/request.ts
|
|
73590
|
-
import { z as
|
|
73591
|
-
var
|
|
73882
|
+
import { z as z32 } from "zod";
|
|
73883
|
+
var REQUEST_TIMEOUT_MS22 = 6e4;
|
|
73592
73884
|
function resolveGraphqlEndpoint(host) {
|
|
73593
73885
|
if (host.includes("emea")) return "https://metadata.emea.dbt.com/graphql";
|
|
73594
73886
|
if (host.includes(".au.")) return "https://metadata.au.dbt.com/graphql";
|
|
73595
73887
|
return "https://metadata.cloud.getdbt.com/graphql";
|
|
73596
73888
|
}
|
|
73597
|
-
var
|
|
73598
|
-
toolUseIntent:
|
|
73599
|
-
connectionId:
|
|
73600
|
-
query:
|
|
73601
|
-
variables:
|
|
73889
|
+
var inputSchema32 = z32.object({
|
|
73890
|
+
toolUseIntent: z32.string().optional().describe("Brief description of what you intend to accomplish with this tool call"),
|
|
73891
|
+
connectionId: z32.string().describe("ID of the dbt Cloud connection to use"),
|
|
73892
|
+
query: z32.string().describe("GraphQL query"),
|
|
73893
|
+
variables: z32.record(z32.string(), z32.unknown()).optional().describe("GraphQL variables (JSON)")
|
|
73602
73894
|
});
|
|
73603
|
-
var
|
|
73604
|
-
|
|
73605
|
-
success:
|
|
73606
|
-
data:
|
|
73895
|
+
var outputSchema32 = z32.discriminatedUnion("success", [
|
|
73896
|
+
z32.object({
|
|
73897
|
+
success: z32.literal(true),
|
|
73898
|
+
data: z32.record(z32.string(), z32.unknown())
|
|
73607
73899
|
}),
|
|
73608
|
-
|
|
73609
|
-
success:
|
|
73610
|
-
error:
|
|
73900
|
+
z32.object({
|
|
73901
|
+
success: z32.literal(false),
|
|
73902
|
+
error: z32.string()
|
|
73611
73903
|
})
|
|
73612
73904
|
]);
|
|
73613
|
-
var
|
|
73905
|
+
var requestTool15 = new ConnectorTool({
|
|
73614
73906
|
name: "request",
|
|
73615
73907
|
description: `Send authenticated requests to the dbt Cloud Discovery API (GraphQL).
|
|
73616
73908
|
Authentication is handled automatically using the API token.
|
|
73617
73909
|
{environmentId} in GraphQL variables is automatically replaced with the prod-env-id.`,
|
|
73618
|
-
inputSchema:
|
|
73619
|
-
outputSchema:
|
|
73910
|
+
inputSchema: inputSchema32,
|
|
73911
|
+
outputSchema: outputSchema32,
|
|
73620
73912
|
async execute({ connectionId, query, variables }, connections) {
|
|
73621
73913
|
const connection2 = connections.find((c6) => c6.id === connectionId);
|
|
73622
73914
|
if (!connection2) {
|
|
@@ -73624,9 +73916,9 @@ Authentication is handled automatically using the API token.
|
|
|
73624
73916
|
}
|
|
73625
73917
|
console.log(`[connector-request] dbt/${connection2.name}: GraphQL query`);
|
|
73626
73918
|
try {
|
|
73627
|
-
const host =
|
|
73628
|
-
const token =
|
|
73629
|
-
const environmentId =
|
|
73919
|
+
const host = parameters24.host.getValue(connection2);
|
|
73920
|
+
const token = parameters24.token.getValue(connection2);
|
|
73921
|
+
const environmentId = parameters24.prodEnvId.getValue(connection2);
|
|
73630
73922
|
const resolvedVariables = variables ? JSON.parse(
|
|
73631
73923
|
JSON.stringify(variables).replace(
|
|
73632
73924
|
/"\{environmentId\}"/g,
|
|
@@ -73635,7 +73927,7 @@ Authentication is handled automatically using the API token.
|
|
|
73635
73927
|
) : void 0;
|
|
73636
73928
|
const endpoint = resolveGraphqlEndpoint(host);
|
|
73637
73929
|
const controller = new AbortController();
|
|
73638
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
73930
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS22);
|
|
73639
73931
|
try {
|
|
73640
73932
|
const response = await fetch(endpoint, {
|
|
73641
73933
|
method: "POST",
|
|
@@ -73672,14 +73964,14 @@ Authentication is handled automatically using the API token.
|
|
|
73672
73964
|
});
|
|
73673
73965
|
|
|
73674
73966
|
// ../connectors/src/connectors/dbt/index.ts
|
|
73675
|
-
var
|
|
73967
|
+
var tools24 = { request: requestTool15 };
|
|
73676
73968
|
var dbtConnector = new ConnectorPlugin({
|
|
73677
73969
|
slug: "dbt",
|
|
73678
73970
|
authType: null,
|
|
73679
73971
|
name: "dbt",
|
|
73680
73972
|
description: "Connect to dbt Cloud for data transformation and analytics engineering.",
|
|
73681
73973
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/4iT6ncXtdtHdkXexU0WgfZ/0367a38d245f2568eab5eb511f9ee692/dbt.png",
|
|
73682
|
-
parameters:
|
|
73974
|
+
parameters: parameters24,
|
|
73683
73975
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
73684
73976
|
onboarding: dbtOnboarding,
|
|
73685
73977
|
systemPrompt: {
|
|
@@ -73902,7 +74194,7 @@ query($environmentId: BigInt!, $uniqueIds: [String!]!) {
|
|
|
73902
74194
|
- \`ancestors\` / \`children\` \u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u4F7F\u7528\u3057\u3066\u95A2\u4FC2\u3092\u30C8\u30E9\u30D0\u30FC\u30B9\u3057\u307E\u3059
|
|
73903
74195
|
- node\u5185\u3067 \`ancestors { uniqueId name }\` \u307E\u305F\u306F \`children { uniqueId name }\` \u3092\u53D6\u5F97\u3057\u307E\u3059`
|
|
73904
74196
|
},
|
|
73905
|
-
tools:
|
|
74197
|
+
tools: tools24
|
|
73906
74198
|
});
|
|
73907
74199
|
|
|
73908
74200
|
// ../connectors/src/connectors/squadbase-db/setup.ts
|
|
@@ -73918,7 +74210,7 @@ var squadbaseDbOnboarding = new ConnectorOnboarding({
|
|
|
73918
74210
|
});
|
|
73919
74211
|
|
|
73920
74212
|
// ../connectors/src/connectors/squadbase-db/parameters.ts
|
|
73921
|
-
var
|
|
74213
|
+
var parameters25 = {
|
|
73922
74214
|
connectionUrl: new ParameterDefinition({
|
|
73923
74215
|
slug: "connection-url",
|
|
73924
74216
|
name: "Connection URL",
|
|
@@ -73931,27 +74223,27 @@ var parameters24 = {
|
|
|
73931
74223
|
};
|
|
73932
74224
|
|
|
73933
74225
|
// ../connectors/src/connectors/squadbase-db/tools/execute-query.ts
|
|
73934
|
-
import { z as
|
|
74226
|
+
import { z as z33 } from "zod";
|
|
73935
74227
|
var MAX_ROWS10 = 500;
|
|
73936
74228
|
var CONNECT_TIMEOUT_MS3 = 1e4;
|
|
73937
74229
|
var STATEMENT_TIMEOUT_MS2 = 6e4;
|
|
73938
|
-
var
|
|
73939
|
-
toolUseIntent:
|
|
74230
|
+
var inputSchema33 = z33.object({
|
|
74231
|
+
toolUseIntent: z33.string().optional().describe(
|
|
73940
74232
|
"Brief description of what you intend to accomplish with this tool call"
|
|
73941
74233
|
),
|
|
73942
|
-
connectionId:
|
|
73943
|
-
sql:
|
|
74234
|
+
connectionId: z33.string().describe("ID of the Squadbase DB connection to use"),
|
|
74235
|
+
sql: z33.string().describe("PostgreSQL SQL query. Always include LIMIT in queries.")
|
|
73944
74236
|
});
|
|
73945
|
-
var
|
|
73946
|
-
|
|
73947
|
-
success:
|
|
73948
|
-
rowCount:
|
|
73949
|
-
truncated:
|
|
73950
|
-
rows:
|
|
74237
|
+
var outputSchema33 = z33.discriminatedUnion("success", [
|
|
74238
|
+
z33.object({
|
|
74239
|
+
success: z33.literal(true),
|
|
74240
|
+
rowCount: z33.number(),
|
|
74241
|
+
truncated: z33.boolean(),
|
|
74242
|
+
rows: z33.array(z33.record(z33.string(), z33.unknown()))
|
|
73951
74243
|
}),
|
|
73952
|
-
|
|
73953
|
-
success:
|
|
73954
|
-
error:
|
|
74244
|
+
z33.object({
|
|
74245
|
+
success: z33.literal(false),
|
|
74246
|
+
error: z33.string()
|
|
73955
74247
|
})
|
|
73956
74248
|
]);
|
|
73957
74249
|
var executeQueryTool10 = new ConnectorTool({
|
|
@@ -73959,8 +74251,8 @@ var executeQueryTool10 = new ConnectorTool({
|
|
|
73959
74251
|
description: `Execute SQL against Squadbase DB (PostgreSQL). Returns up to ${MAX_ROWS10} rows.
|
|
73960
74252
|
Use for: schema exploration (information_schema), data sampling, analytical queries.
|
|
73961
74253
|
Avoid loading large amounts of data; always include LIMIT in queries.`,
|
|
73962
|
-
inputSchema:
|
|
73963
|
-
outputSchema:
|
|
74254
|
+
inputSchema: inputSchema33,
|
|
74255
|
+
outputSchema: outputSchema33,
|
|
73964
74256
|
async execute({ connectionId, sql }, connections) {
|
|
73965
74257
|
const connection2 = connections.find((c6) => c6.id === connectionId);
|
|
73966
74258
|
if (!connection2) {
|
|
@@ -73975,7 +74267,7 @@ Avoid loading large amounts of data; always include LIMIT in queries.`,
|
|
|
73975
74267
|
let connectionUrl;
|
|
73976
74268
|
try {
|
|
73977
74269
|
const { Pool } = await import("pg");
|
|
73978
|
-
connectionUrl =
|
|
74270
|
+
connectionUrl = parameters25.connectionUrl.getValue(connection2);
|
|
73979
74271
|
const pool = new Pool({
|
|
73980
74272
|
connectionString: connectionUrl,
|
|
73981
74273
|
ssl: { rejectUnauthorized: false },
|
|
@@ -74006,14 +74298,14 @@ Avoid loading large amounts of data; always include LIMIT in queries.`,
|
|
|
74006
74298
|
});
|
|
74007
74299
|
|
|
74008
74300
|
// ../connectors/src/connectors/squadbase-db/index.ts
|
|
74009
|
-
var
|
|
74301
|
+
var tools25 = { executeQuery: executeQueryTool10 };
|
|
74010
74302
|
var squadbaseDbConnector = new ConnectorPlugin({
|
|
74011
74303
|
slug: "squadbase-db",
|
|
74012
74304
|
authType: null,
|
|
74013
74305
|
name: "Squadbase DB",
|
|
74014
74306
|
description: "Connect to Squadbase DB (PostgreSQL).",
|
|
74015
74307
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/25y0XqMxIufeD3egWH3bEl/659b4ade405890654cfaf91c03a4b458/icon.svg",
|
|
74016
|
-
parameters:
|
|
74308
|
+
parameters: parameters25,
|
|
74017
74309
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
74018
74310
|
onboarding: squadbaseDbOnboarding,
|
|
74019
74311
|
systemPrompt: {
|
|
@@ -74046,11 +74338,11 @@ The business logic type for this connector is "sql".
|
|
|
74046
74338
|
- \u30AB\u30E9\u30E0\u4E00\u89A7: \`SELECT column_name, data_type FROM information_schema.columns WHERE table_schema = 'public' AND table_name = 'xxx'\`
|
|
74047
74339
|
- \u30AF\u30A8\u30EA\u306B\u306F\u5FC5\u305A LIMIT \u3092\u542B\u3081\u3066\u304F\u3060\u3055\u3044`
|
|
74048
74340
|
},
|
|
74049
|
-
tools:
|
|
74341
|
+
tools: tools25,
|
|
74050
74342
|
async checkConnection(params, _config) {
|
|
74051
74343
|
const { Pool } = await import("pg");
|
|
74052
74344
|
const pool = new Pool({
|
|
74053
|
-
connectionString: params[
|
|
74345
|
+
connectionString: params[parameters25.connectionUrl.slug],
|
|
74054
74346
|
ssl: { rejectUnauthorized: false },
|
|
74055
74347
|
connectionTimeoutMillis: 1e4
|
|
74056
74348
|
});
|
|
@@ -74067,7 +74359,7 @@ The business logic type for this connector is "sql".
|
|
|
74067
74359
|
const { Pool } = await import("pg");
|
|
74068
74360
|
const { text, values } = buildPositionalParams(sql, namedParams);
|
|
74069
74361
|
const pool = new Pool({
|
|
74070
|
-
connectionString: params[
|
|
74362
|
+
connectionString: params[parameters25.connectionUrl.slug],
|
|
74071
74363
|
ssl: { rejectUnauthorized: false },
|
|
74072
74364
|
connectionTimeoutMillis: 1e4,
|
|
74073
74365
|
statement_timeout: 6e4
|
|
@@ -74082,7 +74374,7 @@ The business logic type for this connector is "sql".
|
|
|
74082
74374
|
});
|
|
74083
74375
|
|
|
74084
74376
|
// ../connectors/src/connectors/openai/parameters.ts
|
|
74085
|
-
var
|
|
74377
|
+
var parameters26 = {
|
|
74086
74378
|
apiKey: new ParameterDefinition({
|
|
74087
74379
|
slug: "api-key",
|
|
74088
74380
|
name: "OpenAI API Key",
|
|
@@ -74095,14 +74387,14 @@ var parameters25 = {
|
|
|
74095
74387
|
};
|
|
74096
74388
|
|
|
74097
74389
|
// ../connectors/src/connectors/openai/index.ts
|
|
74098
|
-
var
|
|
74390
|
+
var tools26 = {};
|
|
74099
74391
|
var openaiConnector = new ConnectorPlugin({
|
|
74100
74392
|
slug: "openai",
|
|
74101
74393
|
authType: null,
|
|
74102
74394
|
name: "OpenAI",
|
|
74103
74395
|
description: "Connect to OpenAI for AI model inference, embeddings, and image generation.",
|
|
74104
74396
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/53XJtCgUlW10x6i1X8xpxM/0bfd634069f1d74241296543cb20427a/openai.svg",
|
|
74105
|
-
parameters:
|
|
74397
|
+
parameters: parameters26,
|
|
74106
74398
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
74107
74399
|
systemPrompt: {
|
|
74108
74400
|
en: `### Business Logic
|
|
@@ -74152,11 +74444,11 @@ export default async function handler(c: Context) {
|
|
|
74152
74444
|
}
|
|
74153
74445
|
\`\`\``
|
|
74154
74446
|
},
|
|
74155
|
-
tools:
|
|
74447
|
+
tools: tools26
|
|
74156
74448
|
});
|
|
74157
74449
|
|
|
74158
74450
|
// ../connectors/src/connectors/gemini/parameters.ts
|
|
74159
|
-
var
|
|
74451
|
+
var parameters27 = {
|
|
74160
74452
|
apiKey: new ParameterDefinition({
|
|
74161
74453
|
slug: "api-key",
|
|
74162
74454
|
name: "Gemini API Key",
|
|
@@ -74169,14 +74461,14 @@ var parameters26 = {
|
|
|
74169
74461
|
};
|
|
74170
74462
|
|
|
74171
74463
|
// ../connectors/src/connectors/gemini/index.ts
|
|
74172
|
-
var
|
|
74464
|
+
var tools27 = {};
|
|
74173
74465
|
var geminiConnector = new ConnectorPlugin({
|
|
74174
74466
|
slug: "gemini",
|
|
74175
74467
|
authType: null,
|
|
74176
74468
|
name: "Gemini",
|
|
74177
74469
|
description: "Connect to Google Gemini for AI model inference, embeddings, and multimodal generation.",
|
|
74178
74470
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/6K2qZQZEQq90YENfrXy5my/c83c0c3815af0a97d29ee70f37215f01/gemini.png",
|
|
74179
|
-
parameters:
|
|
74471
|
+
parameters: parameters27,
|
|
74180
74472
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
74181
74473
|
systemPrompt: {
|
|
74182
74474
|
en: `### Business Logic
|
|
@@ -74220,11 +74512,11 @@ export default async function handler(c: Context) {
|
|
|
74220
74512
|
}
|
|
74221
74513
|
\`\`\``
|
|
74222
74514
|
},
|
|
74223
|
-
tools:
|
|
74515
|
+
tools: tools27
|
|
74224
74516
|
});
|
|
74225
74517
|
|
|
74226
74518
|
// ../connectors/src/connectors/anthropic/parameters.ts
|
|
74227
|
-
var
|
|
74519
|
+
var parameters28 = {
|
|
74228
74520
|
apiKey: new ParameterDefinition({
|
|
74229
74521
|
slug: "api-key",
|
|
74230
74522
|
name: "Anthropic API Key",
|
|
@@ -74237,14 +74529,14 @@ var parameters27 = {
|
|
|
74237
74529
|
};
|
|
74238
74530
|
|
|
74239
74531
|
// ../connectors/src/connectors/anthropic/index.ts
|
|
74240
|
-
var
|
|
74532
|
+
var tools28 = {};
|
|
74241
74533
|
var anthropicConnector = new ConnectorPlugin({
|
|
74242
74534
|
slug: "anthropic",
|
|
74243
74535
|
authType: null,
|
|
74244
74536
|
name: "Anthropic",
|
|
74245
74537
|
description: "Connect to Anthropic for AI model inference and text generation with Claude.",
|
|
74246
74538
|
iconUrl: "https://www.anthropic.com/images/icons/safari-pinned-tab.svg",
|
|
74247
|
-
parameters:
|
|
74539
|
+
parameters: parameters28,
|
|
74248
74540
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
74249
74541
|
systemPrompt: {
|
|
74250
74542
|
en: `### Business Logic
|
|
@@ -74296,7 +74588,7 @@ export default async function handler(c: Context) {
|
|
|
74296
74588
|
}
|
|
74297
74589
|
\`\`\``
|
|
74298
74590
|
},
|
|
74299
|
-
tools:
|
|
74591
|
+
tools: tools28
|
|
74300
74592
|
});
|
|
74301
74593
|
|
|
74302
74594
|
// ../connectors/src/connectors/amplitude/setup.ts
|
|
@@ -74316,7 +74608,7 @@ NOTE: The Dashboard REST API endpoints (events/segmentation, funnels, retention,
|
|
|
74316
74608
|
});
|
|
74317
74609
|
|
|
74318
74610
|
// ../connectors/src/connectors/amplitude/parameters.ts
|
|
74319
|
-
var
|
|
74611
|
+
var parameters29 = {
|
|
74320
74612
|
apiKey: new ParameterDefinition({
|
|
74321
74613
|
slug: "api-key",
|
|
74322
74614
|
name: "Amplitude API Key",
|
|
@@ -74347,33 +74639,33 @@ var parameters28 = {
|
|
|
74347
74639
|
};
|
|
74348
74640
|
|
|
74349
74641
|
// ../connectors/src/connectors/amplitude/tools/request.ts
|
|
74350
|
-
import { z as
|
|
74351
|
-
var
|
|
74352
|
-
var
|
|
74353
|
-
toolUseIntent:
|
|
74642
|
+
import { z as z34 } from "zod";
|
|
74643
|
+
var REQUEST_TIMEOUT_MS23 = 6e4;
|
|
74644
|
+
var inputSchema34 = z34.object({
|
|
74645
|
+
toolUseIntent: z34.string().optional().describe(
|
|
74354
74646
|
"Brief description of what you intend to accomplish with this tool call"
|
|
74355
74647
|
),
|
|
74356
|
-
connectionId:
|
|
74357
|
-
method:
|
|
74648
|
+
connectionId: z34.string().describe("ID of the Amplitude connection to use"),
|
|
74649
|
+
method: z34.enum(["GET", "POST"]).describe(
|
|
74358
74650
|
"HTTP method. GET for most read endpoints (events/list, export, usersearch, useractivity). POST is rarely needed."
|
|
74359
74651
|
),
|
|
74360
|
-
url:
|
|
74652
|
+
url: z34.string().describe(
|
|
74361
74653
|
"Full URL including query parameters (e.g., 'https://amplitude.com/api/2/events/list', 'https://amplitude.com/api/2/export?start=20240101T00&end=20240102T00')"
|
|
74362
74654
|
),
|
|
74363
|
-
body:
|
|
74655
|
+
body: z34.record(z34.string(), z34.unknown()).optional().describe("Request body (JSON) for POST requests")
|
|
74364
74656
|
});
|
|
74365
|
-
var
|
|
74366
|
-
|
|
74367
|
-
success:
|
|
74368
|
-
status:
|
|
74369
|
-
data:
|
|
74657
|
+
var outputSchema34 = z34.discriminatedUnion("success", [
|
|
74658
|
+
z34.object({
|
|
74659
|
+
success: z34.literal(true),
|
|
74660
|
+
status: z34.number(),
|
|
74661
|
+
data: z34.record(z34.string(), z34.unknown())
|
|
74370
74662
|
}),
|
|
74371
|
-
|
|
74372
|
-
success:
|
|
74373
|
-
error:
|
|
74663
|
+
z34.object({
|
|
74664
|
+
success: z34.literal(false),
|
|
74665
|
+
error: z34.string()
|
|
74374
74666
|
})
|
|
74375
74667
|
]);
|
|
74376
|
-
var
|
|
74668
|
+
var requestTool16 = new ConnectorTool({
|
|
74377
74669
|
name: "request",
|
|
74378
74670
|
description: `Send authenticated requests to the Amplitude REST API.
|
|
74379
74671
|
Authentication is handled automatically using Basic auth (API Key + Secret Key).
|
|
@@ -74387,8 +74679,8 @@ Recommended endpoints (available on all plans):
|
|
|
74387
74679
|
- GET {baseUrl}/api/2/useractivity?user=AMPLITUDE_ID \u2014 user activity
|
|
74388
74680
|
|
|
74389
74681
|
IMPORTANT: Dashboard REST API endpoints (events/segmentation, funnels, retention, revenue, etc.) require a paid Growth or Enterprise plan and will return 403 Forbidden on free plans. Always try the Export API first and aggregate data in code.`,
|
|
74390
|
-
inputSchema:
|
|
74391
|
-
outputSchema:
|
|
74682
|
+
inputSchema: inputSchema34,
|
|
74683
|
+
outputSchema: outputSchema34,
|
|
74392
74684
|
async execute({ connectionId, method, url, body }, connections) {
|
|
74393
74685
|
const connection2 = connections.find((c6) => c6.id === connectionId);
|
|
74394
74686
|
if (!connection2) {
|
|
@@ -74401,11 +74693,11 @@ IMPORTANT: Dashboard REST API endpoints (events/segmentation, funnels, retention
|
|
|
74401
74693
|
`[connector-request] amplitude/${connection2.name}: ${method} ${url}`
|
|
74402
74694
|
);
|
|
74403
74695
|
try {
|
|
74404
|
-
const apiKey =
|
|
74405
|
-
const secretKey =
|
|
74696
|
+
const apiKey = parameters29.apiKey.getValue(connection2);
|
|
74697
|
+
const secretKey = parameters29.secretKey.getValue(connection2);
|
|
74406
74698
|
const authToken = btoa(`${apiKey}:${secretKey}`);
|
|
74407
74699
|
const controller = new AbortController();
|
|
74408
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
74700
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS23);
|
|
74409
74701
|
try {
|
|
74410
74702
|
const response = await fetch(url, {
|
|
74411
74703
|
method,
|
|
@@ -74433,14 +74725,14 @@ IMPORTANT: Dashboard REST API endpoints (events/segmentation, funnels, retention
|
|
|
74433
74725
|
});
|
|
74434
74726
|
|
|
74435
74727
|
// ../connectors/src/connectors/amplitude/index.ts
|
|
74436
|
-
var
|
|
74728
|
+
var tools29 = { request: requestTool16 };
|
|
74437
74729
|
var amplitudeConnector = new ConnectorPlugin({
|
|
74438
74730
|
slug: "amplitude",
|
|
74439
74731
|
authType: null,
|
|
74440
74732
|
name: "Amplitude",
|
|
74441
74733
|
description: "Connect to Amplitude for product analytics and user behavior data.",
|
|
74442
74734
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/2UBJSdRlFJaLq52WUCTBEB/308b59b374cf6c662ac70989860bffd7/amplitude-icon.svg",
|
|
74443
|
-
parameters:
|
|
74735
|
+
parameters: parameters29,
|
|
74444
74736
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
74445
74737
|
onboarding: amplitudeOnboarding,
|
|
74446
74738
|
systemPrompt: {
|
|
@@ -74573,7 +74865,7 @@ export default async function handler(c: Context) {
|
|
|
74573
74865
|
- \`i\` \u2014 \u30A4\u30F3\u30BF\u30FC\u30D0\u30EB\uFF081=\u65E5\u6B21\u30017=\u9031\u6B21\u300130=\u6708\u6B21\uFF09
|
|
74574
74866
|
- \`g\` \u2014 \u30B0\u30EB\u30FC\u30D7\u5316\u30D7\u30ED\u30D1\u30C6\u30A3`
|
|
74575
74867
|
},
|
|
74576
|
-
tools:
|
|
74868
|
+
tools: tools29
|
|
74577
74869
|
});
|
|
74578
74870
|
|
|
74579
74871
|
// ../connectors/src/connectors/attio/setup.ts
|
|
@@ -74591,7 +74883,7 @@ var attioOnboarding = new ConnectorOnboarding({
|
|
|
74591
74883
|
});
|
|
74592
74884
|
|
|
74593
74885
|
// ../connectors/src/connectors/attio/parameters.ts
|
|
74594
|
-
var
|
|
74886
|
+
var parameters30 = {
|
|
74595
74887
|
apiKey: new ParameterDefinition({
|
|
74596
74888
|
slug: "api-key",
|
|
74597
74889
|
name: "Attio API Key",
|
|
@@ -74604,41 +74896,41 @@ var parameters29 = {
|
|
|
74604
74896
|
};
|
|
74605
74897
|
|
|
74606
74898
|
// ../connectors/src/connectors/attio/tools/request.ts
|
|
74607
|
-
import { z as
|
|
74608
|
-
var
|
|
74609
|
-
var
|
|
74610
|
-
var
|
|
74611
|
-
toolUseIntent:
|
|
74899
|
+
import { z as z35 } from "zod";
|
|
74900
|
+
var BASE_URL15 = "https://api.attio.com/v2";
|
|
74901
|
+
var REQUEST_TIMEOUT_MS24 = 6e4;
|
|
74902
|
+
var inputSchema35 = z35.object({
|
|
74903
|
+
toolUseIntent: z35.string().optional().describe(
|
|
74612
74904
|
"Brief description of what you intend to accomplish with this tool call"
|
|
74613
74905
|
),
|
|
74614
|
-
connectionId:
|
|
74615
|
-
method:
|
|
74906
|
+
connectionId: z35.string().describe("ID of the Attio connection to use"),
|
|
74907
|
+
method: z35.enum(["GET", "POST", "PATCH", "DELETE"]).describe(
|
|
74616
74908
|
"HTTP method. GET for reading resources, POST for creating or querying records, PATCH for updating, DELETE for removing."
|
|
74617
74909
|
),
|
|
74618
|
-
path:
|
|
74910
|
+
path: z35.string().describe(
|
|
74619
74911
|
"API path (e.g., '/objects', '/objects/people/records/query', '/objects/companies/records/{record_id}')"
|
|
74620
74912
|
),
|
|
74621
|
-
body:
|
|
74913
|
+
body: z35.record(z35.string(), z35.unknown()).optional().describe("Request body (JSON) for POST/PATCH requests")
|
|
74622
74914
|
});
|
|
74623
|
-
var
|
|
74624
|
-
|
|
74625
|
-
success:
|
|
74626
|
-
status:
|
|
74627
|
-
data:
|
|
74915
|
+
var outputSchema35 = z35.discriminatedUnion("success", [
|
|
74916
|
+
z35.object({
|
|
74917
|
+
success: z35.literal(true),
|
|
74918
|
+
status: z35.number(),
|
|
74919
|
+
data: z35.record(z35.string(), z35.unknown())
|
|
74628
74920
|
}),
|
|
74629
|
-
|
|
74630
|
-
success:
|
|
74631
|
-
error:
|
|
74921
|
+
z35.object({
|
|
74922
|
+
success: z35.literal(false),
|
|
74923
|
+
error: z35.string()
|
|
74632
74924
|
})
|
|
74633
74925
|
]);
|
|
74634
|
-
var
|
|
74926
|
+
var requestTool17 = new ConnectorTool({
|
|
74635
74927
|
name: "request",
|
|
74636
74928
|
description: `Send authenticated requests to the Attio REST API.
|
|
74637
74929
|
Authentication is handled automatically using the API Key (Bearer token).
|
|
74638
74930
|
Use this tool for all Attio API interactions: querying records (people, companies, deals), listing objects and attributes, managing list entries, and working with notes.
|
|
74639
74931
|
Note that querying records uses POST (not GET) with a request body for filters.`,
|
|
74640
|
-
inputSchema:
|
|
74641
|
-
outputSchema:
|
|
74932
|
+
inputSchema: inputSchema35,
|
|
74933
|
+
outputSchema: outputSchema35,
|
|
74642
74934
|
async execute({ connectionId, method, path: path5, body }, connections) {
|
|
74643
74935
|
const connection2 = connections.find((c6) => c6.id === connectionId);
|
|
74644
74936
|
if (!connection2) {
|
|
@@ -74651,10 +74943,10 @@ Note that querying records uses POST (not GET) with a request body for filters.`
|
|
|
74651
74943
|
`[connector-request] attio/${connection2.name}: ${method} ${path5}`
|
|
74652
74944
|
);
|
|
74653
74945
|
try {
|
|
74654
|
-
const apiKey =
|
|
74655
|
-
const url = `${
|
|
74946
|
+
const apiKey = parameters30.apiKey.getValue(connection2);
|
|
74947
|
+
const url = `${BASE_URL15}${path5}`;
|
|
74656
74948
|
const controller = new AbortController();
|
|
74657
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
74949
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS24);
|
|
74658
74950
|
try {
|
|
74659
74951
|
const response = await fetch(url, {
|
|
74660
74952
|
method,
|
|
@@ -74682,14 +74974,14 @@ Note that querying records uses POST (not GET) with a request body for filters.`
|
|
|
74682
74974
|
});
|
|
74683
74975
|
|
|
74684
74976
|
// ../connectors/src/connectors/attio/index.ts
|
|
74685
|
-
var
|
|
74977
|
+
var tools30 = { request: requestTool17 };
|
|
74686
74978
|
var attioConnector = new ConnectorPlugin({
|
|
74687
74979
|
slug: "attio",
|
|
74688
74980
|
authType: null,
|
|
74689
74981
|
name: "Attio",
|
|
74690
74982
|
description: "Connect to Attio for CRM data and relationship intelligence.",
|
|
74691
74983
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/2qqx99vvXJojUM3tSrSWPX/1e7c35e13da6b365b8b475c1effe568f/attio.svg",
|
|
74692
|
-
parameters:
|
|
74984
|
+
parameters: parameters30,
|
|
74693
74985
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
74694
74986
|
onboarding: attioOnboarding,
|
|
74695
74987
|
systemPrompt: {
|
|
@@ -74808,7 +75100,7 @@ export default async function handler(c: Context) {
|
|
|
74808
75100
|
- \`limit\` \u2014 \u30DA\u30FC\u30B8\u3042\u305F\u308A\u306E\u6700\u5927\u30EC\u30B3\u30FC\u30C9\u6570\uFF08\u30C7\u30D5\u30A9\u30EB\u30C825\uFF09
|
|
74809
75101
|
- \`offset\` \u2014 \u30DA\u30FC\u30B8\u30CD\u30FC\u30B7\u30E7\u30F3\u30AA\u30D5\u30BB\u30C3\u30C8`
|
|
74810
75102
|
},
|
|
74811
|
-
tools:
|
|
75103
|
+
tools: tools30
|
|
74812
75104
|
});
|
|
74813
75105
|
|
|
74814
75106
|
// ../connectors/src/connectors/shopify/setup.ts
|
|
@@ -74824,7 +75116,7 @@ var shopifyOnboarding = new ConnectorOnboarding({
|
|
|
74824
75116
|
});
|
|
74825
75117
|
|
|
74826
75118
|
// ../connectors/src/connectors/shopify/parameters.ts
|
|
74827
|
-
var
|
|
75119
|
+
var parameters31 = {
|
|
74828
75120
|
storeDomain: new ParameterDefinition({
|
|
74829
75121
|
slug: "store-domain",
|
|
74830
75122
|
name: "Shop Name",
|
|
@@ -74855,40 +75147,40 @@ var parameters30 = {
|
|
|
74855
75147
|
};
|
|
74856
75148
|
|
|
74857
75149
|
// ../connectors/src/connectors/shopify/tools/request.ts
|
|
74858
|
-
import { z as
|
|
74859
|
-
var
|
|
74860
|
-
var
|
|
74861
|
-
toolUseIntent:
|
|
75150
|
+
import { z as z36 } from "zod";
|
|
75151
|
+
var REQUEST_TIMEOUT_MS25 = 6e4;
|
|
75152
|
+
var inputSchema36 = z36.object({
|
|
75153
|
+
toolUseIntent: z36.string().optional().describe(
|
|
74862
75154
|
"Brief description of what you intend to accomplish with this tool call"
|
|
74863
75155
|
),
|
|
74864
|
-
connectionId:
|
|
74865
|
-
method:
|
|
75156
|
+
connectionId: z36.string().describe("ID of the Shopify connection to use"),
|
|
75157
|
+
method: z36.enum(["GET", "POST", "PUT", "DELETE"]).describe(
|
|
74866
75158
|
"HTTP method. GET for reading resources (products, orders, customers), POST for creating, PUT for updating, DELETE for removing."
|
|
74867
75159
|
),
|
|
74868
|
-
path:
|
|
75160
|
+
path: z36.string().describe(
|
|
74869
75161
|
"API path including version (e.g., '/admin/api/2024-10/products.json', '/admin/api/2024-10/orders.json?limit=50')"
|
|
74870
75162
|
),
|
|
74871
|
-
body:
|
|
75163
|
+
body: z36.record(z36.string(), z36.unknown()).optional().describe("Request body (JSON) for POST/PUT requests")
|
|
74872
75164
|
});
|
|
74873
|
-
var
|
|
74874
|
-
|
|
74875
|
-
success:
|
|
74876
|
-
status:
|
|
74877
|
-
data:
|
|
75165
|
+
var outputSchema36 = z36.discriminatedUnion("success", [
|
|
75166
|
+
z36.object({
|
|
75167
|
+
success: z36.literal(true),
|
|
75168
|
+
status: z36.number(),
|
|
75169
|
+
data: z36.record(z36.string(), z36.unknown())
|
|
74878
75170
|
}),
|
|
74879
|
-
|
|
74880
|
-
success:
|
|
74881
|
-
error:
|
|
75171
|
+
z36.object({
|
|
75172
|
+
success: z36.literal(false),
|
|
75173
|
+
error: z36.string()
|
|
74882
75174
|
})
|
|
74883
75175
|
]);
|
|
74884
|
-
var
|
|
75176
|
+
var requestTool18 = new ConnectorTool({
|
|
74885
75177
|
name: "request",
|
|
74886
75178
|
description: `Send authenticated requests to the Shopify Admin REST API.
|
|
74887
75179
|
Authentication is handled automatically using Custom App credentials (Client ID + Client Secret). An access token is obtained on each request.
|
|
74888
75180
|
The store domain is resolved from the connection \u2014 only provide the path starting with /admin/api/.
|
|
74889
75181
|
Use this tool for all Shopify API interactions: listing products, orders, customers, inventory, collections, and more.`,
|
|
74890
|
-
inputSchema:
|
|
74891
|
-
outputSchema:
|
|
75182
|
+
inputSchema: inputSchema36,
|
|
75183
|
+
outputSchema: outputSchema36,
|
|
74892
75184
|
async execute({ connectionId, method, path: path5, body }, connections) {
|
|
74893
75185
|
const connection2 = connections.find((c6) => c6.id === connectionId);
|
|
74894
75186
|
if (!connection2) {
|
|
@@ -74901,9 +75193,9 @@ Use this tool for all Shopify API interactions: listing products, orders, custom
|
|
|
74901
75193
|
`[connector-request] shopify/${connection2.name}: ${method} ${path5}`
|
|
74902
75194
|
);
|
|
74903
75195
|
try {
|
|
74904
|
-
const storeDomain =
|
|
74905
|
-
const clientId =
|
|
74906
|
-
const clientSecret =
|
|
75196
|
+
const storeDomain = parameters31.storeDomain.getValue(connection2);
|
|
75197
|
+
const clientId = parameters31.clientId.getValue(connection2);
|
|
75198
|
+
const clientSecret = parameters31.clientSecret.getValue(connection2);
|
|
74907
75199
|
const tokenRes = await fetch(
|
|
74908
75200
|
`https://${storeDomain}/admin/oauth/access_token`,
|
|
74909
75201
|
{
|
|
@@ -74931,7 +75223,7 @@ Use this tool for all Shopify API interactions: listing products, orders, custom
|
|
|
74931
75223
|
}
|
|
74932
75224
|
const url = `https://${storeDomain}${path5}`;
|
|
74933
75225
|
const controller = new AbortController();
|
|
74934
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
75226
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS25);
|
|
74935
75227
|
try {
|
|
74936
75228
|
const response = await fetch(url, {
|
|
74937
75229
|
method,
|
|
@@ -74959,14 +75251,14 @@ Use this tool for all Shopify API interactions: listing products, orders, custom
|
|
|
74959
75251
|
});
|
|
74960
75252
|
|
|
74961
75253
|
// ../connectors/src/connectors/shopify/index.ts
|
|
74962
|
-
var
|
|
75254
|
+
var tools31 = { request: requestTool18 };
|
|
74963
75255
|
var shopifyConnector = new ConnectorPlugin({
|
|
74964
75256
|
slug: "shopify",
|
|
74965
75257
|
authType: null,
|
|
74966
75258
|
name: "Shopify",
|
|
74967
75259
|
description: "Connect to Shopify for e-commerce data including products, orders, and customers.",
|
|
74968
75260
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/57KEjZCBskKgSxgKyU4Sm0/117d681a410f48dc36f97cdd9c0593c5/shopify-icon.svg",
|
|
74969
|
-
parameters:
|
|
75261
|
+
parameters: parameters31,
|
|
74970
75262
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
74971
75263
|
onboarding: shopifyOnboarding,
|
|
74972
75264
|
systemPrompt: {
|
|
@@ -75115,11 +75407,11 @@ export default async function handler(c: Context) {
|
|
|
75115
75407
|
- \`updated_at_min\`, \`updated_at_max\` \u2014 \u66F4\u65B0\u65E5\u30D5\u30A3\u30EB\u30BF\u30FC\uFF08ISO 8601\uFF09
|
|
75116
75408
|
- \`status\` \u2014 \u30B9\u30C6\u30FC\u30BF\u30B9\u3067\u30D5\u30A3\u30EB\u30BF\u30FC\uFF08\u4F8B: \u5546\u54C1\u306E\u5834\u5408 active, draft, archived\u3001\u6CE8\u6587\u306E\u5834\u5408 open, closed, cancelled, any\uFF09`
|
|
75117
75409
|
},
|
|
75118
|
-
tools:
|
|
75410
|
+
tools: tools31
|
|
75119
75411
|
});
|
|
75120
75412
|
|
|
75121
75413
|
// ../connectors/src/connectors/slack/parameters.ts
|
|
75122
|
-
var
|
|
75414
|
+
var parameters32 = {
|
|
75123
75415
|
botToken: new ParameterDefinition({
|
|
75124
75416
|
slug: "bot-token",
|
|
75125
75417
|
name: "Slack Bot Token",
|
|
@@ -75200,14 +75492,14 @@ The following scopes are commonly required. Inform the user if any are missing:
|
|
|
75200
75492
|
});
|
|
75201
75493
|
|
|
75202
75494
|
// ../connectors/src/connectors/slack/index.ts
|
|
75203
|
-
var
|
|
75495
|
+
var tools32 = {};
|
|
75204
75496
|
var slackConnector = new ConnectorPlugin({
|
|
75205
75497
|
slug: "slack",
|
|
75206
75498
|
authType: null,
|
|
75207
75499
|
name: "Slack",
|
|
75208
75500
|
description: "Connect to Slack for messaging and workspace data retrieval.",
|
|
75209
75501
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/7zTp67vMTvAV1wPftt6Z9R/f859e25c223d9fe4c3fd4f83895acbf6/slack.svg",
|
|
75210
|
-
parameters:
|
|
75502
|
+
parameters: parameters32,
|
|
75211
75503
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
75212
75504
|
onboarding: slackOnboarding,
|
|
75213
75505
|
systemPrompt: {
|
|
@@ -75282,12 +75574,12 @@ const data = await res.json();
|
|
|
75282
75574
|
- \u30EC\u30FC\u30C8\u5236\u9650: Tier 1-4\u3001\u307B\u3068\u3093\u3069\u306E\u30E1\u30BD\u30C3\u30C9\u306FTier 3\uFF081\u5206\u3042\u305F\u308A50\u56DE\u4EE5\u4E0A\uFF09
|
|
75283
75575
|
- \`data.ok\`\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044 \u2014 Slack\u306F\u30A8\u30E9\u30FC\u6642\u3082HTTP 200\u3092\u8FD4\u3057\u307E\u3059`
|
|
75284
75576
|
},
|
|
75285
|
-
tools:
|
|
75577
|
+
tools: tools32
|
|
75286
75578
|
});
|
|
75287
75579
|
|
|
75288
75580
|
// ../connectors/src/connectors/shopify-oauth/tools/request.ts
|
|
75289
|
-
import { z as
|
|
75290
|
-
var
|
|
75581
|
+
import { z as z37 } from "zod";
|
|
75582
|
+
var REQUEST_TIMEOUT_MS26 = 6e4;
|
|
75291
75583
|
var cachedToken13 = null;
|
|
75292
75584
|
async function getProxyToken13(config) {
|
|
75293
75585
|
if (cachedToken13 && cachedToken13.expiresAt > Date.now() + 6e4) {
|
|
@@ -75319,35 +75611,35 @@ async function getProxyToken13(config) {
|
|
|
75319
75611
|
};
|
|
75320
75612
|
return data.token;
|
|
75321
75613
|
}
|
|
75322
|
-
var
|
|
75323
|
-
toolUseIntent:
|
|
75614
|
+
var inputSchema37 = z37.object({
|
|
75615
|
+
toolUseIntent: z37.string().optional().describe(
|
|
75324
75616
|
"Brief description of what you intend to accomplish with this tool call"
|
|
75325
75617
|
),
|
|
75326
|
-
connectionId:
|
|
75327
|
-
method:
|
|
75328
|
-
path:
|
|
75618
|
+
connectionId: z37.string().describe("ID of the Shopify OAuth connection to use"),
|
|
75619
|
+
method: z37.enum(["GET", "POST", "PUT", "DELETE"]).describe("HTTP method"),
|
|
75620
|
+
path: z37.string().describe(
|
|
75329
75621
|
"API path (e.g., '/admin/api/2024-10/products.json', '/admin/api/2024-10/orders.json')"
|
|
75330
75622
|
),
|
|
75331
|
-
queryParams:
|
|
75332
|
-
body:
|
|
75623
|
+
queryParams: z37.record(z37.string(), z37.string()).optional().describe("Query parameters to append to the URL"),
|
|
75624
|
+
body: z37.record(z37.string(), z37.unknown()).optional().describe("Request body (JSON) for POST/PUT requests")
|
|
75333
75625
|
});
|
|
75334
|
-
var
|
|
75335
|
-
|
|
75336
|
-
success:
|
|
75337
|
-
status:
|
|
75338
|
-
data:
|
|
75626
|
+
var outputSchema37 = z37.discriminatedUnion("success", [
|
|
75627
|
+
z37.object({
|
|
75628
|
+
success: z37.literal(true),
|
|
75629
|
+
status: z37.number(),
|
|
75630
|
+
data: z37.record(z37.string(), z37.unknown())
|
|
75339
75631
|
}),
|
|
75340
|
-
|
|
75341
|
-
success:
|
|
75342
|
-
error:
|
|
75632
|
+
z37.object({
|
|
75633
|
+
success: z37.literal(false),
|
|
75634
|
+
error: z37.string()
|
|
75343
75635
|
})
|
|
75344
75636
|
]);
|
|
75345
|
-
var
|
|
75637
|
+
var requestTool19 = new ConnectorTool({
|
|
75346
75638
|
name: "request",
|
|
75347
75639
|
description: `Send authenticated requests to the Shopify Admin API.
|
|
75348
75640
|
Authentication is handled automatically via OAuth proxy.`,
|
|
75349
|
-
inputSchema:
|
|
75350
|
-
outputSchema:
|
|
75641
|
+
inputSchema: inputSchema37,
|
|
75642
|
+
outputSchema: outputSchema37,
|
|
75351
75643
|
async execute({ connectionId, method, path: path5, queryParams, body }, connections, config) {
|
|
75352
75644
|
const connection2 = connections.find((c6) => c6.id === connectionId);
|
|
75353
75645
|
if (!connection2) {
|
|
@@ -75368,7 +75660,7 @@ Authentication is handled automatically via OAuth proxy.`,
|
|
|
75368
75660
|
const token = await getProxyToken13(config.oauthProxy);
|
|
75369
75661
|
const proxyUrl = `https://${config.oauthProxy.sandboxId}.${config.oauthProxy.previewBaseDomain}/_sqcore/connections/${connectionId}/request`;
|
|
75370
75662
|
const controller = new AbortController();
|
|
75371
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
75663
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS26);
|
|
75372
75664
|
try {
|
|
75373
75665
|
const response = await fetch(proxyUrl, {
|
|
75374
75666
|
method: "POST",
|
|
@@ -75400,12 +75692,12 @@ Authentication is handled automatically via OAuth proxy.`,
|
|
|
75400
75692
|
});
|
|
75401
75693
|
|
|
75402
75694
|
// ../connectors/src/connectors/shopify-oauth/setup.ts
|
|
75403
|
-
var
|
|
75695
|
+
var requestToolName6 = `shopify-oauth_${requestTool19.name}`;
|
|
75404
75696
|
var shopifyOauthOnboarding = new ConnectorOnboarding({
|
|
75405
75697
|
connectionSetupInstructions: {
|
|
75406
75698
|
ja: `\u4EE5\u4E0B\u306E\u624B\u9806\u3067Shopify\u30B3\u30CD\u30AF\u30B7\u30E7\u30F3\u306E\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u3092\u884C\u3063\u3066\u304F\u3060\u3055\u3044\u3002
|
|
75407
75699
|
|
|
75408
|
-
1. \`${
|
|
75700
|
+
1. \`${requestToolName6}\` \u3092\u547C\u3073\u51FA\u3057\u3066\u3001\u30B7\u30E7\u30C3\u30D7\u60C5\u5831\u3092\u53D6\u5F97\u3059\u308B:
|
|
75409
75701
|
- \`method\`: \`"GET"\`
|
|
75410
75702
|
- \`path\`: \`"/admin/api/2024-10/shop.json"\`
|
|
75411
75703
|
2. \u30A8\u30E9\u30FC\u304C\u8FD4\u3055\u308C\u305F\u5834\u5408\u3001\u30E6\u30FC\u30B6\u30FC\u306BOAuth\u63A5\u7D9A\u306E\u8A2D\u5B9A\u3092\u78BA\u8A8D\u3059\u308B\u3088\u3046\u4F1D\u3048\u308B
|
|
@@ -75418,7 +75710,7 @@ var shopifyOauthOnboarding = new ConnectorOnboarding({
|
|
|
75418
75710
|
- \u30C4\u30FC\u30EB\u9593\u306F1\u6587\u3060\u3051\u66F8\u3044\u3066\u5373\u6B21\u306E\u30C4\u30FC\u30EB\u547C\u3073\u51FA\u3057\u3002\u4E0D\u8981\u306A\u8AAC\u660E\u306F\u7701\u7565\u3057\u3001\u52B9\u7387\u7684\u306B\u9032\u3081\u308B`,
|
|
75419
75711
|
en: `Follow these steps to set up the Shopify connection.
|
|
75420
75712
|
|
|
75421
|
-
1. Call \`${
|
|
75713
|
+
1. Call \`${requestToolName6}\` to fetch shop info:
|
|
75422
75714
|
- \`method\`: \`"GET"\`
|
|
75423
75715
|
- \`path\`: \`"/admin/api/2024-10/shop.json"\`
|
|
75424
75716
|
2. If an error is returned, ask the user to check the OAuth connection settings
|
|
@@ -75441,17 +75733,17 @@ var shopifyOauthOnboarding = new ConnectorOnboarding({
|
|
|
75441
75733
|
});
|
|
75442
75734
|
|
|
75443
75735
|
// ../connectors/src/connectors/shopify-oauth/parameters.ts
|
|
75444
|
-
var
|
|
75736
|
+
var parameters33 = {};
|
|
75445
75737
|
|
|
75446
75738
|
// ../connectors/src/connectors/shopify-oauth/index.ts
|
|
75447
|
-
var
|
|
75739
|
+
var tools33 = { request: requestTool19 };
|
|
75448
75740
|
var shopifyOauthConnector = new ConnectorPlugin({
|
|
75449
75741
|
slug: "shopify",
|
|
75450
75742
|
authType: AUTH_TYPES.OAUTH,
|
|
75451
75743
|
name: "Shopify (OAuth)",
|
|
75452
75744
|
description: "Connect to Shopify for e-commerce data including products, orders, and customers using OAuth.",
|
|
75453
75745
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/57KEjZCBskKgSxgKyU4Sm0/117d681a410f48dc36f97cdd9c0593c5/shopify-icon.svg",
|
|
75454
|
-
parameters:
|
|
75746
|
+
parameters: parameters33,
|
|
75455
75747
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
75456
75748
|
onboarding: shopifyOauthOnboarding,
|
|
75457
75749
|
proxyPolicy: {
|
|
@@ -75558,7 +75850,7 @@ const res = await shopify.request("/admin/api/2024-10/products.json?limit=10");
|
|
|
75558
75850
|
const data = await res.json();
|
|
75559
75851
|
\`\`\``
|
|
75560
75852
|
},
|
|
75561
|
-
tools:
|
|
75853
|
+
tools: tools33,
|
|
75562
75854
|
async checkConnection(_params, config) {
|
|
75563
75855
|
const { proxyFetch } = config;
|
|
75564
75856
|
try {
|
|
@@ -75583,7 +75875,7 @@ const data = await res.json();
|
|
|
75583
75875
|
});
|
|
75584
75876
|
|
|
75585
75877
|
// ../connectors/src/connectors/ms-teams/parameters.ts
|
|
75586
|
-
var
|
|
75878
|
+
var parameters34 = {
|
|
75587
75879
|
clientId: new ParameterDefinition({
|
|
75588
75880
|
slug: "client-id",
|
|
75589
75881
|
name: "Azure AD Client ID",
|
|
@@ -75614,14 +75906,14 @@ var parameters33 = {
|
|
|
75614
75906
|
};
|
|
75615
75907
|
|
|
75616
75908
|
// ../connectors/src/connectors/ms-teams/index.ts
|
|
75617
|
-
var
|
|
75909
|
+
var tools34 = {};
|
|
75618
75910
|
var msTeamsConnector = new ConnectorPlugin({
|
|
75619
75911
|
slug: "microsoft-teams",
|
|
75620
75912
|
authType: null,
|
|
75621
75913
|
name: "Microsoft Teams",
|
|
75622
75914
|
description: "Connect to Microsoft Teams for messaging, channels, and team data.",
|
|
75623
75915
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/6QM1sVuqarTJAB2UihVNQ9/12b8353c9b022916d72ef0f53349bae2/microsoft-teams-icon.svg",
|
|
75624
|
-
parameters:
|
|
75916
|
+
parameters: parameters34,
|
|
75625
75917
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
75626
75918
|
systemPrompt: {
|
|
75627
75919
|
en: `### Microsoft Teams SDK (TypeScript handler)
|
|
@@ -75771,13 +76063,13 @@ const data = await res.json();
|
|
|
75771
76063
|
- Graph API\u304C**403 Forbidden**\u3092\u8FD4\u3059\u5834\u5408\u3001Azure AD\u30A2\u30D7\u30EA\u306B\u5FC5\u8981\u306A\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u6A29\u9650\u304C\u4E0D\u8DB3\u3057\u3066\u3044\u308B\u304B\u3001\u7BA1\u7406\u8005\u540C\u610F\u304C\u4ED8\u4E0E\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u30E6\u30FC\u30B6\u30FC\u306BAzure\u30DD\u30FC\u30BF\u30EB > \u30A2\u30D7\u30EA\u306E\u767B\u9332 > API\u6A29\u9650\u3067\u3001\u5FC5\u8981\u306A\u6A29\u9650\uFF08\u307E\u305F\u306F\u305D\u308C\u4EE5\u4E0A\u306E\u6A29\u9650\uFF09\u306E\u7BA1\u7406\u8005\u540C\u610F\u3092\u4ED8\u4E0E\u3059\u308B\u3088\u3046\u4F9D\u983C\u3057\u3066\u304F\u3060\u3055\u3044: Team.ReadBasic.All, Channel.ReadBasic.All, ChannelMessage.Read.All, Chat.Read.All, User.Read.All
|
|
75772
76064
|
- Graph API\u304C**401 Unauthorized**\u3092\u8FD4\u3059\u5834\u5408\u3001\u30A2\u30AF\u30BB\u30B9\u30C8\u30FC\u30AF\u30F3\u304C\u7121\u52B9\u307E\u305F\u306F\u671F\u9650\u5207\u308C\u306E\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\u8CC7\u683C\u60C5\u5831\u30D5\u30ED\u30FC\u3067\u518D\u53D6\u5F97\u3057\u3066\u304F\u3060\u3055\u3044`
|
|
75773
76065
|
},
|
|
75774
|
-
tools:
|
|
76066
|
+
tools: tools34
|
|
75775
76067
|
});
|
|
75776
76068
|
|
|
75777
76069
|
// ../connectors/src/connectors/ms-teams-oauth/tools/request.ts
|
|
75778
|
-
import { z as
|
|
75779
|
-
var
|
|
75780
|
-
var
|
|
76070
|
+
import { z as z38 } from "zod";
|
|
76071
|
+
var BASE_URL16 = "https://graph.microsoft.com";
|
|
76072
|
+
var REQUEST_TIMEOUT_MS27 = 6e4;
|
|
75781
76073
|
var cachedToken14 = null;
|
|
75782
76074
|
async function getProxyToken14(config) {
|
|
75783
76075
|
if (cachedToken14 && cachedToken14.expiresAt > Date.now() + 6e4) {
|
|
@@ -75809,35 +76101,35 @@ async function getProxyToken14(config) {
|
|
|
75809
76101
|
};
|
|
75810
76102
|
return data.token;
|
|
75811
76103
|
}
|
|
75812
|
-
var
|
|
75813
|
-
toolUseIntent:
|
|
76104
|
+
var inputSchema38 = z38.object({
|
|
76105
|
+
toolUseIntent: z38.string().optional().describe(
|
|
75814
76106
|
"Brief description of what you intend to accomplish with this tool call"
|
|
75815
76107
|
),
|
|
75816
|
-
connectionId:
|
|
75817
|
-
method:
|
|
75818
|
-
path:
|
|
76108
|
+
connectionId: z38.string().describe("ID of the Microsoft Teams OAuth connection to use"),
|
|
76109
|
+
method: z38.enum(["GET", "POST", "PATCH", "DELETE"]).describe("HTTP method"),
|
|
76110
|
+
path: z38.string().describe(
|
|
75819
76111
|
"API path appended to https://graph.microsoft.com (e.g., '/v1.0/me/joinedTeams', '/v1.0/teams/{id}/channels')"
|
|
75820
76112
|
),
|
|
75821
|
-
queryParams:
|
|
75822
|
-
body:
|
|
76113
|
+
queryParams: z38.record(z38.string(), z38.string()).optional().describe("Query parameters to append to the URL"),
|
|
76114
|
+
body: z38.record(z38.string(), z38.unknown()).optional().describe("Request body (JSON) for POST/PATCH requests")
|
|
75823
76115
|
});
|
|
75824
|
-
var
|
|
75825
|
-
|
|
75826
|
-
success:
|
|
75827
|
-
status:
|
|
75828
|
-
data:
|
|
76116
|
+
var outputSchema38 = z38.discriminatedUnion("success", [
|
|
76117
|
+
z38.object({
|
|
76118
|
+
success: z38.literal(true),
|
|
76119
|
+
status: z38.number(),
|
|
76120
|
+
data: z38.record(z38.string(), z38.unknown())
|
|
75829
76121
|
}),
|
|
75830
|
-
|
|
75831
|
-
success:
|
|
75832
|
-
error:
|
|
76122
|
+
z38.object({
|
|
76123
|
+
success: z38.literal(false),
|
|
76124
|
+
error: z38.string()
|
|
75833
76125
|
})
|
|
75834
76126
|
]);
|
|
75835
|
-
var
|
|
76127
|
+
var requestTool20 = new ConnectorTool({
|
|
75836
76128
|
name: "request",
|
|
75837
76129
|
description: `Send authenticated requests to the Microsoft Graph API.
|
|
75838
76130
|
Authentication is handled automatically via OAuth proxy.`,
|
|
75839
|
-
inputSchema:
|
|
75840
|
-
outputSchema:
|
|
76131
|
+
inputSchema: inputSchema38,
|
|
76132
|
+
outputSchema: outputSchema38,
|
|
75841
76133
|
async execute({ connectionId, method, path: path5, queryParams, body }, connections, config) {
|
|
75842
76134
|
const connection2 = connections.find((c6) => c6.id === connectionId);
|
|
75843
76135
|
if (!connection2) {
|
|
@@ -75850,7 +76142,7 @@ Authentication is handled automatically via OAuth proxy.`,
|
|
|
75850
76142
|
`[connector-request] ms-teams-oauth/${connection2.name}: ${method} ${path5}`
|
|
75851
76143
|
);
|
|
75852
76144
|
try {
|
|
75853
|
-
let url = `${
|
|
76145
|
+
let url = `${BASE_URL16}${path5.startsWith("/") ? "" : "/"}${path5}`;
|
|
75854
76146
|
if (queryParams) {
|
|
75855
76147
|
const searchParams = new URLSearchParams(queryParams);
|
|
75856
76148
|
url += `?${searchParams.toString()}`;
|
|
@@ -75858,7 +76150,7 @@ Authentication is handled automatically via OAuth proxy.`,
|
|
|
75858
76150
|
const token = await getProxyToken14(config.oauthProxy);
|
|
75859
76151
|
const proxyUrl = `https://${config.oauthProxy.sandboxId}.${config.oauthProxy.previewBaseDomain}/_sqcore/connections/${connectionId}/request`;
|
|
75860
76152
|
const controller = new AbortController();
|
|
75861
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
76153
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS27);
|
|
75862
76154
|
try {
|
|
75863
76155
|
const response = await fetch(proxyUrl, {
|
|
75864
76156
|
method: "POST",
|
|
@@ -75890,12 +76182,12 @@ Authentication is handled automatically via OAuth proxy.`,
|
|
|
75890
76182
|
});
|
|
75891
76183
|
|
|
75892
76184
|
// ../connectors/src/connectors/ms-teams-oauth/setup.ts
|
|
75893
|
-
var
|
|
76185
|
+
var requestToolName7 = `microsoft-teams-oauth_${requestTool20.name}`;
|
|
75894
76186
|
var msTeamsOauthOnboarding = new ConnectorOnboarding({
|
|
75895
76187
|
connectionSetupInstructions: {
|
|
75896
76188
|
ja: `\u4EE5\u4E0B\u306E\u624B\u9806\u3092\u6B63\u78BA\u306B\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u624B\u9806\u306B\u8A18\u8F09\u306E\u306A\u3044\u8FFD\u52A0\u306EAPI\u30EA\u30AF\u30A8\u30B9\u30C8\u306F\u4E00\u5207\u884C\u308F\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002
|
|
75897
76189
|
|
|
75898
|
-
1. \`${
|
|
76190
|
+
1. \`${requestToolName7}\` \u3092\u547C\u3073\u51FA\u3057\u3066\u3001\u30E6\u30FC\u30B6\u30FC\u60C5\u5831\u3092\u53D6\u5F97\u3059\u308B:
|
|
75899
76191
|
- \`method\`: \`"GET"\`
|
|
75900
76192
|
- \`path\`: \`"/v1.0/me"\`
|
|
75901
76193
|
2. \u30A8\u30E9\u30FC\u304C\u8FD4\u3055\u308C\u305F\u5834\u5408\u3001\u30E6\u30FC\u30B6\u30FC\u306BOAuth\u63A5\u7D9A\u306E\u8A2D\u5B9A\u3092\u78BA\u8A8D\u3059\u308B\u3088\u3046\u4F1D\u3048\u308B
|
|
@@ -75909,7 +76201,7 @@ var msTeamsOauthOnboarding = new ConnectorOnboarding({
|
|
|
75909
76201
|
- \u30C4\u30FC\u30EB\u9593\u306F1\u6587\u3060\u3051\u66F8\u3044\u3066\u5373\u6B21\u306E\u30C4\u30FC\u30EB\u547C\u3073\u51FA\u3057\u3002\u4E0D\u8981\u306A\u8AAC\u660E\u306F\u7701\u7565\u3057\u3001\u52B9\u7387\u7684\u306B\u9032\u3081\u308B`,
|
|
75910
76202
|
en: `Follow these steps exactly. Do NOT make any API requests not listed in the steps below.
|
|
75911
76203
|
|
|
75912
|
-
1. Call \`${
|
|
76204
|
+
1. Call \`${requestToolName7}\` to fetch user info:
|
|
75913
76205
|
- \`method\`: \`"GET"\`
|
|
75914
76206
|
- \`path\`: \`"/v1.0/me"\`
|
|
75915
76207
|
2. If an error is returned, ask the user to check the OAuth connection settings
|
|
@@ -75933,17 +76225,17 @@ var msTeamsOauthOnboarding = new ConnectorOnboarding({
|
|
|
75933
76225
|
});
|
|
75934
76226
|
|
|
75935
76227
|
// ../connectors/src/connectors/ms-teams-oauth/parameters.ts
|
|
75936
|
-
var
|
|
76228
|
+
var parameters35 = {};
|
|
75937
76229
|
|
|
75938
76230
|
// ../connectors/src/connectors/ms-teams-oauth/index.ts
|
|
75939
|
-
var
|
|
76231
|
+
var tools35 = { request: requestTool20 };
|
|
75940
76232
|
var msTeamsOauthConnector = new ConnectorPlugin({
|
|
75941
76233
|
slug: "microsoft-teams",
|
|
75942
76234
|
authType: AUTH_TYPES.OAUTH,
|
|
75943
76235
|
name: "Microsoft Teams (OAuth)",
|
|
75944
76236
|
description: "Connect to Microsoft Teams for messaging, channels, and team data using OAuth.",
|
|
75945
76237
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/6QM1sVuqarTJAB2UihVNQ9/12b8353c9b022916d72ef0f53349bae2/microsoft-teams-icon.svg",
|
|
75946
|
-
parameters:
|
|
76238
|
+
parameters: parameters35,
|
|
75947
76239
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
75948
76240
|
onboarding: msTeamsOauthOnboarding,
|
|
75949
76241
|
proxyPolicy: {
|
|
@@ -76046,7 +76338,7 @@ const res = await teams.request("/v1.0/me/joinedTeams");
|
|
|
76046
76338
|
const data = await res.json();
|
|
76047
76339
|
\`\`\``
|
|
76048
76340
|
},
|
|
76049
|
-
tools:
|
|
76341
|
+
tools: tools35,
|
|
76050
76342
|
async checkConnection(_params, config) {
|
|
76051
76343
|
const { proxyFetch } = config;
|
|
76052
76344
|
try {
|
|
@@ -76083,11 +76375,11 @@ var hubspotOnboarding2 = new ConnectorOnboarding({
|
|
|
76083
76375
|
});
|
|
76084
76376
|
|
|
76085
76377
|
// ../connectors/src/connectors/hubspot/parameters.ts
|
|
76086
|
-
var
|
|
76378
|
+
var parameters36 = {
|
|
76087
76379
|
apiKey: new ParameterDefinition({
|
|
76088
76380
|
slug: "api-key",
|
|
76089
|
-
name: "
|
|
76090
|
-
description: "Your HubSpot
|
|
76381
|
+
name: "Private App Access Token",
|
|
76382
|
+
description: "Your HubSpot Private App Access Token for authentication (starts with pat-). You can find it at Settings \u2192 Development \u2192 Legacy Apps \u2192 your Private App.",
|
|
76091
76383
|
envVarBaseKey: "HUBSPOT_API_KEY",
|
|
76092
76384
|
type: "text",
|
|
76093
76385
|
secret: true,
|
|
@@ -76096,41 +76388,41 @@ var parameters35 = {
|
|
|
76096
76388
|
};
|
|
76097
76389
|
|
|
76098
76390
|
// ../connectors/src/connectors/hubspot/tools/request.ts
|
|
76099
|
-
import { z as
|
|
76100
|
-
var
|
|
76101
|
-
var
|
|
76102
|
-
var
|
|
76103
|
-
toolUseIntent:
|
|
76391
|
+
import { z as z39 } from "zod";
|
|
76392
|
+
var BASE_URL17 = "https://api.hubapi.com";
|
|
76393
|
+
var REQUEST_TIMEOUT_MS28 = 6e4;
|
|
76394
|
+
var inputSchema39 = z39.object({
|
|
76395
|
+
toolUseIntent: z39.string().optional().describe(
|
|
76104
76396
|
"Brief description of what you intend to accomplish with this tool call"
|
|
76105
76397
|
),
|
|
76106
|
-
connectionId:
|
|
76107
|
-
method:
|
|
76398
|
+
connectionId: z39.string().describe("ID of the HubSpot connection to use"),
|
|
76399
|
+
method: z39.enum(["GET", "POST", "PATCH", "DELETE"]).describe(
|
|
76108
76400
|
"HTTP method. GET for reading resources, POST for creating or searching, PATCH for updating, DELETE for removing."
|
|
76109
76401
|
),
|
|
76110
|
-
path:
|
|
76402
|
+
path: z39.string().describe(
|
|
76111
76403
|
"API path appended to https://api.hubapi.com (e.g., '/crm/v3/objects/contacts', '/crm/v3/objects/deals', '/crm/v3/objects/contacts/search')"
|
|
76112
76404
|
),
|
|
76113
|
-
body:
|
|
76405
|
+
body: z39.record(z39.string(), z39.unknown()).optional().describe("Request body (JSON) for POST/PATCH requests")
|
|
76114
76406
|
});
|
|
76115
|
-
var
|
|
76116
|
-
|
|
76117
|
-
success:
|
|
76118
|
-
status:
|
|
76119
|
-
data:
|
|
76407
|
+
var outputSchema39 = z39.discriminatedUnion("success", [
|
|
76408
|
+
z39.object({
|
|
76409
|
+
success: z39.literal(true),
|
|
76410
|
+
status: z39.number(),
|
|
76411
|
+
data: z39.record(z39.string(), z39.unknown())
|
|
76120
76412
|
}),
|
|
76121
|
-
|
|
76122
|
-
success:
|
|
76123
|
-
error:
|
|
76413
|
+
z39.object({
|
|
76414
|
+
success: z39.literal(false),
|
|
76415
|
+
error: z39.string()
|
|
76124
76416
|
})
|
|
76125
76417
|
]);
|
|
76126
|
-
var
|
|
76418
|
+
var requestTool21 = new ConnectorTool({
|
|
76127
76419
|
name: "request",
|
|
76128
76420
|
description: `Send authenticated requests to the HubSpot API.
|
|
76129
76421
|
Authentication is handled automatically using the Personal Access Key (Bearer token).
|
|
76130
76422
|
Use this tool for all HubSpot API interactions: querying contacts, deals, companies, tickets, and other CRM objects.
|
|
76131
76423
|
Use the search endpoint (POST /crm/v3/objects/{objectType}/search) for complex queries with filters.`,
|
|
76132
|
-
inputSchema:
|
|
76133
|
-
outputSchema:
|
|
76424
|
+
inputSchema: inputSchema39,
|
|
76425
|
+
outputSchema: outputSchema39,
|
|
76134
76426
|
async execute({ connectionId, method, path: path5, body }, connections) {
|
|
76135
76427
|
const connection2 = connections.find((c6) => c6.id === connectionId);
|
|
76136
76428
|
if (!connection2) {
|
|
@@ -76143,10 +76435,10 @@ Use the search endpoint (POST /crm/v3/objects/{objectType}/search) for complex q
|
|
|
76143
76435
|
`[connector-request] hubspot/${connection2.name}: ${method} ${path5}`
|
|
76144
76436
|
);
|
|
76145
76437
|
try {
|
|
76146
|
-
const apiKey =
|
|
76147
|
-
const url = `${
|
|
76438
|
+
const apiKey = parameters36.apiKey.getValue(connection2);
|
|
76439
|
+
const url = `${BASE_URL17}${path5.startsWith("/") ? "" : "/"}${path5}`;
|
|
76148
76440
|
const controller = new AbortController();
|
|
76149
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
76441
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS28);
|
|
76150
76442
|
try {
|
|
76151
76443
|
const response = await fetch(url, {
|
|
76152
76444
|
method,
|
|
@@ -76174,14 +76466,14 @@ Use the search endpoint (POST /crm/v3/objects/{objectType}/search) for complex q
|
|
|
76174
76466
|
});
|
|
76175
76467
|
|
|
76176
76468
|
// ../connectors/src/connectors/hubspot/index.ts
|
|
76177
|
-
var
|
|
76469
|
+
var tools36 = { request: requestTool21 };
|
|
76178
76470
|
var hubspotConnector = new ConnectorPlugin({
|
|
76179
76471
|
slug: "hubspot",
|
|
76180
|
-
authType:
|
|
76472
|
+
authType: null,
|
|
76181
76473
|
name: "HubSpot",
|
|
76182
76474
|
description: "Connect to HubSpot CRM for contacts, deals, companies, and marketing data using a Personal Access Key.",
|
|
76183
76475
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/5UcSkKkzhUMA4RsM45ynuo/43b967e36915ca0fc5d277684b204320/hubspot.svg",
|
|
76184
|
-
parameters:
|
|
76476
|
+
parameters: parameters36,
|
|
76185
76477
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
76186
76478
|
onboarding: hubspotOnboarding2,
|
|
76187
76479
|
systemPrompt: {
|
|
@@ -76318,7 +76610,7 @@ export default async function handler(c: Context) {
|
|
|
76318
76610
|
- \`limit\` \u2014 \u30DA\u30FC\u30B8\u3042\u305F\u308A\u306E\u6700\u5927\u7D50\u679C\u6570\uFF08\u6700\u5927100\uFF09
|
|
76319
76611
|
- \`after\` \u2014 \u30DA\u30FC\u30B8\u30CD\u30FC\u30B7\u30E7\u30F3\u30AA\u30D5\u30BB\u30C3\u30C8`
|
|
76320
76612
|
},
|
|
76321
|
-
tools:
|
|
76613
|
+
tools: tools36
|
|
76322
76614
|
});
|
|
76323
76615
|
|
|
76324
76616
|
// ../connectors/src/connectors/jira/setup.ts
|
|
@@ -76334,7 +76626,7 @@ var jiraOnboarding = new ConnectorOnboarding({
|
|
|
76334
76626
|
});
|
|
76335
76627
|
|
|
76336
76628
|
// ../connectors/src/connectors/jira/parameters.ts
|
|
76337
|
-
var
|
|
76629
|
+
var parameters37 = {
|
|
76338
76630
|
instanceUrl: new ParameterDefinition({
|
|
76339
76631
|
slug: "instance-url",
|
|
76340
76632
|
name: "Jira Instance URL",
|
|
@@ -76365,34 +76657,34 @@ var parameters36 = {
|
|
|
76365
76657
|
};
|
|
76366
76658
|
|
|
76367
76659
|
// ../connectors/src/connectors/jira/tools/request.ts
|
|
76368
|
-
import { z as
|
|
76369
|
-
var
|
|
76370
|
-
var
|
|
76371
|
-
toolUseIntent:
|
|
76372
|
-
connectionId:
|
|
76373
|
-
method:
|
|
76374
|
-
path:
|
|
76375
|
-
body:
|
|
76660
|
+
import { z as z40 } from "zod";
|
|
76661
|
+
var REQUEST_TIMEOUT_MS29 = 6e4;
|
|
76662
|
+
var inputSchema40 = z40.object({
|
|
76663
|
+
toolUseIntent: z40.string().optional().describe("Brief description of what you intend to accomplish with this tool call"),
|
|
76664
|
+
connectionId: z40.string().describe("ID of the Jira connection to use"),
|
|
76665
|
+
method: z40.enum(["GET", "POST", "PUT", "DELETE"]).describe("HTTP method. Use GET to read resources, POST to create or search, PUT to update, DELETE to remove."),
|
|
76666
|
+
path: z40.string().describe("API path relative to /rest/api/3/ (e.g., 'project', 'search', 'issue/PROJ-123'). Query parameters can be appended (e.g., 'project?maxResults=50')."),
|
|
76667
|
+
body: z40.record(z40.string(), z40.unknown()).optional().describe("Request body as JSON object. Required for POST and PUT requests (e.g., issue creation, JQL search).")
|
|
76376
76668
|
});
|
|
76377
|
-
var
|
|
76378
|
-
|
|
76379
|
-
success:
|
|
76380
|
-
status:
|
|
76381
|
-
data:
|
|
76669
|
+
var outputSchema40 = z40.discriminatedUnion("success", [
|
|
76670
|
+
z40.object({
|
|
76671
|
+
success: z40.literal(true),
|
|
76672
|
+
status: z40.number(),
|
|
76673
|
+
data: z40.union([z40.record(z40.string(), z40.unknown()), z40.array(z40.unknown())])
|
|
76382
76674
|
}),
|
|
76383
|
-
|
|
76384
|
-
success:
|
|
76385
|
-
error:
|
|
76675
|
+
z40.object({
|
|
76676
|
+
success: z40.literal(false),
|
|
76677
|
+
error: z40.string()
|
|
76386
76678
|
})
|
|
76387
76679
|
]);
|
|
76388
|
-
var
|
|
76680
|
+
var requestTool22 = new ConnectorTool({
|
|
76389
76681
|
name: "request",
|
|
76390
76682
|
description: `Send authenticated requests to the Jira Cloud REST API (v3).
|
|
76391
76683
|
Authentication is handled automatically using Basic Auth (email + API token).
|
|
76392
76684
|
Use this tool for all Jira operations: listing projects, searching issues with JQL, creating/updating issues, managing transitions, and adding comments.
|
|
76393
76685
|
The base URL and authentication credentials are configured per connection \u2014 only specify the API path relative to /rest/api/3/.`,
|
|
76394
|
-
inputSchema:
|
|
76395
|
-
outputSchema:
|
|
76686
|
+
inputSchema: inputSchema40,
|
|
76687
|
+
outputSchema: outputSchema40,
|
|
76396
76688
|
async execute({ connectionId, method, path: path5, body }, connections) {
|
|
76397
76689
|
const connection2 = connections.find((c6) => c6.id === connectionId);
|
|
76398
76690
|
if (!connection2) {
|
|
@@ -76400,13 +76692,13 @@ The base URL and authentication credentials are configured per connection \u2014
|
|
|
76400
76692
|
}
|
|
76401
76693
|
console.log(`[connector-request] jira-api-key/${connection2.name}: ${method} ${path5}`);
|
|
76402
76694
|
try {
|
|
76403
|
-
const instanceUrl =
|
|
76404
|
-
const email =
|
|
76405
|
-
const apiToken =
|
|
76695
|
+
const instanceUrl = parameters37.instanceUrl.getValue(connection2);
|
|
76696
|
+
const email = parameters37.email.getValue(connection2);
|
|
76697
|
+
const apiToken = parameters37.apiToken.getValue(connection2);
|
|
76406
76698
|
const baseUrl = `${instanceUrl.replace(/\/+$/, "")}/rest/api/3/${path5}`;
|
|
76407
76699
|
const credentials = Buffer.from(`${email}:${apiToken}`).toString("base64");
|
|
76408
76700
|
const controller = new AbortController();
|
|
76409
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
76701
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS29);
|
|
76410
76702
|
try {
|
|
76411
76703
|
const headers = {
|
|
76412
76704
|
Authorization: `Basic ${credentials}`,
|
|
@@ -76442,14 +76734,14 @@ The base URL and authentication credentials are configured per connection \u2014
|
|
|
76442
76734
|
});
|
|
76443
76735
|
|
|
76444
76736
|
// ../connectors/src/connectors/jira/index.ts
|
|
76445
|
-
var
|
|
76737
|
+
var tools37 = { request: requestTool22 };
|
|
76446
76738
|
var jiraConnector = new ConnectorPlugin({
|
|
76447
76739
|
slug: "jira",
|
|
76448
76740
|
authType: AUTH_TYPES.API_KEY,
|
|
76449
76741
|
name: "Jira (API Key)",
|
|
76450
76742
|
description: "Connect to Jira Cloud for issue tracking, project management, and workflow data retrieval using API token authentication.",
|
|
76451
76743
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/5zt4yjb36szSPPkCECYlPL/bc3e7223dc84fb16a1cce53a80f5afcc/jira.png",
|
|
76452
|
-
parameters:
|
|
76744
|
+
parameters: parameters37,
|
|
76453
76745
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
76454
76746
|
onboarding: jiraOnboarding,
|
|
76455
76747
|
systemPrompt: {
|
|
@@ -76594,7 +76886,7 @@ await jira.request("/rest/api/3/issue", {
|
|
|
76594
76886
|
- \u95A2\u6570: currentUser(), startOfDay(), endOfWeek()
|
|
76595
76887
|
- \u30C6\u30AD\u30B9\u30C8\u691C\u7D22: summary ~ "\u30AD\u30FC\u30EF\u30FC\u30C9"`
|
|
76596
76888
|
},
|
|
76597
|
-
tools:
|
|
76889
|
+
tools: tools37
|
|
76598
76890
|
});
|
|
76599
76891
|
|
|
76600
76892
|
// ../connectors/src/connectors/linear/setup.ts
|
|
@@ -76614,7 +76906,7 @@ var linearOnboarding = new ConnectorOnboarding({
|
|
|
76614
76906
|
});
|
|
76615
76907
|
|
|
76616
76908
|
// ../connectors/src/connectors/linear/parameters.ts
|
|
76617
|
-
var
|
|
76909
|
+
var parameters38 = {
|
|
76618
76910
|
apiKey: new ParameterDefinition({
|
|
76619
76911
|
slug: "api-key",
|
|
76620
76912
|
name: "Linear API Key",
|
|
@@ -76627,39 +76919,39 @@ var parameters37 = {
|
|
|
76627
76919
|
};
|
|
76628
76920
|
|
|
76629
76921
|
// ../connectors/src/connectors/linear/tools/request.ts
|
|
76630
|
-
import { z as
|
|
76631
|
-
var
|
|
76632
|
-
var
|
|
76633
|
-
var
|
|
76634
|
-
toolUseIntent:
|
|
76922
|
+
import { z as z41 } from "zod";
|
|
76923
|
+
var BASE_URL18 = "https://api.linear.app/graphql";
|
|
76924
|
+
var REQUEST_TIMEOUT_MS30 = 6e4;
|
|
76925
|
+
var inputSchema41 = z41.object({
|
|
76926
|
+
toolUseIntent: z41.string().optional().describe(
|
|
76635
76927
|
"Brief description of what you intend to accomplish with this tool call"
|
|
76636
76928
|
),
|
|
76637
|
-
connectionId:
|
|
76638
|
-
query:
|
|
76929
|
+
connectionId: z41.string().describe("ID of the Linear connection to use"),
|
|
76930
|
+
query: z41.string().describe(
|
|
76639
76931
|
`GraphQL query or mutation string. Use standard GraphQL syntax. Example: '{ issues(first: 10) { nodes { id title state { name } } } }' for queries, or 'mutation { issueCreate(input: { title: "Bug fix", teamId: "TEAM_ID" }) { success issue { id title } } }' for mutations.`
|
|
76640
76932
|
),
|
|
76641
|
-
variables:
|
|
76933
|
+
variables: z41.record(z41.string(), z41.unknown()).optional().describe(
|
|
76642
76934
|
'Optional GraphQL variables object. Use with parameterized queries, e.g. { "teamId": "abc-123", "first": 10 }'
|
|
76643
76935
|
)
|
|
76644
76936
|
});
|
|
76645
|
-
var
|
|
76646
|
-
|
|
76647
|
-
success:
|
|
76648
|
-
data:
|
|
76937
|
+
var outputSchema41 = z41.discriminatedUnion("success", [
|
|
76938
|
+
z41.object({
|
|
76939
|
+
success: z41.literal(true),
|
|
76940
|
+
data: z41.record(z41.string(), z41.unknown())
|
|
76649
76941
|
}),
|
|
76650
|
-
|
|
76651
|
-
success:
|
|
76652
|
-
error:
|
|
76942
|
+
z41.object({
|
|
76943
|
+
success: z41.literal(false),
|
|
76944
|
+
error: z41.string()
|
|
76653
76945
|
})
|
|
76654
76946
|
]);
|
|
76655
|
-
var
|
|
76947
|
+
var requestTool23 = new ConnectorTool({
|
|
76656
76948
|
name: "request",
|
|
76657
76949
|
description: `Send authenticated GraphQL queries and mutations to the Linear API (https://api.linear.app/graphql).
|
|
76658
76950
|
Use this tool for all Linear interactions: querying issues, projects, teams, cycles, users, labels, workflow states, and performing mutations like creating/updating issues and comments.
|
|
76659
76951
|
Linear's API is GraphQL-only \u2014 there is no REST API. All requests are POST with a JSON body containing "query" and optional "variables".
|
|
76660
76952
|
Archived resources are hidden by default; pass includeArchived: true in query arguments to include them. Pagination uses Relay-style cursors with first/after and last/before arguments.`,
|
|
76661
|
-
inputSchema:
|
|
76662
|
-
outputSchema:
|
|
76953
|
+
inputSchema: inputSchema41,
|
|
76954
|
+
outputSchema: outputSchema41,
|
|
76663
76955
|
async execute({ connectionId, query, variables }, connections) {
|
|
76664
76956
|
const connection2 = connections.find((c6) => c6.id === connectionId);
|
|
76665
76957
|
if (!connection2) {
|
|
@@ -76672,13 +76964,13 @@ Archived resources are hidden by default; pass includeArchived: true in query ar
|
|
|
76672
76964
|
`[connector-request] linear/${connection2.name}: GraphQL request`
|
|
76673
76965
|
);
|
|
76674
76966
|
try {
|
|
76675
|
-
const apiKey =
|
|
76967
|
+
const apiKey = parameters38.apiKey.getValue(connection2);
|
|
76676
76968
|
const controller = new AbortController();
|
|
76677
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
76969
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS30);
|
|
76678
76970
|
try {
|
|
76679
76971
|
const body = { query };
|
|
76680
76972
|
if (variables) body.variables = variables;
|
|
76681
|
-
const response = await fetch(
|
|
76973
|
+
const response = await fetch(BASE_URL18, {
|
|
76682
76974
|
method: "POST",
|
|
76683
76975
|
headers: {
|
|
76684
76976
|
Authorization: apiKey,
|
|
@@ -76717,14 +77009,14 @@ Archived resources are hidden by default; pass includeArchived: true in query ar
|
|
|
76717
77009
|
});
|
|
76718
77010
|
|
|
76719
77011
|
// ../connectors/src/connectors/linear/index.ts
|
|
76720
|
-
var
|
|
77012
|
+
var tools38 = { request: requestTool23 };
|
|
76721
77013
|
var linearConnector = new ConnectorPlugin({
|
|
76722
77014
|
slug: "linear",
|
|
76723
77015
|
authType: null,
|
|
76724
77016
|
name: "Linear",
|
|
76725
77017
|
description: "Connect to Linear for project management data \u2014 issues, projects, teams, cycles, and more.",
|
|
76726
77018
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/6oR77h6TeniXGdmnp2P2LX/a2ac8630ae52d164363adb0c695d9f0b/linear.webp",
|
|
76727
|
-
parameters:
|
|
77019
|
+
parameters: parameters38,
|
|
76728
77020
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
76729
77021
|
onboarding: linearOnboarding,
|
|
76730
77022
|
systemPrompt: {
|
|
@@ -76851,7 +77143,7 @@ export default async function handler(c: Context) {
|
|
|
76851
77143
|
- \`mutation { issueUpdate(id: "...", input: { stateId: "..." }) { success issue { id title state { name } } } }\` \u2014 Issue\u66F4\u65B0
|
|
76852
77144
|
- \`mutation { commentCreate(input: { issueId: "...", body: "..." }) { success comment { id body } } }\` \u2014 \u30B3\u30E1\u30F3\u30C8\u8FFD\u52A0`
|
|
76853
77145
|
},
|
|
76854
|
-
tools:
|
|
77146
|
+
tools: tools38
|
|
76855
77147
|
});
|
|
76856
77148
|
|
|
76857
77149
|
// ../connectors/src/connectors/asana/setup.ts
|
|
@@ -76869,7 +77161,7 @@ var asanaOnboarding = new ConnectorOnboarding({
|
|
|
76869
77161
|
});
|
|
76870
77162
|
|
|
76871
77163
|
// ../connectors/src/connectors/asana/parameters.ts
|
|
76872
|
-
var
|
|
77164
|
+
var parameters39 = {
|
|
76873
77165
|
personalAccessToken: new ParameterDefinition({
|
|
76874
77166
|
slug: "personal-access-token",
|
|
76875
77167
|
name: "Asana Personal Access Token",
|
|
@@ -76882,36 +77174,36 @@ var parameters38 = {
|
|
|
76882
77174
|
};
|
|
76883
77175
|
|
|
76884
77176
|
// ../connectors/src/connectors/asana/tools/request.ts
|
|
76885
|
-
import { z as
|
|
76886
|
-
var
|
|
76887
|
-
var
|
|
76888
|
-
var
|
|
76889
|
-
toolUseIntent:
|
|
77177
|
+
import { z as z42 } from "zod";
|
|
77178
|
+
var BASE_URL19 = "https://app.asana.com/api/1.0";
|
|
77179
|
+
var REQUEST_TIMEOUT_MS31 = 6e4;
|
|
77180
|
+
var inputSchema42 = z42.object({
|
|
77181
|
+
toolUseIntent: z42.string().optional().describe(
|
|
76890
77182
|
"Brief description of what you intend to accomplish with this tool call"
|
|
76891
77183
|
),
|
|
76892
|
-
connectionId:
|
|
76893
|
-
method:
|
|
77184
|
+
connectionId: z42.string().describe("ID of the Asana connection to use"),
|
|
77185
|
+
method: z42.enum(["GET", "POST", "PUT", "DELETE"]).describe(
|
|
76894
77186
|
"HTTP method. GET for reading resources, POST for creating, PUT for updating, DELETE for removing."
|
|
76895
77187
|
),
|
|
76896
|
-
path:
|
|
77188
|
+
path: z42.string().describe(
|
|
76897
77189
|
"API path (e.g., '/workspaces', '/projects', '/tasks', '/tasks/{task_gid}'). Query parameters can be appended (e.g., '/tasks?project=PROJECT_GID&opt_fields=name,completed')."
|
|
76898
77190
|
),
|
|
76899
|
-
body:
|
|
77191
|
+
body: z42.record(z42.string(), z42.unknown()).optional().describe(
|
|
76900
77192
|
'Request body (JSON) for POST/PUT requests. Wrap payload in a "data" key (e.g., { "data": { "name": "My Task", "workspace": "WORKSPACE_GID" } }).'
|
|
76901
77193
|
)
|
|
76902
77194
|
});
|
|
76903
|
-
var
|
|
76904
|
-
|
|
76905
|
-
success:
|
|
76906
|
-
status:
|
|
76907
|
-
data:
|
|
77195
|
+
var outputSchema42 = z42.discriminatedUnion("success", [
|
|
77196
|
+
z42.object({
|
|
77197
|
+
success: z42.literal(true),
|
|
77198
|
+
status: z42.number(),
|
|
77199
|
+
data: z42.record(z42.string(), z42.unknown())
|
|
76908
77200
|
}),
|
|
76909
|
-
|
|
76910
|
-
success:
|
|
76911
|
-
error:
|
|
77201
|
+
z42.object({
|
|
77202
|
+
success: z42.literal(false),
|
|
77203
|
+
error: z42.string()
|
|
76912
77204
|
})
|
|
76913
77205
|
]);
|
|
76914
|
-
var
|
|
77206
|
+
var requestTool24 = new ConnectorTool({
|
|
76915
77207
|
name: "request",
|
|
76916
77208
|
description: `Send authenticated requests to the Asana REST API.
|
|
76917
77209
|
Authentication is handled automatically using the Personal Access Token (Bearer token).
|
|
@@ -76932,8 +77224,8 @@ Common endpoints:
|
|
|
76932
77224
|
- GET /tasks/{task_gid}/stories \u2014 Get task comments/stories
|
|
76933
77225
|
|
|
76934
77226
|
Pagination: Use limit (1-100) and offset query parameters. The response includes next_page.offset for the next page.`,
|
|
76935
|
-
inputSchema:
|
|
76936
|
-
outputSchema:
|
|
77227
|
+
inputSchema: inputSchema42,
|
|
77228
|
+
outputSchema: outputSchema42,
|
|
76937
77229
|
async execute({ connectionId, method, path: path5, body }, connections) {
|
|
76938
77230
|
const connection2 = connections.find((c6) => c6.id === connectionId);
|
|
76939
77231
|
if (!connection2) {
|
|
@@ -76946,10 +77238,10 @@ Pagination: Use limit (1-100) and offset query parameters. The response includes
|
|
|
76946
77238
|
`[connector-request] asana/${connection2.name}: ${method} ${path5}`
|
|
76947
77239
|
);
|
|
76948
77240
|
try {
|
|
76949
|
-
const token =
|
|
76950
|
-
const url = `${
|
|
77241
|
+
const token = parameters39.personalAccessToken.getValue(connection2);
|
|
77242
|
+
const url = `${BASE_URL19}${path5}`;
|
|
76951
77243
|
const controller = new AbortController();
|
|
76952
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
77244
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS31);
|
|
76953
77245
|
try {
|
|
76954
77246
|
const response = await fetch(url, {
|
|
76955
77247
|
method,
|
|
@@ -76979,14 +77271,14 @@ Pagination: Use limit (1-100) and offset query parameters. The response includes
|
|
|
76979
77271
|
});
|
|
76980
77272
|
|
|
76981
77273
|
// ../connectors/src/connectors/asana/index.ts
|
|
76982
|
-
var
|
|
77274
|
+
var tools39 = { request: requestTool24 };
|
|
76983
77275
|
var asanaConnector = new ConnectorPlugin({
|
|
76984
77276
|
slug: "asana",
|
|
76985
77277
|
authType: null,
|
|
76986
77278
|
name: "Asana",
|
|
76987
77279
|
description: "Connect to Asana for project management, task tracking, and team collaboration data.",
|
|
76988
77280
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/3eIdaoqzIIZs2Md0OoDJMf/2fa66e0841adb985da4d3120466f3ec4/asana-icon.png",
|
|
76989
|
-
parameters:
|
|
77281
|
+
parameters: parameters39,
|
|
76990
77282
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
76991
77283
|
onboarding: asanaOnboarding,
|
|
76992
77284
|
systemPrompt: {
|
|
@@ -77096,350 +77388,76 @@ SDK\u30E1\u30BD\u30C3\u30C9 (\`connection(connectionId)\` \u3067\u4F5C\u6210\u30
|
|
|
77096
77388
|
- \`client.listUsers(workspaceGid, options?)\` \u2014 \u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u5185\u306E\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7
|
|
77097
77389
|
|
|
77098
77390
|
\`\`\`ts
|
|
77099
|
-
import type { Context } from "hono";
|
|
77100
|
-
import { connection } from "@squadbase/vite-server/connectors/asana";
|
|
77101
|
-
|
|
77102
|
-
const asana = connection("<connectionId>");
|
|
77103
|
-
|
|
77104
|
-
export default async function handler(c: Context) {
|
|
77105
|
-
const { projectGid } = await c.req.json<{ projectGid: string }>();
|
|
77106
|
-
|
|
77107
|
-
const { data: tasks } = await asana.listTasks(projectGid, {
|
|
77108
|
-
opt_fields: ["name", "completed", "assignee.name", "due_on"],
|
|
77109
|
-
limit: 50,
|
|
77110
|
-
});
|
|
77111
|
-
|
|
77112
|
-
return c.json({ tasks });
|
|
77113
|
-
}
|
|
77114
|
-
\`\`\`
|
|
77115
|
-
|
|
77116
|
-
### Asana REST API \u30EA\u30D5\u30A1\u30EC\u30F3\u30B9
|
|
77117
|
-
|
|
77118
|
-
- \u30D9\u30FC\u30B9URL: \`https://app.asana.com/api/1.0\`
|
|
77119
|
-
- \u8A8D\u8A3C: Bearer\u30C8\u30FC\u30AF\u30F3\uFF08Personal Access Token\u3001\u81EA\u52D5\u8A2D\u5B9A\uFF09
|
|
77120
|
-
- \u66F8\u304D\u8FBC\u307F\u30EA\u30AF\u30A8\u30B9\u30C8\u306F\u30DA\u30A4\u30ED\u30FC\u30C9\u3092 \`data\` \u30AD\u30FC\u3067\u56F2\u3080: \`{ "data": { ... } }\`
|
|
77121
|
-
- \`opt_fields\` \u30AF\u30A8\u30EA\u30D1\u30E9\u30E1\u30FC\u30BF\u3067\u7279\u5B9A\u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u6307\u5B9A\u3057\u3066\u30EC\u30B9\u30DD\u30F3\u30B9\u30B5\u30A4\u30BA\u3092\u524A\u6E1B\u53EF\u80FD
|
|
77122
|
-
- \u30DA\u30FC\u30B8\u30CD\u30FC\u30B7\u30E7\u30F3: \`limit\`\uFF081-100\uFF09\u3068 \`offset\` \u30AF\u30A8\u30EA\u30D1\u30E9\u30E1\u30FC\u30BF\u306B\u3088\u308B\u30AA\u30D5\u30BB\u30C3\u30C8\u30D9\u30FC\u30B9\u3001\u30EC\u30B9\u30DD\u30F3\u30B9\u306B \`next_page.offset\` \u304C\u542B\u307E\u308C\u308B
|
|
77123
|
-
|
|
77124
|
-
#### \u30EA\u30BD\u30FC\u30B9\u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8
|
|
77125
|
-
|
|
77126
|
-
**\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9**
|
|
77127
|
-
- GET \`/workspaces\` \u2014 \u5168\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u306E\u4E00\u89A7
|
|
77128
|
-
|
|
77129
|
-
**\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8**
|
|
77130
|
-
- GET \`/projects?workspace=WORKSPACE_GID\` \u2014 \u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u5185\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u4E00\u89A7
|
|
77131
|
-
- GET \`/projects/{project_gid}\` \u2014 \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u53D6\u5F97
|
|
77132
|
-
- POST \`/projects\` \u2014 \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u4F5C\u6210
|
|
77133
|
-
- PUT \`/projects/{project_gid}\` \u2014 \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u66F4\u65B0
|
|
77134
|
-
|
|
77135
|
-
**\u30BF\u30B9\u30AF**
|
|
77136
|
-
- GET \`/tasks?project=PROJECT_GID\` \u2014 \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u5185\u306E\u30BF\u30B9\u30AF\u4E00\u89A7\uFF08project\u3001\u307E\u305F\u306Fassignee+workspace\u304C\u5FC5\u8981\uFF09
|
|
77137
|
-
- GET \`/tasks/{task_gid}\` \u2014 \u30BF\u30B9\u30AF\u306E\u53D6\u5F97
|
|
77138
|
-
- POST \`/tasks\` \u2014 \u30BF\u30B9\u30AF\u306E\u4F5C\u6210\uFF08body\u306Bworkspace\u307E\u305F\u306Fprojects\u304C\u5FC5\u8981\uFF09
|
|
77139
|
-
- PUT \`/tasks/{task_gid}\` \u2014 \u30BF\u30B9\u30AF\u306E\u66F4\u65B0
|
|
77140
|
-
- DELETE \`/tasks/{task_gid}\` \u2014 \u30BF\u30B9\u30AF\u306E\u524A\u9664
|
|
77141
|
-
- POST \`/tasks/{task_gid}/subtasks\` \u2014 \u30B5\u30D6\u30BF\u30B9\u30AF\u306E\u4F5C\u6210
|
|
77142
|
-
- GET \`/tasks/{task_gid}/subtasks\` \u2014 \u30B5\u30D6\u30BF\u30B9\u30AF\u306E\u4E00\u89A7
|
|
77143
|
-
|
|
77144
|
-
**\u30BB\u30AF\u30B7\u30E7\u30F3**
|
|
77145
|
-
- GET \`/sections?project=PROJECT_GID\` \u2014 \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u5185\u306E\u30BB\u30AF\u30B7\u30E7\u30F3\u4E00\u89A7
|
|
77146
|
-
- POST \`/sections/{section_gid}/addTask\` \u2014 \u30BB\u30AF\u30B7\u30E7\u30F3\u306B\u30BF\u30B9\u30AF\u3092\u8FFD\u52A0
|
|
77147
|
-
|
|
77148
|
-
**\u30E6\u30FC\u30B6\u30FC**
|
|
77149
|
-
- GET \`/users?workspace=WORKSPACE_GID\` \u2014 \u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u5185\u306E\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7
|
|
77150
|
-
- GET \`/users/me\` \u2014 \u8A8D\u8A3C\u30E6\u30FC\u30B6\u30FC\u306E\u53D6\u5F97
|
|
77151
|
-
- GET \`/users/{user_gid}\` \u2014 \u30E6\u30FC\u30B6\u30FC\u306E\u53D6\u5F97
|
|
77152
|
-
|
|
77153
|
-
**\u30BF\u30B0**
|
|
77154
|
-
- GET \`/tags?workspace=WORKSPACE_GID\` \u2014 \u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u5185\u306E\u30BF\u30B0\u4E00\u89A7
|
|
77155
|
-
|
|
77156
|
-
**\u30B9\u30C8\u30FC\u30EA\u30FC\uFF08\u30B3\u30E1\u30F3\u30C8\uFF09**
|
|
77157
|
-
- GET \`/tasks/{task_gid}/stories\` \u2014 \u30BF\u30B9\u30AF\u306E\u30B3\u30E1\u30F3\u30C8/\u30B9\u30C8\u30FC\u30EA\u30FC\u4E00\u89A7
|
|
77158
|
-
- POST \`/tasks/{task_gid}/stories\` \u2014 \u30BF\u30B9\u30AF\u306B\u30B3\u30E1\u30F3\u30C8\u3092\u8FFD\u52A0
|
|
77159
|
-
|
|
77160
|
-
**\u691C\u7D22**
|
|
77161
|
-
- GET \`/workspaces/{workspace_gid}/tasks/search?text=QUERY\` \u2014 \u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u5185\u306E\u30BF\u30B9\u30AF\u691C\u7D22
|
|
77162
|
-
|
|
77163
|
-
#### \u3088\u304F\u4F7F\u3046opt_fields
|
|
77164
|
-
- \u30BF\u30B9\u30AF: name, completed, assignee, assignee.name, due_on, due_at, created_at, modified_at, notes, projects, projects.name, tags, tags.name, parent, parent.name, memberships, memberships.section, memberships.section.name, custom_fields
|
|
77165
|
-
- \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8: name, archived, created_at, modified_at, owner, owner.name, team, team.name, members
|
|
77166
|
-
- \u30E6\u30FC\u30B6\u30FC: name, email, photo`
|
|
77167
|
-
},
|
|
77168
|
-
tools: tools38
|
|
77169
|
-
});
|
|
77170
|
-
|
|
77171
|
-
// ../connectors/src/connectors/trino/setup.ts
|
|
77172
|
-
var trinoOnboarding = new ConnectorOnboarding({
|
|
77173
|
-
dataOverviewInstructions: {
|
|
77174
|
-
en: `1. Use executeQuery to list catalogs: \`SHOW CATALOGS\`
|
|
77175
|
-
2. Use executeQuery to list schemas in a catalog: \`SHOW SCHEMAS IN catalog_name\`
|
|
77176
|
-
3. Use executeQuery to list tables in a schema: \`SHOW TABLES IN catalog_name.schema_name\`
|
|
77177
|
-
4. For key tables, use executeQuery to get column info: \`DESCRIBE catalog_name.schema_name.table_name\`
|
|
77178
|
-
5. Sample up to 3 tables with \`SELECT * FROM catalog_name.schema_name.table_name LIMIT 5\` if column info alone is insufficient`,
|
|
77179
|
-
ja: `1. executeQuery \u3067\u30AB\u30BF\u30ED\u30B0\u4E00\u89A7\u3092\u53D6\u5F97: \`SHOW CATALOGS\`
|
|
77180
|
-
2. executeQuery \u3067\u30B9\u30AD\u30FC\u30DE\u4E00\u89A7\u3092\u53D6\u5F97: \`SHOW SCHEMAS IN catalog_name\`
|
|
77181
|
-
3. executeQuery \u3067\u30C6\u30FC\u30D6\u30EB\u4E00\u89A7\u3092\u53D6\u5F97: \`SHOW TABLES IN catalog_name.schema_name\`
|
|
77182
|
-
4. \u4E3B\u8981\u30C6\u30FC\u30D6\u30EB\u306B\u3064\u3044\u3066 executeQuery \u3067\u30AB\u30E9\u30E0\u60C5\u5831\u3092\u53D6\u5F97: \`DESCRIBE catalog_name.schema_name.table_name\`
|
|
77183
|
-
5. \u30AB\u30E9\u30E0\u60C5\u5831\u3060\u3051\u3067\u306F\u4E0D\u5341\u5206\u306A\u5834\u5408\u3001\u6700\u59273\u30C6\u30FC\u30D6\u30EB\u3092 \`SELECT * FROM catalog_name.schema_name.table_name LIMIT 5\` \u3067\u30B5\u30F3\u30D7\u30EA\u30F3\u30B0`
|
|
77184
|
-
}
|
|
77185
|
-
});
|
|
77186
|
-
|
|
77187
|
-
// ../connectors/src/connectors/trino/parameters.ts
|
|
77188
|
-
var parameters39 = {
|
|
77189
|
-
host: new ParameterDefinition({
|
|
77190
|
-
slug: "host",
|
|
77191
|
-
name: "Trino Server URL",
|
|
77192
|
-
description: "The Trino server URL (e.g., https://trino.example.com:8443).",
|
|
77193
|
-
envVarBaseKey: "TRINO_HOST",
|
|
77194
|
-
type: "text",
|
|
77195
|
-
secret: false,
|
|
77196
|
-
required: true
|
|
77197
|
-
}),
|
|
77198
|
-
user: new ParameterDefinition({
|
|
77199
|
-
slug: "user",
|
|
77200
|
-
name: "Trino User",
|
|
77201
|
-
description: "The username for Trino authentication.",
|
|
77202
|
-
envVarBaseKey: "TRINO_USER",
|
|
77203
|
-
type: "text",
|
|
77204
|
-
secret: false,
|
|
77205
|
-
required: true
|
|
77206
|
-
}),
|
|
77207
|
-
password: new ParameterDefinition({
|
|
77208
|
-
slug: "password",
|
|
77209
|
-
name: "Trino Password",
|
|
77210
|
-
description: "The password for Trino authentication. Leave empty if not required.",
|
|
77211
|
-
envVarBaseKey: "TRINO_PASSWORD",
|
|
77212
|
-
type: "text",
|
|
77213
|
-
secret: true,
|
|
77214
|
-
required: false
|
|
77215
|
-
}),
|
|
77216
|
-
catalog: new ParameterDefinition({
|
|
77217
|
-
slug: "catalog",
|
|
77218
|
-
name: "Trino Catalog",
|
|
77219
|
-
description: "The default catalog to use (e.g., hive, iceberg, postgresql).",
|
|
77220
|
-
envVarBaseKey: "TRINO_CATALOG",
|
|
77221
|
-
type: "text",
|
|
77222
|
-
secret: false,
|
|
77223
|
-
required: false
|
|
77224
|
-
}),
|
|
77225
|
-
schema: new ParameterDefinition({
|
|
77226
|
-
slug: "schema",
|
|
77227
|
-
name: "Trino Schema",
|
|
77228
|
-
description: "The default schema to use within the catalog.",
|
|
77229
|
-
envVarBaseKey: "TRINO_SCHEMA",
|
|
77230
|
-
type: "text",
|
|
77231
|
-
secret: false,
|
|
77232
|
-
required: false
|
|
77233
|
-
})
|
|
77234
|
-
};
|
|
77235
|
-
|
|
77236
|
-
// ../connectors/src/connectors/trino/tools/execute-query.ts
|
|
77237
|
-
import { z as z42 } from "zod";
|
|
77238
|
-
var MAX_ROWS11 = 500;
|
|
77239
|
-
var QUERY_TIMEOUT_MS4 = 6e4;
|
|
77240
|
-
var inputSchema42 = z42.object({
|
|
77241
|
-
toolUseIntent: z42.string().optional().describe(
|
|
77242
|
-
"Brief description of what you intend to accomplish with this tool call"
|
|
77243
|
-
),
|
|
77244
|
-
connectionId: z42.string().describe("ID of the Trino connection to use"),
|
|
77245
|
-
sql: z42.string().describe("Trino SQL query. Always include LIMIT in queries.")
|
|
77246
|
-
});
|
|
77247
|
-
var outputSchema42 = z42.discriminatedUnion("success", [
|
|
77248
|
-
z42.object({
|
|
77249
|
-
success: z42.literal(true),
|
|
77250
|
-
rowCount: z42.number(),
|
|
77251
|
-
truncated: z42.boolean(),
|
|
77252
|
-
rows: z42.array(z42.record(z42.string(), z42.unknown()))
|
|
77253
|
-
}),
|
|
77254
|
-
z42.object({
|
|
77255
|
-
success: z42.literal(false),
|
|
77256
|
-
error: z42.string()
|
|
77257
|
-
})
|
|
77258
|
-
]);
|
|
77259
|
-
var executeQueryTool11 = new ConnectorTool({
|
|
77260
|
-
name: "executeQuery",
|
|
77261
|
-
description: `Execute SQL against Trino. Returns up to ${MAX_ROWS11} rows.
|
|
77262
|
-
Use for: schema exploration (SHOW CATALOGS, SHOW SCHEMAS, SHOW TABLES, DESCRIBE), data sampling, analytical queries across federated data sources.
|
|
77263
|
-
Avoid loading large amounts of data; always include LIMIT in queries.`,
|
|
77264
|
-
inputSchema: inputSchema42,
|
|
77265
|
-
outputSchema: outputSchema42,
|
|
77266
|
-
async execute({ connectionId, sql }, connections) {
|
|
77267
|
-
const connection2 = connections.find((c6) => c6.id === connectionId);
|
|
77268
|
-
if (!connection2) {
|
|
77269
|
-
return {
|
|
77270
|
-
success: false,
|
|
77271
|
-
error: `Connection ${connectionId} not found`
|
|
77272
|
-
};
|
|
77273
|
-
}
|
|
77274
|
-
console.log(
|
|
77275
|
-
`[connector-query] trino/${connection2.name}: ${sql}`
|
|
77276
|
-
);
|
|
77277
|
-
let host;
|
|
77278
|
-
try {
|
|
77279
|
-
const { Trino, BasicAuth } = await import("trino-client");
|
|
77280
|
-
host = parameters39.host.getValue(connection2);
|
|
77281
|
-
const user = parameters39.user.getValue(connection2);
|
|
77282
|
-
const password = parameters39.password.tryGetValue(connection2);
|
|
77283
|
-
const catalog = parameters39.catalog.tryGetValue(connection2);
|
|
77284
|
-
const schema = parameters39.schema.tryGetValue(connection2);
|
|
77285
|
-
const trino = Trino.create({
|
|
77286
|
-
server: host,
|
|
77287
|
-
catalog: catalog || void 0,
|
|
77288
|
-
schema: schema || void 0,
|
|
77289
|
-
auth: new BasicAuth(user, password || void 0)
|
|
77290
|
-
});
|
|
77291
|
-
const iter = await trino.query(sql);
|
|
77292
|
-
const columns = [];
|
|
77293
|
-
const rows = [];
|
|
77294
|
-
let truncated = false;
|
|
77295
|
-
const timeout = new Promise(
|
|
77296
|
-
(_, reject) => setTimeout(() => reject(new Error("Query timed out after 60 seconds")), QUERY_TIMEOUT_MS4)
|
|
77297
|
-
);
|
|
77298
|
-
const collect = async () => {
|
|
77299
|
-
for await (const result of iter) {
|
|
77300
|
-
if (result.columns && columns.length === 0) {
|
|
77301
|
-
columns.push(...result.columns);
|
|
77302
|
-
}
|
|
77303
|
-
if (result.data) {
|
|
77304
|
-
for (const row of result.data) {
|
|
77305
|
-
if (rows.length >= MAX_ROWS11) {
|
|
77306
|
-
truncated = true;
|
|
77307
|
-
break;
|
|
77308
|
-
}
|
|
77309
|
-
const obj = {};
|
|
77310
|
-
columns.forEach((col, i6) => {
|
|
77311
|
-
obj[col.name] = row[i6];
|
|
77312
|
-
});
|
|
77313
|
-
rows.push(obj);
|
|
77314
|
-
}
|
|
77315
|
-
if (truncated) break;
|
|
77316
|
-
}
|
|
77317
|
-
}
|
|
77318
|
-
};
|
|
77319
|
-
await Promise.race([collect(), timeout]);
|
|
77320
|
-
return {
|
|
77321
|
-
success: true,
|
|
77322
|
-
rowCount: rows.length,
|
|
77323
|
-
truncated,
|
|
77324
|
-
rows
|
|
77325
|
-
};
|
|
77326
|
-
} catch (err) {
|
|
77327
|
-
let msg = err instanceof Error ? err.message : String(err);
|
|
77328
|
-
if (host) {
|
|
77329
|
-
msg = msg.replaceAll(host, "***");
|
|
77330
|
-
}
|
|
77331
|
-
return { success: false, error: msg };
|
|
77332
|
-
}
|
|
77333
|
-
}
|
|
77334
|
-
});
|
|
77391
|
+
import type { Context } from "hono";
|
|
77392
|
+
import { connection } from "@squadbase/vite-server/connectors/asana";
|
|
77335
77393
|
|
|
77336
|
-
|
|
77337
|
-
var tools39 = { executeQuery: executeQueryTool11 };
|
|
77338
|
-
var trinoConnector = new ConnectorPlugin({
|
|
77339
|
-
slug: "trino",
|
|
77340
|
-
authType: null,
|
|
77341
|
-
name: "Trino",
|
|
77342
|
-
description: "Connect to Trino for distributed SQL query engine across federated data sources.",
|
|
77343
|
-
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/8jqL4EZwHKnK5QzyNWkp2/e5831a080c8192cb18fb864cabd51c23/trino.png",
|
|
77344
|
-
parameters: parameters39,
|
|
77345
|
-
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
77346
|
-
onboarding: trinoOnboarding,
|
|
77347
|
-
systemPrompt: {
|
|
77348
|
-
en: `### Tools
|
|
77394
|
+
const asana = connection("<connectionId>");
|
|
77349
77395
|
|
|
77350
|
-
|
|
77396
|
+
export default async function handler(c: Context) {
|
|
77397
|
+
const { projectGid } = await c.req.json<{ projectGid: string }>();
|
|
77351
77398
|
|
|
77352
|
-
|
|
77399
|
+
const { data: tasks } = await asana.listTasks(projectGid, {
|
|
77400
|
+
opt_fields: ["name", "completed", "assignee.name", "due_on"],
|
|
77401
|
+
limit: 50,
|
|
77402
|
+
});
|
|
77353
77403
|
|
|
77354
|
-
|
|
77404
|
+
return c.json({ tasks });
|
|
77405
|
+
}
|
|
77406
|
+
\`\`\`
|
|
77355
77407
|
|
|
77356
|
-
###
|
|
77357
|
-
- Trino uses ANSI SQL syntax with extensions for federated queries
|
|
77358
|
-
- Use fully qualified names: \`catalog.schema.table\` for cross-catalog queries
|
|
77359
|
-
- Schema exploration commands:
|
|
77360
|
-
- List catalogs: \`SHOW CATALOGS\`
|
|
77361
|
-
- List schemas: \`SHOW SCHEMAS IN catalog_name\`
|
|
77362
|
-
- List tables: \`SHOW TABLES IN catalog_name.schema_name\`
|
|
77363
|
-
- List columns: \`DESCRIBE catalog_name.schema_name.table_name\`
|
|
77364
|
-
- Table details: \`SHOW COLUMNS FROM catalog_name.schema_name.table_name\`
|
|
77365
|
-
- INFORMATION_SCHEMA is available per catalog: \`SELECT * FROM catalog_name.information_schema.tables\`
|
|
77366
|
-
- Always include LIMIT in queries`,
|
|
77367
|
-
ja: `### \u30C4\u30FC\u30EB
|
|
77408
|
+
### Asana REST API \u30EA\u30D5\u30A1\u30EC\u30F3\u30B9
|
|
77368
77409
|
|
|
77369
|
-
-
|
|
77410
|
+
- \u30D9\u30FC\u30B9URL: \`https://app.asana.com/api/1.0\`
|
|
77411
|
+
- \u8A8D\u8A3C: Bearer\u30C8\u30FC\u30AF\u30F3\uFF08Personal Access Token\u3001\u81EA\u52D5\u8A2D\u5B9A\uFF09
|
|
77412
|
+
- \u66F8\u304D\u8FBC\u307F\u30EA\u30AF\u30A8\u30B9\u30C8\u306F\u30DA\u30A4\u30ED\u30FC\u30C9\u3092 \`data\` \u30AD\u30FC\u3067\u56F2\u3080: \`{ "data": { ... } }\`
|
|
77413
|
+
- \`opt_fields\` \u30AF\u30A8\u30EA\u30D1\u30E9\u30E1\u30FC\u30BF\u3067\u7279\u5B9A\u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u6307\u5B9A\u3057\u3066\u30EC\u30B9\u30DD\u30F3\u30B9\u30B5\u30A4\u30BA\u3092\u524A\u6E1B\u53EF\u80FD
|
|
77414
|
+
- \u30DA\u30FC\u30B8\u30CD\u30FC\u30B7\u30E7\u30F3: \`limit\`\uFF081-100\uFF09\u3068 \`offset\` \u30AF\u30A8\u30EA\u30D1\u30E9\u30E1\u30FC\u30BF\u306B\u3088\u308B\u30AA\u30D5\u30BB\u30C3\u30C8\u30D9\u30FC\u30B9\u3001\u30EC\u30B9\u30DD\u30F3\u30B9\u306B \`next_page.offset\` \u304C\u542B\u307E\u308C\u308B
|
|
77370
77415
|
|
|
77371
|
-
|
|
77416
|
+
#### \u30EA\u30BD\u30FC\u30B9\u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8
|
|
77372
77417
|
|
|
77373
|
-
\
|
|
77418
|
+
**\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9**
|
|
77419
|
+
- GET \`/workspaces\` \u2014 \u5168\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u306E\u4E00\u89A7
|
|
77374
77420
|
|
|
77375
|
-
|
|
77376
|
-
-
|
|
77377
|
-
- \
|
|
77378
|
-
- \
|
|
77379
|
-
|
|
77380
|
-
|
|
77381
|
-
|
|
77382
|
-
|
|
77383
|
-
|
|
77384
|
-
-
|
|
77385
|
-
-
|
|
77386
|
-
|
|
77387
|
-
|
|
77388
|
-
|
|
77389
|
-
|
|
77390
|
-
|
|
77391
|
-
|
|
77392
|
-
|
|
77393
|
-
|
|
77394
|
-
|
|
77395
|
-
|
|
77396
|
-
|
|
77397
|
-
|
|
77398
|
-
|
|
77399
|
-
|
|
77400
|
-
|
|
77401
|
-
|
|
77402
|
-
|
|
77403
|
-
|
|
77404
|
-
|
|
77405
|
-
|
|
77406
|
-
|
|
77407
|
-
|
|
77408
|
-
|
|
77421
|
+
**\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8**
|
|
77422
|
+
- GET \`/projects?workspace=WORKSPACE_GID\` \u2014 \u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u5185\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u4E00\u89A7
|
|
77423
|
+
- GET \`/projects/{project_gid}\` \u2014 \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u53D6\u5F97
|
|
77424
|
+
- POST \`/projects\` \u2014 \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u4F5C\u6210
|
|
77425
|
+
- PUT \`/projects/{project_gid}\` \u2014 \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u66F4\u65B0
|
|
77426
|
+
|
|
77427
|
+
**\u30BF\u30B9\u30AF**
|
|
77428
|
+
- GET \`/tasks?project=PROJECT_GID\` \u2014 \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u5185\u306E\u30BF\u30B9\u30AF\u4E00\u89A7\uFF08project\u3001\u307E\u305F\u306Fassignee+workspace\u304C\u5FC5\u8981\uFF09
|
|
77429
|
+
- GET \`/tasks/{task_gid}\` \u2014 \u30BF\u30B9\u30AF\u306E\u53D6\u5F97
|
|
77430
|
+
- POST \`/tasks\` \u2014 \u30BF\u30B9\u30AF\u306E\u4F5C\u6210\uFF08body\u306Bworkspace\u307E\u305F\u306Fprojects\u304C\u5FC5\u8981\uFF09
|
|
77431
|
+
- PUT \`/tasks/{task_gid}\` \u2014 \u30BF\u30B9\u30AF\u306E\u66F4\u65B0
|
|
77432
|
+
- DELETE \`/tasks/{task_gid}\` \u2014 \u30BF\u30B9\u30AF\u306E\u524A\u9664
|
|
77433
|
+
- POST \`/tasks/{task_gid}/subtasks\` \u2014 \u30B5\u30D6\u30BF\u30B9\u30AF\u306E\u4F5C\u6210
|
|
77434
|
+
- GET \`/tasks/{task_gid}/subtasks\` \u2014 \u30B5\u30D6\u30BF\u30B9\u30AF\u306E\u4E00\u89A7
|
|
77435
|
+
|
|
77436
|
+
**\u30BB\u30AF\u30B7\u30E7\u30F3**
|
|
77437
|
+
- GET \`/sections?project=PROJECT_GID\` \u2014 \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u5185\u306E\u30BB\u30AF\u30B7\u30E7\u30F3\u4E00\u89A7
|
|
77438
|
+
- POST \`/sections/{section_gid}/addTask\` \u2014 \u30BB\u30AF\u30B7\u30E7\u30F3\u306B\u30BF\u30B9\u30AF\u3092\u8FFD\u52A0
|
|
77439
|
+
|
|
77440
|
+
**\u30E6\u30FC\u30B6\u30FC**
|
|
77441
|
+
- GET \`/users?workspace=WORKSPACE_GID\` \u2014 \u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u5185\u306E\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7
|
|
77442
|
+
- GET \`/users/me\` \u2014 \u8A8D\u8A3C\u30E6\u30FC\u30B6\u30FC\u306E\u53D6\u5F97
|
|
77443
|
+
- GET \`/users/{user_gid}\` \u2014 \u30E6\u30FC\u30B6\u30FC\u306E\u53D6\u5F97
|
|
77444
|
+
|
|
77445
|
+
**\u30BF\u30B0**
|
|
77446
|
+
- GET \`/tags?workspace=WORKSPACE_GID\` \u2014 \u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u5185\u306E\u30BF\u30B0\u4E00\u89A7
|
|
77447
|
+
|
|
77448
|
+
**\u30B9\u30C8\u30FC\u30EA\u30FC\uFF08\u30B3\u30E1\u30F3\u30C8\uFF09**
|
|
77449
|
+
- GET \`/tasks/{task_gid}/stories\` \u2014 \u30BF\u30B9\u30AF\u306E\u30B3\u30E1\u30F3\u30C8/\u30B9\u30C8\u30FC\u30EA\u30FC\u4E00\u89A7
|
|
77450
|
+
- POST \`/tasks/{task_gid}/stories\` \u2014 \u30BF\u30B9\u30AF\u306B\u30B3\u30E1\u30F3\u30C8\u3092\u8FFD\u52A0
|
|
77451
|
+
|
|
77452
|
+
**\u691C\u7D22**
|
|
77453
|
+
- GET \`/workspaces/{workspace_gid}/tasks/search?text=QUERY\` \u2014 \u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u5185\u306E\u30BF\u30B9\u30AF\u691C\u7D22
|
|
77454
|
+
|
|
77455
|
+
#### \u3088\u304F\u4F7F\u3046opt_fields
|
|
77456
|
+
- \u30BF\u30B9\u30AF: name, completed, assignee, assignee.name, due_on, due_at, created_at, modified_at, notes, projects, projects.name, tags, tags.name, parent, parent.name, memberships, memberships.section, memberships.section.name, custom_fields
|
|
77457
|
+
- \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8: name, archived, created_at, modified_at, owner, owner.name, team, team.name, members
|
|
77458
|
+
- \u30E6\u30FC\u30B6\u30FC: name, email, photo`
|
|
77409
77459
|
},
|
|
77410
|
-
|
|
77411
|
-
const resolvedSql = replaceLiteralParams(sql, namedParams);
|
|
77412
|
-
const { Trino, BasicAuth } = await import("trino-client");
|
|
77413
|
-
const host = params[parameters39.host.slug];
|
|
77414
|
-
const user = params[parameters39.user.slug];
|
|
77415
|
-
const password = params[parameters39.password.slug] || void 0;
|
|
77416
|
-
const catalog = params[parameters39.catalog.slug] || void 0;
|
|
77417
|
-
const schema = params[parameters39.schema.slug] || void 0;
|
|
77418
|
-
const trino = Trino.create({
|
|
77419
|
-
server: host,
|
|
77420
|
-
catalog,
|
|
77421
|
-
schema,
|
|
77422
|
-
auth: new BasicAuth(user, password)
|
|
77423
|
-
});
|
|
77424
|
-
const iter = await trino.query(resolvedSql);
|
|
77425
|
-
const columns = [];
|
|
77426
|
-
const rows = [];
|
|
77427
|
-
for await (const result of iter) {
|
|
77428
|
-
if (result.columns && columns.length === 0) {
|
|
77429
|
-
columns.push(...result.columns);
|
|
77430
|
-
}
|
|
77431
|
-
if (result.data) {
|
|
77432
|
-
for (const row of result.data) {
|
|
77433
|
-
const obj = {};
|
|
77434
|
-
columns.forEach((col, i6) => {
|
|
77435
|
-
obj[col.name] = row[i6];
|
|
77436
|
-
});
|
|
77437
|
-
rows.push(obj);
|
|
77438
|
-
}
|
|
77439
|
-
}
|
|
77440
|
-
}
|
|
77441
|
-
return { rows };
|
|
77442
|
-
}
|
|
77460
|
+
tools: tools39
|
|
77443
77461
|
});
|
|
77444
77462
|
|
|
77445
77463
|
// ../connectors/src/connectors/clickhouse/setup.ts
|
|
@@ -77498,8 +77516,8 @@ var parameters40 = {
|
|
|
77498
77516
|
|
|
77499
77517
|
// ../connectors/src/connectors/clickhouse/tools/execute-query.ts
|
|
77500
77518
|
import { z as z43 } from "zod";
|
|
77501
|
-
var
|
|
77502
|
-
var
|
|
77519
|
+
var MAX_ROWS11 = 500;
|
|
77520
|
+
var QUERY_TIMEOUT_MS4 = 6e4;
|
|
77503
77521
|
var inputSchema43 = z43.object({
|
|
77504
77522
|
toolUseIntent: z43.string().optional().describe(
|
|
77505
77523
|
"Brief description of what you intend to accomplish with this tool call"
|
|
@@ -77519,9 +77537,9 @@ var outputSchema43 = z43.discriminatedUnion("success", [
|
|
|
77519
77537
|
error: z43.string()
|
|
77520
77538
|
})
|
|
77521
77539
|
]);
|
|
77522
|
-
var
|
|
77540
|
+
var executeQueryTool11 = new ConnectorTool({
|
|
77523
77541
|
name: "executeQuery",
|
|
77524
|
-
description: `Execute SQL against ClickHouse. Returns up to ${
|
|
77542
|
+
description: `Execute SQL against ClickHouse. Returns up to ${MAX_ROWS11} rows.
|
|
77525
77543
|
Use for: schema exploration (SHOW DATABASES, SHOW TABLES, DESCRIBE TABLE), data sampling, analytical queries on large-scale columnar data.
|
|
77526
77544
|
Avoid loading large amounts of data; always include LIMIT in queries.`,
|
|
77527
77545
|
inputSchema: inputSchema43,
|
|
@@ -77549,7 +77567,7 @@ Avoid loading large amounts of data; always include LIMIT in queries.`,
|
|
|
77549
77567
|
username,
|
|
77550
77568
|
password: password || "",
|
|
77551
77569
|
database: database || "default",
|
|
77552
|
-
request_timeout:
|
|
77570
|
+
request_timeout: QUERY_TIMEOUT_MS4
|
|
77553
77571
|
});
|
|
77554
77572
|
try {
|
|
77555
77573
|
const resultSet = await client.query({
|
|
@@ -77557,12 +77575,12 @@ Avoid loading large amounts of data; always include LIMIT in queries.`,
|
|
|
77557
77575
|
format: "JSONEachRow"
|
|
77558
77576
|
});
|
|
77559
77577
|
const allRows = await resultSet.json();
|
|
77560
|
-
const truncated = allRows.length >
|
|
77578
|
+
const truncated = allRows.length > MAX_ROWS11;
|
|
77561
77579
|
return {
|
|
77562
77580
|
success: true,
|
|
77563
|
-
rowCount: Math.min(allRows.length,
|
|
77581
|
+
rowCount: Math.min(allRows.length, MAX_ROWS11),
|
|
77564
77582
|
truncated,
|
|
77565
|
-
rows: allRows.slice(0,
|
|
77583
|
+
rows: allRows.slice(0, MAX_ROWS11)
|
|
77566
77584
|
};
|
|
77567
77585
|
} finally {
|
|
77568
77586
|
await client.close();
|
|
@@ -77578,7 +77596,7 @@ Avoid loading large amounts of data; always include LIMIT in queries.`,
|
|
|
77578
77596
|
});
|
|
77579
77597
|
|
|
77580
77598
|
// ../connectors/src/connectors/clickhouse/index.ts
|
|
77581
|
-
var tools40 = { executeQuery:
|
|
77599
|
+
var tools40 = { executeQuery: executeQueryTool11 };
|
|
77582
77600
|
var clickhouseConnector = new ConnectorPlugin({
|
|
77583
77601
|
slug: "clickhouse",
|
|
77584
77602
|
authType: null,
|
|
@@ -77717,7 +77735,7 @@ var parameters41 = {
|
|
|
77717
77735
|
import { z as z46 } from "zod";
|
|
77718
77736
|
var MAX_DOCUMENTS = 500;
|
|
77719
77737
|
var CONNECT_TIMEOUT_MS4 = 1e4;
|
|
77720
|
-
var
|
|
77738
|
+
var QUERY_TIMEOUT_MS5 = 6e4;
|
|
77721
77739
|
var inputSchema44 = z46.object({
|
|
77722
77740
|
toolUseIntent: z46.string().optional().describe(
|
|
77723
77741
|
"Brief description of what you intend to accomplish with this tool call"
|
|
@@ -77776,7 +77794,7 @@ For listing collections, use the aggregate tool with an empty pipeline on the sp
|
|
|
77776
77794
|
const client = new MongoClient(connectionUrl, {
|
|
77777
77795
|
connectTimeoutMS: CONNECT_TIMEOUT_MS4,
|
|
77778
77796
|
serverSelectionTimeoutMS: CONNECT_TIMEOUT_MS4,
|
|
77779
|
-
socketTimeoutMS:
|
|
77797
|
+
socketTimeoutMS: QUERY_TIMEOUT_MS5
|
|
77780
77798
|
});
|
|
77781
77799
|
try {
|
|
77782
77800
|
await client.connect();
|
|
@@ -77822,7 +77840,7 @@ For listing collections, use the aggregate tool with an empty pipeline on the sp
|
|
|
77822
77840
|
import { z as z47 } from "zod";
|
|
77823
77841
|
var MAX_DOCUMENTS2 = 500;
|
|
77824
77842
|
var CONNECT_TIMEOUT_MS5 = 1e4;
|
|
77825
|
-
var
|
|
77843
|
+
var QUERY_TIMEOUT_MS6 = 6e4;
|
|
77826
77844
|
var inputSchema45 = z47.object({
|
|
77827
77845
|
toolUseIntent: z47.string().optional().describe(
|
|
77828
77846
|
"Brief description of what you intend to accomplish with this tool call"
|
|
@@ -77873,7 +77891,7 @@ Common stages: $match (filter), $group (aggregate), $sort (order), $project (res
|
|
|
77873
77891
|
const client = new MongoClient(connectionUrl, {
|
|
77874
77892
|
connectTimeoutMS: CONNECT_TIMEOUT_MS5,
|
|
77875
77893
|
serverSelectionTimeoutMS: CONNECT_TIMEOUT_MS5,
|
|
77876
|
-
socketTimeoutMS:
|
|
77894
|
+
socketTimeoutMS: QUERY_TIMEOUT_MS6
|
|
77877
77895
|
});
|
|
77878
77896
|
try {
|
|
77879
77897
|
await client.connect();
|
|
@@ -78091,9 +78109,9 @@ var parameters42 = {
|
|
|
78091
78109
|
|
|
78092
78110
|
// ../connectors/src/connectors/notion/tools/request.ts
|
|
78093
78111
|
import { z as z49 } from "zod";
|
|
78094
|
-
var
|
|
78112
|
+
var BASE_URL20 = "https://api.notion.com/v1";
|
|
78095
78113
|
var NOTION_VERSION = "2022-06-28";
|
|
78096
|
-
var
|
|
78114
|
+
var REQUEST_TIMEOUT_MS32 = 6e4;
|
|
78097
78115
|
var inputSchema47 = z49.object({
|
|
78098
78116
|
toolUseIntent: z49.string().optional().describe(
|
|
78099
78117
|
"Brief description of what you intend to accomplish with this tool call"
|
|
@@ -78118,7 +78136,7 @@ var outputSchema47 = z49.discriminatedUnion("success", [
|
|
|
78118
78136
|
error: z49.string()
|
|
78119
78137
|
})
|
|
78120
78138
|
]);
|
|
78121
|
-
var
|
|
78139
|
+
var requestTool25 = new ConnectorTool({
|
|
78122
78140
|
name: "request",
|
|
78123
78141
|
description: `Send authenticated requests to the Notion API.
|
|
78124
78142
|
Authentication (Bearer token) and Notion-Version header are configured automatically.
|
|
@@ -78139,9 +78157,9 @@ Pagination uses cursor-based start_cursor and page_size (max 100).`,
|
|
|
78139
78157
|
);
|
|
78140
78158
|
try {
|
|
78141
78159
|
const apiKey = parameters42.apiKey.getValue(connection2);
|
|
78142
|
-
const url = `${
|
|
78160
|
+
const url = `${BASE_URL20}${path5.startsWith("/") ? "" : "/"}${path5}`;
|
|
78143
78161
|
const controller = new AbortController();
|
|
78144
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
78162
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS32);
|
|
78145
78163
|
try {
|
|
78146
78164
|
const response = await fetch(url, {
|
|
78147
78165
|
method,
|
|
@@ -78170,7 +78188,7 @@ Pagination uses cursor-based start_cursor and page_size (max 100).`,
|
|
|
78170
78188
|
});
|
|
78171
78189
|
|
|
78172
78190
|
// ../connectors/src/connectors/notion/index.ts
|
|
78173
|
-
var tools42 = { request:
|
|
78191
|
+
var tools42 = { request: requestTool25 };
|
|
78174
78192
|
var notionConnector = new ConnectorPlugin({
|
|
78175
78193
|
slug: "notion",
|
|
78176
78194
|
authType: null,
|
|
@@ -78327,9 +78345,9 @@ export default async function handler(c: Context) {
|
|
|
78327
78345
|
|
|
78328
78346
|
// ../connectors/src/connectors/notion-oauth/tools/request.ts
|
|
78329
78347
|
import { z as z50 } from "zod";
|
|
78330
|
-
var
|
|
78348
|
+
var BASE_URL21 = "https://api.notion.com/v1";
|
|
78331
78349
|
var NOTION_VERSION2 = "2022-06-28";
|
|
78332
|
-
var
|
|
78350
|
+
var REQUEST_TIMEOUT_MS33 = 6e4;
|
|
78333
78351
|
var cachedToken15 = null;
|
|
78334
78352
|
async function getProxyToken15(config) {
|
|
78335
78353
|
if (cachedToken15 && cachedToken15.expiresAt > Date.now() + 6e4) {
|
|
@@ -78383,7 +78401,7 @@ var outputSchema48 = z50.discriminatedUnion("success", [
|
|
|
78383
78401
|
error: z50.string()
|
|
78384
78402
|
})
|
|
78385
78403
|
]);
|
|
78386
|
-
var
|
|
78404
|
+
var requestTool26 = new ConnectorTool({
|
|
78387
78405
|
name: "request",
|
|
78388
78406
|
description: `Send authenticated requests to the Notion API.
|
|
78389
78407
|
Authentication is handled automatically via OAuth proxy. Notion-Version header is set automatically.
|
|
@@ -78403,11 +78421,11 @@ Pagination uses cursor-based start_cursor and page_size (max 100).`,
|
|
|
78403
78421
|
`[connector-request] notion-oauth/${connection2.name}: ${method} ${path5}`
|
|
78404
78422
|
);
|
|
78405
78423
|
try {
|
|
78406
|
-
const url = `${
|
|
78424
|
+
const url = `${BASE_URL21}${path5.startsWith("/") ? "" : "/"}${path5}`;
|
|
78407
78425
|
const token = await getProxyToken15(config.oauthProxy);
|
|
78408
78426
|
const proxyUrl = `https://${config.oauthProxy.sandboxId}.${config.oauthProxy.previewBaseDomain}/_sqcore/connections/${connectionId}/request`;
|
|
78409
78427
|
const controller = new AbortController();
|
|
78410
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
78428
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS33);
|
|
78411
78429
|
try {
|
|
78412
78430
|
const response = await fetch(proxyUrl, {
|
|
78413
78431
|
method: "POST",
|
|
@@ -78440,12 +78458,12 @@ Pagination uses cursor-based start_cursor and page_size (max 100).`,
|
|
|
78440
78458
|
});
|
|
78441
78459
|
|
|
78442
78460
|
// ../connectors/src/connectors/notion-oauth/setup.ts
|
|
78443
|
-
var
|
|
78461
|
+
var requestToolName8 = `notion-oauth_${requestTool26.name}`;
|
|
78444
78462
|
var notionOauthOnboarding = new ConnectorOnboarding({
|
|
78445
78463
|
connectionSetupInstructions: {
|
|
78446
78464
|
ja: `\u4EE5\u4E0B\u306E\u624B\u9806\u3067Notion\u30B3\u30CD\u30AF\u30B7\u30E7\u30F3\u306E\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u3092\u884C\u3063\u3066\u304F\u3060\u3055\u3044\u3002
|
|
78447
78465
|
|
|
78448
|
-
1. \`${
|
|
78466
|
+
1. \`${requestToolName8}\` \u3092\u547C\u3073\u51FA\u3057\u3066\u3001\u30DC\u30C3\u30C8\u30E6\u30FC\u30B6\u30FC\u60C5\u5831\u3092\u53D6\u5F97\u3059\u308B:
|
|
78449
78467
|
- \`method\`: \`"GET"\`
|
|
78450
78468
|
- \`path\`: \`"/users/me"\`
|
|
78451
78469
|
2. \u30A8\u30E9\u30FC\u304C\u8FD4\u3055\u308C\u305F\u5834\u5408\u3001\u30E6\u30FC\u30B6\u30FC\u306BOAuth\u63A5\u7D9A\u306E\u8A2D\u5B9A\u3092\u78BA\u8A8D\u3059\u308B\u3088\u3046\u4F1D\u3048\u308B
|
|
@@ -78458,7 +78476,7 @@ var notionOauthOnboarding = new ConnectorOnboarding({
|
|
|
78458
78476
|
- \u30C4\u30FC\u30EB\u9593\u306F1\u6587\u3060\u3051\u66F8\u3044\u3066\u5373\u6B21\u306E\u30C4\u30FC\u30EB\u547C\u3073\u51FA\u3057\u3002\u4E0D\u8981\u306A\u8AAC\u660E\u306F\u7701\u7565\u3057\u3001\u52B9\u7387\u7684\u306B\u9032\u3081\u308B`,
|
|
78459
78477
|
en: `Follow these steps to set up the Notion connection.
|
|
78460
78478
|
|
|
78461
|
-
1. Call \`${
|
|
78479
|
+
1. Call \`${requestToolName8}\` to fetch bot user info:
|
|
78462
78480
|
- \`method\`: \`"GET"\`
|
|
78463
78481
|
- \`path\`: \`"/users/me"\`
|
|
78464
78482
|
2. If an error is returned, ask the user to check the OAuth connection settings
|
|
@@ -78486,7 +78504,7 @@ var notionOauthOnboarding = new ConnectorOnboarding({
|
|
|
78486
78504
|
var parameters43 = {};
|
|
78487
78505
|
|
|
78488
78506
|
// ../connectors/src/connectors/notion-oauth/index.ts
|
|
78489
|
-
var tools43 = { request:
|
|
78507
|
+
var tools43 = { request: requestTool26 };
|
|
78490
78508
|
var notionOauthConnector = new ConnectorPlugin({
|
|
78491
78509
|
slug: "notion",
|
|
78492
78510
|
authType: AUTH_TYPES.OAUTH,
|
|
@@ -78657,8 +78675,8 @@ var parameters44 = {
|
|
|
78657
78675
|
};
|
|
78658
78676
|
|
|
78659
78677
|
// ../connectors/src/connectors/meta-ads/tools/list-ad-accounts.ts
|
|
78660
|
-
var
|
|
78661
|
-
var
|
|
78678
|
+
var BASE_URL22 = "https://graph.facebook.com/v21.0/";
|
|
78679
|
+
var REQUEST_TIMEOUT_MS34 = 6e4;
|
|
78662
78680
|
var inputSchema49 = z51.object({
|
|
78663
78681
|
toolUseIntent: z51.string().optional().describe(
|
|
78664
78682
|
"Brief description of what you intend to accomplish with this tool call"
|
|
@@ -78698,9 +78716,9 @@ var listAdAccountsTool = new ConnectorTool({
|
|
|
78698
78716
|
);
|
|
78699
78717
|
try {
|
|
78700
78718
|
const accessToken = parameters44.accessToken.getValue(connection2);
|
|
78701
|
-
const url = `${
|
|
78719
|
+
const url = `${BASE_URL22}me/adaccounts?fields=account_id,name,account_status&access_token=${encodeURIComponent(accessToken)}`;
|
|
78702
78720
|
const controller = new AbortController();
|
|
78703
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
78721
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS34);
|
|
78704
78722
|
try {
|
|
78705
78723
|
const response = await fetch(url, {
|
|
78706
78724
|
method: "GET",
|
|
@@ -78775,8 +78793,8 @@ var metaAdsOnboarding = new ConnectorOnboarding({
|
|
|
78775
78793
|
|
|
78776
78794
|
// ../connectors/src/connectors/meta-ads/tools/request.ts
|
|
78777
78795
|
import { z as z52 } from "zod";
|
|
78778
|
-
var
|
|
78779
|
-
var
|
|
78796
|
+
var BASE_URL23 = "https://graph.facebook.com/v21.0/";
|
|
78797
|
+
var REQUEST_TIMEOUT_MS35 = 6e4;
|
|
78780
78798
|
var inputSchema50 = z52.object({
|
|
78781
78799
|
toolUseIntent: z52.string().optional().describe(
|
|
78782
78800
|
"Brief description of what you intend to accomplish with this tool call"
|
|
@@ -78800,7 +78818,7 @@ var outputSchema50 = z52.discriminatedUnion("success", [
|
|
|
78800
78818
|
error: z52.string()
|
|
78801
78819
|
})
|
|
78802
78820
|
]);
|
|
78803
|
-
var
|
|
78821
|
+
var requestTool27 = new ConnectorTool({
|
|
78804
78822
|
name: "request",
|
|
78805
78823
|
description: `Send authenticated requests to the Meta Marketing API v21.0.
|
|
78806
78824
|
Authentication is handled via the configured access token.
|
|
@@ -78822,13 +78840,13 @@ Authentication is handled via the configured access token.
|
|
|
78822
78840
|
const accessToken = parameters44.accessToken.getValue(connection2);
|
|
78823
78841
|
const adAccountId = parameters44.adAccountId.tryGetValue(connection2) ?? "";
|
|
78824
78842
|
const resolvedPath = adAccountId ? path5.replace(/\{adAccountId\}/g, adAccountId) : path5;
|
|
78825
|
-
let url = `${
|
|
78843
|
+
let url = `${BASE_URL23}${resolvedPath}`;
|
|
78826
78844
|
const params = new URLSearchParams(queryParams ?? {});
|
|
78827
78845
|
params.set("access_token", accessToken);
|
|
78828
78846
|
const separator = url.includes("?") ? "&" : "?";
|
|
78829
78847
|
url = `${url}${separator}${params.toString()}`;
|
|
78830
78848
|
const controller = new AbortController();
|
|
78831
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
78849
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS35);
|
|
78832
78850
|
try {
|
|
78833
78851
|
const response = await fetch(url, {
|
|
78834
78852
|
method,
|
|
@@ -78858,7 +78876,7 @@ Authentication is handled via the configured access token.
|
|
|
78858
78876
|
|
|
78859
78877
|
// ../connectors/src/connectors/meta-ads/index.ts
|
|
78860
78878
|
var tools44 = {
|
|
78861
|
-
request:
|
|
78879
|
+
request: requestTool27,
|
|
78862
78880
|
listAdAccounts: listAdAccountsTool
|
|
78863
78881
|
};
|
|
78864
78882
|
var metaAdsConnector = new ConnectorPlugin({
|
|
@@ -79027,8 +79045,8 @@ const accounts = await meta.listAdAccounts();
|
|
|
79027
79045
|
|
|
79028
79046
|
// ../connectors/src/connectors/meta-ads-oauth/tools/list-ad-accounts.ts
|
|
79029
79047
|
import { z as z53 } from "zod";
|
|
79030
|
-
var
|
|
79031
|
-
var
|
|
79048
|
+
var BASE_URL24 = "https://graph.facebook.com/v21.0/";
|
|
79049
|
+
var REQUEST_TIMEOUT_MS36 = 6e4;
|
|
79032
79050
|
var cachedToken16 = null;
|
|
79033
79051
|
async function getProxyToken16(config) {
|
|
79034
79052
|
if (cachedToken16 && cachedToken16.expiresAt > Date.now() + 6e4) {
|
|
@@ -79101,7 +79119,7 @@ var listAdAccountsTool2 = new ConnectorTool({
|
|
|
79101
79119
|
const token = await getProxyToken16(config.oauthProxy);
|
|
79102
79120
|
const proxyUrl = `https://${config.oauthProxy.sandboxId}.${config.oauthProxy.previewBaseDomain}/_sqcore/connections/${connectionId}/request`;
|
|
79103
79121
|
const controller = new AbortController();
|
|
79104
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
79122
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS36);
|
|
79105
79123
|
try {
|
|
79106
79124
|
const response = await fetch(proxyUrl, {
|
|
79107
79125
|
method: "POST",
|
|
@@ -79110,7 +79128,7 @@ var listAdAccountsTool2 = new ConnectorTool({
|
|
|
79110
79128
|
Authorization: `Bearer ${token}`
|
|
79111
79129
|
},
|
|
79112
79130
|
body: JSON.stringify({
|
|
79113
|
-
url: `${
|
|
79131
|
+
url: `${BASE_URL24}me/adaccounts?fields=account_id,name,account_status`,
|
|
79114
79132
|
method: "GET"
|
|
79115
79133
|
}),
|
|
79116
79134
|
signal: controller.signal
|
|
@@ -79197,8 +79215,8 @@ var parameters45 = {
|
|
|
79197
79215
|
|
|
79198
79216
|
// ../connectors/src/connectors/meta-ads-oauth/tools/request.ts
|
|
79199
79217
|
import { z as z54 } from "zod";
|
|
79200
|
-
var
|
|
79201
|
-
var
|
|
79218
|
+
var BASE_URL25 = "https://graph.facebook.com/v21.0/";
|
|
79219
|
+
var REQUEST_TIMEOUT_MS37 = 6e4;
|
|
79202
79220
|
var cachedToken17 = null;
|
|
79203
79221
|
async function getProxyToken17(config) {
|
|
79204
79222
|
if (cachedToken17 && cachedToken17.expiresAt > Date.now() + 6e4) {
|
|
@@ -79253,7 +79271,7 @@ var outputSchema52 = z54.discriminatedUnion("success", [
|
|
|
79253
79271
|
error: z54.string()
|
|
79254
79272
|
})
|
|
79255
79273
|
]);
|
|
79256
|
-
var
|
|
79274
|
+
var requestTool28 = new ConnectorTool({
|
|
79257
79275
|
name: "request",
|
|
79258
79276
|
description: `Send authenticated requests to the Meta Marketing API v21.0.
|
|
79259
79277
|
Authentication is handled automatically via OAuth proxy.
|
|
@@ -79274,7 +79292,7 @@ Authentication is handled automatically via OAuth proxy.
|
|
|
79274
79292
|
try {
|
|
79275
79293
|
const adAccountId = parameters45.adAccountId.tryGetValue(connection2) ?? "";
|
|
79276
79294
|
const resolvedPath = adAccountId ? path5.replace(/\{adAccountId\}/g, adAccountId) : path5;
|
|
79277
|
-
let url = `${
|
|
79295
|
+
let url = `${BASE_URL25}${resolvedPath}`;
|
|
79278
79296
|
if (queryParams && Object.keys(queryParams).length > 0) {
|
|
79279
79297
|
const params = new URLSearchParams(queryParams);
|
|
79280
79298
|
const separator = url.includes("?") ? "&" : "?";
|
|
@@ -79283,7 +79301,7 @@ Authentication is handled automatically via OAuth proxy.
|
|
|
79283
79301
|
const token = await getProxyToken17(config.oauthProxy);
|
|
79284
79302
|
const proxyUrl = `https://${config.oauthProxy.sandboxId}.${config.oauthProxy.previewBaseDomain}/_sqcore/connections/${connectionId}/request`;
|
|
79285
79303
|
const controller = new AbortController();
|
|
79286
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
79304
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS37);
|
|
79287
79305
|
try {
|
|
79288
79306
|
const response = await fetch(proxyUrl, {
|
|
79289
79307
|
method: "POST",
|
|
@@ -79318,7 +79336,7 @@ Authentication is handled automatically via OAuth proxy.
|
|
|
79318
79336
|
|
|
79319
79337
|
// ../connectors/src/connectors/meta-ads-oauth/index.ts
|
|
79320
79338
|
var tools45 = {
|
|
79321
|
-
request:
|
|
79339
|
+
request: requestTool28,
|
|
79322
79340
|
listAdAccounts: listAdAccountsTool2
|
|
79323
79341
|
};
|
|
79324
79342
|
var metaAdsOauthConnector = new ConnectorPlugin({
|
|
@@ -79551,8 +79569,8 @@ var parameters46 = {
|
|
|
79551
79569
|
|
|
79552
79570
|
// ../connectors/src/connectors/tiktok-ads/tools/request.ts
|
|
79553
79571
|
import { z as z55 } from "zod";
|
|
79554
|
-
var
|
|
79555
|
-
var
|
|
79572
|
+
var BASE_URL26 = "https://business-api.tiktok.com/open_api/v1.3/";
|
|
79573
|
+
var REQUEST_TIMEOUT_MS38 = 6e4;
|
|
79556
79574
|
var inputSchema53 = z55.object({
|
|
79557
79575
|
toolUseIntent: z55.string().optional().describe(
|
|
79558
79576
|
"Brief description of what you intend to accomplish with this tool call"
|
|
@@ -79576,7 +79594,7 @@ var outputSchema53 = z55.discriminatedUnion("success", [
|
|
|
79576
79594
|
error: z55.string()
|
|
79577
79595
|
})
|
|
79578
79596
|
]);
|
|
79579
|
-
var
|
|
79597
|
+
var requestTool29 = new ConnectorTool({
|
|
79580
79598
|
name: "request",
|
|
79581
79599
|
description: `Send authenticated requests to the TikTok Marketing API v1.3.
|
|
79582
79600
|
Authentication is handled via the configured access token (sent as Access-Token header).
|
|
@@ -79597,7 +79615,7 @@ The advertiser_id is automatically injected if configured.`,
|
|
|
79597
79615
|
try {
|
|
79598
79616
|
const accessToken = parameters46.accessToken.getValue(connection2);
|
|
79599
79617
|
const advertiserId = parameters46.advertiserId.tryGetValue(connection2) ?? "";
|
|
79600
|
-
let url = `${
|
|
79618
|
+
let url = `${BASE_URL26}${path5}`;
|
|
79601
79619
|
if (method === "GET") {
|
|
79602
79620
|
const params = new URLSearchParams(queryParams ?? {});
|
|
79603
79621
|
if (advertiserId && !params.has("advertiser_id")) {
|
|
@@ -79613,7 +79631,7 @@ The advertiser_id is automatically injected if configured.`,
|
|
|
79613
79631
|
...body
|
|
79614
79632
|
} : void 0;
|
|
79615
79633
|
const controller = new AbortController();
|
|
79616
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
79634
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS38);
|
|
79617
79635
|
try {
|
|
79618
79636
|
const response = await fetch(url, {
|
|
79619
79637
|
method,
|
|
@@ -79649,9 +79667,9 @@ The advertiser_id is automatically injected if configured.`,
|
|
|
79649
79667
|
});
|
|
79650
79668
|
|
|
79651
79669
|
// ../connectors/src/connectors/tiktok-ads/index.ts
|
|
79652
|
-
var
|
|
79670
|
+
var BASE_URL27 = "https://business-api.tiktok.com/open_api/v1.3/";
|
|
79653
79671
|
var tools46 = {
|
|
79654
|
-
request:
|
|
79672
|
+
request: requestTool29
|
|
79655
79673
|
};
|
|
79656
79674
|
var tiktokAdsConnector = new ConnectorPlugin({
|
|
79657
79675
|
slug: "tiktok-ads",
|
|
@@ -79824,7 +79842,7 @@ const campaigns = await tiktok.listCampaigns();
|
|
|
79824
79842
|
return { success: true };
|
|
79825
79843
|
}
|
|
79826
79844
|
try {
|
|
79827
|
-
const url = `${
|
|
79845
|
+
const url = `${BASE_URL27}advertiser/info/?advertiser_id=${encodeURIComponent(advertiserId)}`;
|
|
79828
79846
|
const res = await fetch(url, {
|
|
79829
79847
|
method: "GET",
|
|
79830
79848
|
headers: {
|
|
@@ -79856,8 +79874,8 @@ const campaigns = await tiktok.listCampaigns();
|
|
|
79856
79874
|
|
|
79857
79875
|
// ../connectors/src/connectors/tiktok-ads-oauth/tools/list-advertisers.ts
|
|
79858
79876
|
import { z as z56 } from "zod";
|
|
79859
|
-
var
|
|
79860
|
-
var
|
|
79877
|
+
var BASE_URL28 = "https://business-api.tiktok.com/open_api/v1.3/";
|
|
79878
|
+
var REQUEST_TIMEOUT_MS39 = 6e4;
|
|
79861
79879
|
var cachedToken18 = null;
|
|
79862
79880
|
async function getProxyToken18(config) {
|
|
79863
79881
|
if (cachedToken18 && cachedToken18.expiresAt > Date.now() + 6e4) {
|
|
@@ -79930,7 +79948,7 @@ var listAdvertisersTool = new ConnectorTool({
|
|
|
79930
79948
|
const token = await getProxyToken18(config.oauthProxy);
|
|
79931
79949
|
const proxyUrl = `https://${config.oauthProxy.sandboxId}.${config.oauthProxy.previewBaseDomain}/_sqcore/connections/${connectionId}/request`;
|
|
79932
79950
|
const controller = new AbortController();
|
|
79933
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
79951
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS39);
|
|
79934
79952
|
try {
|
|
79935
79953
|
const advertiserListResponse = await fetch(proxyUrl, {
|
|
79936
79954
|
method: "POST",
|
|
@@ -79939,7 +79957,7 @@ var listAdvertisersTool = new ConnectorTool({
|
|
|
79939
79957
|
Authorization: `Bearer ${token}`
|
|
79940
79958
|
},
|
|
79941
79959
|
body: JSON.stringify({
|
|
79942
|
-
url: `${
|
|
79960
|
+
url: `${BASE_URL28}oauth2/advertiser/get/`,
|
|
79943
79961
|
method: "GET"
|
|
79944
79962
|
}),
|
|
79945
79963
|
signal: controller.signal
|
|
@@ -80036,8 +80054,8 @@ var parameters47 = {
|
|
|
80036
80054
|
|
|
80037
80055
|
// ../connectors/src/connectors/tiktok-ads-oauth/tools/request.ts
|
|
80038
80056
|
import { z as z57 } from "zod";
|
|
80039
|
-
var
|
|
80040
|
-
var
|
|
80057
|
+
var BASE_URL29 = "https://business-api.tiktok.com/open_api/v1.3/";
|
|
80058
|
+
var REQUEST_TIMEOUT_MS40 = 6e4;
|
|
80041
80059
|
var cachedToken19 = null;
|
|
80042
80060
|
async function getProxyToken19(config) {
|
|
80043
80061
|
if (cachedToken19 && cachedToken19.expiresAt > Date.now() + 6e4) {
|
|
@@ -80092,7 +80110,7 @@ var outputSchema55 = z57.discriminatedUnion("success", [
|
|
|
80092
80110
|
error: z57.string()
|
|
80093
80111
|
})
|
|
80094
80112
|
]);
|
|
80095
|
-
var
|
|
80113
|
+
var requestTool30 = new ConnectorTool({
|
|
80096
80114
|
name: "request",
|
|
80097
80115
|
description: `Send authenticated requests to the TikTok Marketing API v1.3.
|
|
80098
80116
|
Authentication is handled automatically via OAuth proxy.
|
|
@@ -80112,7 +80130,7 @@ The advertiser_id is automatically injected if configured.`,
|
|
|
80112
80130
|
);
|
|
80113
80131
|
try {
|
|
80114
80132
|
const advertiserId = parameters47.advertiserId.tryGetValue(connection2) ?? "";
|
|
80115
|
-
let url = `${
|
|
80133
|
+
let url = `${BASE_URL29}${path5}`;
|
|
80116
80134
|
if (method === "GET") {
|
|
80117
80135
|
const params = new URLSearchParams(queryParams ?? {});
|
|
80118
80136
|
if (advertiserId && !params.has("advertiser_id")) {
|
|
@@ -80130,7 +80148,7 @@ The advertiser_id is automatically injected if configured.`,
|
|
|
80130
80148
|
const token = await getProxyToken19(config.oauthProxy);
|
|
80131
80149
|
const proxyUrl = `https://${config.oauthProxy.sandboxId}.${config.oauthProxy.previewBaseDomain}/_sqcore/connections/${connectionId}/request`;
|
|
80132
80150
|
const controller = new AbortController();
|
|
80133
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
80151
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS40);
|
|
80134
80152
|
try {
|
|
80135
80153
|
const response = await fetch(proxyUrl, {
|
|
80136
80154
|
method: "POST",
|
|
@@ -80171,7 +80189,7 @@ The advertiser_id is automatically injected if configured.`,
|
|
|
80171
80189
|
|
|
80172
80190
|
// ../connectors/src/connectors/tiktok-ads-oauth/index.ts
|
|
80173
80191
|
var tools47 = {
|
|
80174
|
-
request:
|
|
80192
|
+
request: requestTool30,
|
|
80175
80193
|
listAdvertisers: listAdvertisersTool
|
|
80176
80194
|
};
|
|
80177
80195
|
var tiktokAdsOauthConnector = new ConnectorPlugin({
|
|
@@ -80383,7 +80401,7 @@ var parameters48 = {
|
|
|
80383
80401
|
|
|
80384
80402
|
// ../connectors/src/connectors/mailchimp/tools/request.ts
|
|
80385
80403
|
import { z as z58 } from "zod";
|
|
80386
|
-
var
|
|
80404
|
+
var REQUEST_TIMEOUT_MS41 = 6e4;
|
|
80387
80405
|
function extractDatacenter(apiKey) {
|
|
80388
80406
|
const parts = apiKey.split("-");
|
|
80389
80407
|
const dc = parts[parts.length - 1];
|
|
@@ -80419,7 +80437,7 @@ var outputSchema56 = z58.discriminatedUnion("success", [
|
|
|
80419
80437
|
error: z58.string()
|
|
80420
80438
|
})
|
|
80421
80439
|
]);
|
|
80422
|
-
var
|
|
80440
|
+
var requestTool31 = new ConnectorTool({
|
|
80423
80441
|
name: "request",
|
|
80424
80442
|
description: `Send authenticated requests to the Mailchimp Marketing API v3.
|
|
80425
80443
|
Authentication is handled automatically using the API Key (Basic Auth).
|
|
@@ -80448,7 +80466,7 @@ The datacenter is automatically extracted from the API key suffix.`,
|
|
|
80448
80466
|
url += `?${searchParams.toString()}`;
|
|
80449
80467
|
}
|
|
80450
80468
|
const controller = new AbortController();
|
|
80451
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
80469
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS41);
|
|
80452
80470
|
try {
|
|
80453
80471
|
const response = await fetch(url, {
|
|
80454
80472
|
method,
|
|
@@ -80476,7 +80494,7 @@ The datacenter is automatically extracted from the API key suffix.`,
|
|
|
80476
80494
|
});
|
|
80477
80495
|
|
|
80478
80496
|
// ../connectors/src/connectors/mailchimp/index.ts
|
|
80479
|
-
var tools48 = { request:
|
|
80497
|
+
var tools48 = { request: requestTool31 };
|
|
80480
80498
|
var mailchimpConnector = new ConnectorPlugin({
|
|
80481
80499
|
slug: "mailchimp",
|
|
80482
80500
|
authType: null,
|
|
@@ -80714,7 +80732,7 @@ var parameters49 = {
|
|
|
80714
80732
|
|
|
80715
80733
|
// ../connectors/src/connectors/mailchimp-oauth/tools/request.ts
|
|
80716
80734
|
import { z as z59 } from "zod";
|
|
80717
|
-
var
|
|
80735
|
+
var REQUEST_TIMEOUT_MS42 = 6e4;
|
|
80718
80736
|
var cachedToken20 = null;
|
|
80719
80737
|
async function getProxyToken20(config) {
|
|
80720
80738
|
if (cachedToken20 && cachedToken20.expiresAt > Date.now() + 6e4) {
|
|
@@ -80769,7 +80787,7 @@ var outputSchema57 = z59.discriminatedUnion("success", [
|
|
|
80769
80787
|
error: z59.string()
|
|
80770
80788
|
})
|
|
80771
80789
|
]);
|
|
80772
|
-
var
|
|
80790
|
+
var requestTool32 = new ConnectorTool({
|
|
80773
80791
|
name: "request",
|
|
80774
80792
|
description: `Send authenticated requests to the Mailchimp Marketing API v3.
|
|
80775
80793
|
Authentication is handled automatically via OAuth proxy.`,
|
|
@@ -80797,7 +80815,7 @@ Authentication is handled automatically via OAuth proxy.`,
|
|
|
80797
80815
|
const token = await getProxyToken20(config.oauthProxy);
|
|
80798
80816
|
const proxyUrl = `https://${config.oauthProxy.sandboxId}.${config.oauthProxy.previewBaseDomain}/_sqcore/connections/${connectionId}/request`;
|
|
80799
80817
|
const controller = new AbortController();
|
|
80800
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
80818
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS42);
|
|
80801
80819
|
try {
|
|
80802
80820
|
const response = await fetch(proxyUrl, {
|
|
80803
80821
|
method: "POST",
|
|
@@ -80829,7 +80847,7 @@ Authentication is handled automatically via OAuth proxy.`,
|
|
|
80829
80847
|
});
|
|
80830
80848
|
|
|
80831
80849
|
// ../connectors/src/connectors/mailchimp-oauth/index.ts
|
|
80832
|
-
var tools49 = { request:
|
|
80850
|
+
var tools49 = { request: requestTool32 };
|
|
80833
80851
|
var mailchimpOauthConnector = new ConnectorPlugin({
|
|
80834
80852
|
slug: "mailchimp",
|
|
80835
80853
|
authType: AUTH_TYPES.OAUTH,
|
|
@@ -81029,7 +81047,7 @@ var parameters50 = {
|
|
|
81029
81047
|
|
|
81030
81048
|
// ../connectors/src/connectors/customerio/tools/request.ts
|
|
81031
81049
|
import { z as z60 } from "zod";
|
|
81032
|
-
var
|
|
81050
|
+
var REQUEST_TIMEOUT_MS43 = 6e4;
|
|
81033
81051
|
function getBaseUrl(region) {
|
|
81034
81052
|
return region === "eu" ? "https://api-eu.customer.io" : "https://api.customer.io";
|
|
81035
81053
|
}
|
|
@@ -81056,7 +81074,7 @@ var outputSchema58 = z60.discriminatedUnion("success", [
|
|
|
81056
81074
|
error: z60.string()
|
|
81057
81075
|
})
|
|
81058
81076
|
]);
|
|
81059
|
-
var
|
|
81077
|
+
var requestTool33 = new ConnectorTool({
|
|
81060
81078
|
name: "request",
|
|
81061
81079
|
description: `Send authenticated requests to the Customer.io App API.
|
|
81062
81080
|
Authentication is handled automatically using the App API Key (Bearer token).
|
|
@@ -81085,7 +81103,7 @@ The App API is the read and management path for Customer.io data.`,
|
|
|
81085
81103
|
url += `?${searchParams.toString()}`;
|
|
81086
81104
|
}
|
|
81087
81105
|
const controller = new AbortController();
|
|
81088
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
81106
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS43);
|
|
81089
81107
|
try {
|
|
81090
81108
|
const response = await fetch(url, {
|
|
81091
81109
|
method,
|
|
@@ -81122,7 +81140,7 @@ The App API is the read and management path for Customer.io data.`,
|
|
|
81122
81140
|
});
|
|
81123
81141
|
|
|
81124
81142
|
// ../connectors/src/connectors/customerio/index.ts
|
|
81125
|
-
var tools50 = { request:
|
|
81143
|
+
var tools50 = { request: requestTool33 };
|
|
81126
81144
|
var customerioConnector = new ConnectorPlugin({
|
|
81127
81145
|
slug: "customerio",
|
|
81128
81146
|
authType: null,
|
|
@@ -81307,8 +81325,8 @@ export default async function handler(c: Context) {
|
|
|
81307
81325
|
|
|
81308
81326
|
// ../connectors/src/connectors/gmail-oauth/tools/request.ts
|
|
81309
81327
|
import { z as z61 } from "zod";
|
|
81310
|
-
var
|
|
81311
|
-
var
|
|
81328
|
+
var BASE_URL30 = "https://gmail.googleapis.com/gmail/v1/users";
|
|
81329
|
+
var REQUEST_TIMEOUT_MS44 = 6e4;
|
|
81312
81330
|
var cachedToken21 = null;
|
|
81313
81331
|
async function getProxyToken21(config) {
|
|
81314
81332
|
if (cachedToken21 && cachedToken21.expiresAt > Date.now() + 6e4) {
|
|
@@ -81364,7 +81382,7 @@ var outputSchema59 = z61.discriminatedUnion("success", [
|
|
|
81364
81382
|
error: z61.string()
|
|
81365
81383
|
})
|
|
81366
81384
|
]);
|
|
81367
|
-
var
|
|
81385
|
+
var requestTool34 = new ConnectorTool({
|
|
81368
81386
|
name: "request",
|
|
81369
81387
|
description: `Send authenticated GET requests to the Gmail API v1.
|
|
81370
81388
|
Authentication is handled automatically via OAuth proxy.
|
|
@@ -81383,7 +81401,7 @@ All paths are relative to https://gmail.googleapis.com/gmail/v1/users. Use '/me'
|
|
|
81383
81401
|
`[connector-request] gmail-oauth/${connection2.name}: ${method} ${path5}`
|
|
81384
81402
|
);
|
|
81385
81403
|
try {
|
|
81386
|
-
let url = `${
|
|
81404
|
+
let url = `${BASE_URL30}${path5.startsWith("/") ? "" : "/"}${path5}`;
|
|
81387
81405
|
if (queryParams) {
|
|
81388
81406
|
const searchParams = new URLSearchParams(queryParams);
|
|
81389
81407
|
url += `?${searchParams.toString()}`;
|
|
@@ -81391,7 +81409,7 @@ All paths are relative to https://gmail.googleapis.com/gmail/v1/users. Use '/me'
|
|
|
81391
81409
|
const token = await getProxyToken21(config.oauthProxy);
|
|
81392
81410
|
const proxyUrl = `https://${config.oauthProxy.sandboxId}.${config.oauthProxy.previewBaseDomain}/_sqcore/connections/${connectionId}/request`;
|
|
81393
81411
|
const controller = new AbortController();
|
|
81394
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
81412
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS44);
|
|
81395
81413
|
try {
|
|
81396
81414
|
const response = await fetch(proxyUrl, {
|
|
81397
81415
|
method: "POST",
|
|
@@ -81422,16 +81440,16 @@ All paths are relative to https://gmail.googleapis.com/gmail/v1/users. Use '/me'
|
|
|
81422
81440
|
});
|
|
81423
81441
|
|
|
81424
81442
|
// ../connectors/src/connectors/gmail-oauth/setup.ts
|
|
81425
|
-
var
|
|
81443
|
+
var requestToolName9 = `gmail-oauth_${requestTool34.name}`;
|
|
81426
81444
|
var gmailOnboarding = new ConnectorOnboarding({
|
|
81427
81445
|
connectionSetupInstructions: {
|
|
81428
81446
|
ja: `\u4EE5\u4E0B\u306E\u624B\u9806\u3067Gmail\u30B3\u30CD\u30AF\u30B7\u30E7\u30F3\u306E\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u3092\u884C\u3063\u3066\u304F\u3060\u3055\u3044\u3002
|
|
81429
81447
|
|
|
81430
|
-
1. \`${
|
|
81448
|
+
1. \`${requestToolName9}\` \u3092\u547C\u3073\u51FA\u3057\u3066\u30E6\u30FC\u30B6\u30FC\u306E\u30D7\u30ED\u30D5\u30A3\u30FC\u30EB\u3092\u53D6\u5F97\u3059\u308B:
|
|
81431
81449
|
- \`method\`: \`"GET"\`
|
|
81432
81450
|
- \`path\`: \`"/me/profile"\`
|
|
81433
81451
|
2. \u30A8\u30E9\u30FC\u304C\u8FD4\u3055\u308C\u305F\u5834\u5408\u3001OAuth\u306E\u8A8D\u8A3C\u304C\u6B63\u3057\u304F\u5B8C\u4E86\u3057\u3066\u3044\u308B\u304B\u78BA\u8A8D\u3059\u308B\u3088\u3046\u30E6\u30FC\u30B6\u30FC\u306B\u4F1D\u3048\u308B
|
|
81434
|
-
3. \`${
|
|
81452
|
+
3. \`${requestToolName9}\` \u3092\u547C\u3073\u51FA\u3057\u3066\u30E9\u30D9\u30EB\u4E00\u89A7\u3092\u53D6\u5F97\u3059\u308B:
|
|
81435
81453
|
- \`method\`: \`"GET"\`
|
|
81436
81454
|
- \`path\`: \`"/me/labels"\`
|
|
81437
81455
|
4. \`updateConnectionContext\` \u3092\u547C\u3073\u51FA\u3059:
|
|
@@ -81444,11 +81462,11 @@ var gmailOnboarding = new ConnectorOnboarding({
|
|
|
81444
81462
|
- \u30C4\u30FC\u30EB\u9593\u306F1\u6587\u3060\u3051\u66F8\u3044\u3066\u5373\u6B21\u306E\u30C4\u30FC\u30EB\u547C\u3073\u51FA\u3057\u3002\u4E0D\u8981\u306A\u8AAC\u660E\u306F\u7701\u7565\u3057\u3001\u52B9\u7387\u7684\u306B\u9032\u3081\u308B`,
|
|
81445
81463
|
en: `Follow these steps to set up the Gmail connection.
|
|
81446
81464
|
|
|
81447
|
-
1. Call \`${
|
|
81465
|
+
1. Call \`${requestToolName9}\` to get the user's profile:
|
|
81448
81466
|
- \`method\`: \`"GET"\`
|
|
81449
81467
|
- \`path\`: \`"/me/profile"\`
|
|
81450
81468
|
2. If an error is returned, ask the user to verify that OAuth authentication completed correctly
|
|
81451
|
-
3. Call \`${
|
|
81469
|
+
3. Call \`${requestToolName9}\` to get the label list:
|
|
81452
81470
|
- \`method\`: \`"GET"\`
|
|
81453
81471
|
- \`path\`: \`"/me/labels"\`
|
|
81454
81472
|
4. Call \`updateConnectionContext\`:
|
|
@@ -81474,7 +81492,7 @@ var gmailOnboarding = new ConnectorOnboarding({
|
|
|
81474
81492
|
var parameters51 = {};
|
|
81475
81493
|
|
|
81476
81494
|
// ../connectors/src/connectors/gmail-oauth/index.ts
|
|
81477
|
-
var tools51 = { request:
|
|
81495
|
+
var tools51 = { request: requestTool34 };
|
|
81478
81496
|
var gmailOauthConnector = new ConnectorPlugin({
|
|
81479
81497
|
slug: "gmail",
|
|
81480
81498
|
authType: AUTH_TYPES.OAUTH,
|
|
@@ -81689,7 +81707,7 @@ var parameters52 = {
|
|
|
81689
81707
|
};
|
|
81690
81708
|
|
|
81691
81709
|
// ../connectors/src/connectors/linkedin-ads/tools/list-ad-accounts.ts
|
|
81692
|
-
var
|
|
81710
|
+
var REQUEST_TIMEOUT_MS45 = 6e4;
|
|
81693
81711
|
var LINKEDIN_VERSION = "202603";
|
|
81694
81712
|
var inputSchema60 = z62.object({
|
|
81695
81713
|
toolUseIntent: z62.string().optional().describe(
|
|
@@ -81732,7 +81750,7 @@ var listAdAccountsTool3 = new ConnectorTool({
|
|
|
81732
81750
|
const accessToken = parameters52.accessToken.getValue(connection2);
|
|
81733
81751
|
const url = "https://api.linkedin.com/rest/adAccounts?q=search&search=(status:(values:List(ACTIVE)))&pageSize=100";
|
|
81734
81752
|
const controller = new AbortController();
|
|
81735
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
81753
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS45);
|
|
81736
81754
|
try {
|
|
81737
81755
|
const response = await fetch(url, {
|
|
81738
81756
|
method: "GET",
|
|
@@ -81812,9 +81830,9 @@ var linkedinAdsOnboarding = new ConnectorOnboarding({
|
|
|
81812
81830
|
|
|
81813
81831
|
// ../connectors/src/connectors/linkedin-ads/tools/request.ts
|
|
81814
81832
|
import { z as z63 } from "zod";
|
|
81815
|
-
var
|
|
81833
|
+
var BASE_URL31 = "https://api.linkedin.com/rest/";
|
|
81816
81834
|
var LINKEDIN_VERSION2 = "202603";
|
|
81817
|
-
var
|
|
81835
|
+
var REQUEST_TIMEOUT_MS46 = 6e4;
|
|
81818
81836
|
var inputSchema61 = z63.object({
|
|
81819
81837
|
toolUseIntent: z63.string().optional().describe(
|
|
81820
81838
|
"Brief description of what you intend to accomplish with this tool call"
|
|
@@ -81838,7 +81856,7 @@ var outputSchema61 = z63.discriminatedUnion("success", [
|
|
|
81838
81856
|
error: z63.string()
|
|
81839
81857
|
})
|
|
81840
81858
|
]);
|
|
81841
|
-
var
|
|
81859
|
+
var requestTool35 = new ConnectorTool({
|
|
81842
81860
|
name: "request",
|
|
81843
81861
|
description: `Send authenticated requests to the LinkedIn Marketing API (REST).
|
|
81844
81862
|
Authentication is handled via the configured access token.
|
|
@@ -81861,14 +81879,14 @@ Required headers (Authorization, LinkedIn-Version, X-Restli-Protocol-Version) ar
|
|
|
81861
81879
|
const accessToken = parameters52.accessToken.getValue(connection2);
|
|
81862
81880
|
const adAccountId = parameters52.adAccountId.tryGetValue(connection2) ?? "";
|
|
81863
81881
|
const resolvedPath = adAccountId ? path5.replace(/\{adAccountId\}/g, adAccountId) : path5;
|
|
81864
|
-
let url = `${
|
|
81882
|
+
let url = `${BASE_URL31}${resolvedPath}`;
|
|
81865
81883
|
if (queryParams && Object.keys(queryParams).length > 0) {
|
|
81866
81884
|
const params = new URLSearchParams(queryParams);
|
|
81867
81885
|
const separator = url.includes("?") ? "&" : "?";
|
|
81868
81886
|
url = `${url}${separator}${params.toString()}`;
|
|
81869
81887
|
}
|
|
81870
81888
|
const controller = new AbortController();
|
|
81871
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
81889
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS46);
|
|
81872
81890
|
try {
|
|
81873
81891
|
const headers = {
|
|
81874
81892
|
Authorization: `Bearer ${accessToken}`,
|
|
@@ -81907,7 +81925,7 @@ Required headers (Authorization, LinkedIn-Version, X-Restli-Protocol-Version) ar
|
|
|
81907
81925
|
|
|
81908
81926
|
// ../connectors/src/connectors/linkedin-ads/index.ts
|
|
81909
81927
|
var tools52 = {
|
|
81910
|
-
request:
|
|
81928
|
+
request: requestTool35,
|
|
81911
81929
|
listAdAccounts: listAdAccountsTool3
|
|
81912
81930
|
};
|
|
81913
81931
|
var linkedinAdsConnector = new ConnectorPlugin({
|
|
@@ -82169,9 +82187,9 @@ const data = await res.json();
|
|
|
82169
82187
|
|
|
82170
82188
|
// ../connectors/src/connectors/linkedin-ads-oauth/tools/list-ad-accounts.ts
|
|
82171
82189
|
import { z as z64 } from "zod";
|
|
82172
|
-
var
|
|
82190
|
+
var BASE_URL32 = "https://api.linkedin.com/rest/";
|
|
82173
82191
|
var LINKEDIN_VERSION3 = "202603";
|
|
82174
|
-
var
|
|
82192
|
+
var REQUEST_TIMEOUT_MS47 = 6e4;
|
|
82175
82193
|
var cachedToken22 = null;
|
|
82176
82194
|
async function getProxyToken22(config) {
|
|
82177
82195
|
if (cachedToken22 && cachedToken22.expiresAt > Date.now() + 6e4) {
|
|
@@ -82244,7 +82262,7 @@ var listAdAccountsTool4 = new ConnectorTool({
|
|
|
82244
82262
|
const token = await getProxyToken22(config.oauthProxy);
|
|
82245
82263
|
const proxyUrl = `https://${config.oauthProxy.sandboxId}.${config.oauthProxy.previewBaseDomain}/_sqcore/connections/${connectionId}/request`;
|
|
82246
82264
|
const controller = new AbortController();
|
|
82247
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
82265
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS47);
|
|
82248
82266
|
try {
|
|
82249
82267
|
const response = await fetch(proxyUrl, {
|
|
82250
82268
|
method: "POST",
|
|
@@ -82253,7 +82271,7 @@ var listAdAccountsTool4 = new ConnectorTool({
|
|
|
82253
82271
|
Authorization: `Bearer ${token}`
|
|
82254
82272
|
},
|
|
82255
82273
|
body: JSON.stringify({
|
|
82256
|
-
url: `${
|
|
82274
|
+
url: `${BASE_URL32}adAccounts?q=search&search=(status:(values:List(ACTIVE)))&pageSize=100`,
|
|
82257
82275
|
method: "GET",
|
|
82258
82276
|
headers: {
|
|
82259
82277
|
"LinkedIn-Version": LINKEDIN_VERSION3,
|
|
@@ -82344,9 +82362,9 @@ var parameters53 = {
|
|
|
82344
82362
|
|
|
82345
82363
|
// ../connectors/src/connectors/linkedin-ads-oauth/tools/request.ts
|
|
82346
82364
|
import { z as z65 } from "zod";
|
|
82347
|
-
var
|
|
82365
|
+
var BASE_URL33 = "https://api.linkedin.com/rest/";
|
|
82348
82366
|
var LINKEDIN_VERSION4 = "202603";
|
|
82349
|
-
var
|
|
82367
|
+
var REQUEST_TIMEOUT_MS48 = 6e4;
|
|
82350
82368
|
var cachedToken23 = null;
|
|
82351
82369
|
async function getProxyToken23(config) {
|
|
82352
82370
|
if (cachedToken23 && cachedToken23.expiresAt > Date.now() + 6e4) {
|
|
@@ -82401,7 +82419,7 @@ var outputSchema63 = z65.discriminatedUnion("success", [
|
|
|
82401
82419
|
error: z65.string()
|
|
82402
82420
|
})
|
|
82403
82421
|
]);
|
|
82404
|
-
var
|
|
82422
|
+
var requestTool36 = new ConnectorTool({
|
|
82405
82423
|
name: "request",
|
|
82406
82424
|
description: `Send authenticated requests to the LinkedIn Marketing API (REST).
|
|
82407
82425
|
Authentication is handled automatically via OAuth proxy.
|
|
@@ -82423,7 +82441,7 @@ Required headers (LinkedIn-Version, X-Restli-Protocol-Version) are set automatic
|
|
|
82423
82441
|
try {
|
|
82424
82442
|
const adAccountId = parameters53.adAccountId.tryGetValue(connection2) ?? "";
|
|
82425
82443
|
const resolvedPath = adAccountId ? path5.replace(/\{adAccountId\}/g, adAccountId) : path5;
|
|
82426
|
-
let url = `${
|
|
82444
|
+
let url = `${BASE_URL33}${resolvedPath}`;
|
|
82427
82445
|
if (queryParams && Object.keys(queryParams).length > 0) {
|
|
82428
82446
|
const params = new URLSearchParams(queryParams);
|
|
82429
82447
|
const separator = url.includes("?") ? "&" : "?";
|
|
@@ -82432,7 +82450,7 @@ Required headers (LinkedIn-Version, X-Restli-Protocol-Version) are set automatic
|
|
|
82432
82450
|
const token = await getProxyToken23(config.oauthProxy);
|
|
82433
82451
|
const proxyUrl = `https://${config.oauthProxy.sandboxId}.${config.oauthProxy.previewBaseDomain}/_sqcore/connections/${connectionId}/request`;
|
|
82434
82452
|
const controller = new AbortController();
|
|
82435
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
82453
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS48);
|
|
82436
82454
|
try {
|
|
82437
82455
|
const additionalHeaders = {
|
|
82438
82456
|
"LinkedIn-Version": LINKEDIN_VERSION4,
|
|
@@ -82477,7 +82495,7 @@ Required headers (LinkedIn-Version, X-Restli-Protocol-Version) are set automatic
|
|
|
82477
82495
|
|
|
82478
82496
|
// ../connectors/src/connectors/linkedin-ads-oauth/index.ts
|
|
82479
82497
|
var tools53 = {
|
|
82480
|
-
request:
|
|
82498
|
+
request: requestTool36,
|
|
82481
82499
|
listAdAccounts: listAdAccountsTool4
|
|
82482
82500
|
};
|
|
82483
82501
|
var linkedinAdsOauthConnector = new ConnectorPlugin({
|
|
@@ -82761,7 +82779,7 @@ var parameters54 = {
|
|
|
82761
82779
|
|
|
82762
82780
|
// ../connectors/src/connectors/zendesk/tools/request.ts
|
|
82763
82781
|
import { z as z66 } from "zod";
|
|
82764
|
-
var
|
|
82782
|
+
var REQUEST_TIMEOUT_MS49 = 6e4;
|
|
82765
82783
|
var inputSchema64 = z66.object({
|
|
82766
82784
|
toolUseIntent: z66.string().optional().describe(
|
|
82767
82785
|
"Brief description of what you intend to accomplish with this tool call"
|
|
@@ -82786,7 +82804,7 @@ var outputSchema64 = z66.discriminatedUnion("success", [
|
|
|
82786
82804
|
error: z66.string()
|
|
82787
82805
|
})
|
|
82788
82806
|
]);
|
|
82789
|
-
var
|
|
82807
|
+
var requestTool37 = new ConnectorTool({
|
|
82790
82808
|
name: "request",
|
|
82791
82809
|
description: `Send authenticated requests to the Zendesk Support API.
|
|
82792
82810
|
Authentication is handled automatically using email/token Basic auth.
|
|
@@ -82814,7 +82832,7 @@ Zendesk uses cursor-based pagination with page[size] and page[after] parameters.
|
|
|
82814
82832
|
);
|
|
82815
82833
|
const url = `https://${subdomain}.zendesk.com${path5.startsWith("/") ? "" : "/"}${path5}`;
|
|
82816
82834
|
const controller = new AbortController();
|
|
82817
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
82835
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS49);
|
|
82818
82836
|
try {
|
|
82819
82837
|
const response = await fetch(url, {
|
|
82820
82838
|
method,
|
|
@@ -82842,7 +82860,7 @@ Zendesk uses cursor-based pagination with page[size] and page[after] parameters.
|
|
|
82842
82860
|
});
|
|
82843
82861
|
|
|
82844
82862
|
// ../connectors/src/connectors/zendesk/index.ts
|
|
82845
|
-
var tools54 = { request:
|
|
82863
|
+
var tools54 = { request: requestTool37 };
|
|
82846
82864
|
var zendeskConnector = new ConnectorPlugin({
|
|
82847
82865
|
slug: "zendesk",
|
|
82848
82866
|
authType: null,
|
|
@@ -83031,7 +83049,7 @@ export default async function handler(c: Context) {
|
|
|
83031
83049
|
|
|
83032
83050
|
// ../connectors/src/connectors/zendesk-oauth/tools/request.ts
|
|
83033
83051
|
import { z as z67 } from "zod";
|
|
83034
|
-
var
|
|
83052
|
+
var REQUEST_TIMEOUT_MS50 = 6e4;
|
|
83035
83053
|
var cachedToken24 = null;
|
|
83036
83054
|
async function getProxyToken24(config) {
|
|
83037
83055
|
if (cachedToken24 && cachedToken24.expiresAt > Date.now() + 6e4) {
|
|
@@ -83086,7 +83104,7 @@ var outputSchema65 = z67.discriminatedUnion("success", [
|
|
|
83086
83104
|
error: z67.string()
|
|
83087
83105
|
})
|
|
83088
83106
|
]);
|
|
83089
|
-
var
|
|
83107
|
+
var requestTool38 = new ConnectorTool({
|
|
83090
83108
|
name: "request",
|
|
83091
83109
|
description: `Send authenticated requests to the Zendesk Support API.
|
|
83092
83110
|
Authentication is handled automatically via OAuth proxy.
|
|
@@ -83115,7 +83133,7 @@ Zendesk uses cursor-based pagination with page[size] and page[after] parameters.
|
|
|
83115
83133
|
const token = await getProxyToken24(config.oauthProxy);
|
|
83116
83134
|
const proxyUrl = `https://${config.oauthProxy.sandboxId}.${config.oauthProxy.previewBaseDomain}/_sqcore/connections/${connectionId}/request`;
|
|
83117
83135
|
const controller = new AbortController();
|
|
83118
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
83136
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS50);
|
|
83119
83137
|
try {
|
|
83120
83138
|
const response = await fetch(proxyUrl, {
|
|
83121
83139
|
method: "POST",
|
|
@@ -83147,12 +83165,12 @@ Zendesk uses cursor-based pagination with page[size] and page[after] parameters.
|
|
|
83147
83165
|
});
|
|
83148
83166
|
|
|
83149
83167
|
// ../connectors/src/connectors/zendesk-oauth/setup.ts
|
|
83150
|
-
var
|
|
83168
|
+
var requestToolName10 = `zendesk-oauth_${requestTool38.name}`;
|
|
83151
83169
|
var zendeskOauthOnboarding = new ConnectorOnboarding({
|
|
83152
83170
|
connectionSetupInstructions: {
|
|
83153
83171
|
en: `Follow these steps to set up the Zendesk connection.
|
|
83154
83172
|
|
|
83155
|
-
1. Call \`${
|
|
83173
|
+
1. Call \`${requestToolName10}\` to fetch account info:
|
|
83156
83174
|
- \`method\`: \`"GET"\`
|
|
83157
83175
|
- \`path\`: \`"/api/v2/account/settings.json"\`
|
|
83158
83176
|
2. If an error is returned, ask the user to check the OAuth connection settings
|
|
@@ -83165,7 +83183,7 @@ var zendeskOauthOnboarding = new ConnectorOnboarding({
|
|
|
83165
83183
|
- Write only 1 sentence between tool calls, then immediately call the next tool. Skip unnecessary explanations and proceed efficiently`,
|
|
83166
83184
|
ja: `\u4EE5\u4E0B\u306E\u624B\u9806\u3067Zendesk\u30B3\u30CD\u30AF\u30B7\u30E7\u30F3\u306E\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u3092\u884C\u3063\u3066\u304F\u3060\u3055\u3044\u3002
|
|
83167
83185
|
|
|
83168
|
-
1. \`${
|
|
83186
|
+
1. \`${requestToolName10}\` \u3092\u547C\u3073\u51FA\u3057\u3066\u3001\u30A2\u30AB\u30A6\u30F3\u30C8\u60C5\u5831\u3092\u53D6\u5F97\u3059\u308B:
|
|
83169
83187
|
- \`method\`: \`"GET"\`
|
|
83170
83188
|
- \`path\`: \`"/api/v2/account/settings.json"\`
|
|
83171
83189
|
2. \u30A8\u30E9\u30FC\u304C\u8FD4\u3055\u308C\u305F\u5834\u5408\u3001\u30E6\u30FC\u30B6\u30FC\u306BOAuth\u63A5\u7D9A\u306E\u8A2D\u5B9A\u3092\u78BA\u8A8D\u3059\u308B\u3088\u3046\u4F1D\u3048\u308B
|
|
@@ -83193,7 +83211,7 @@ var zendeskOauthOnboarding = new ConnectorOnboarding({
|
|
|
83193
83211
|
var parameters55 = {};
|
|
83194
83212
|
|
|
83195
83213
|
// ../connectors/src/connectors/zendesk-oauth/index.ts
|
|
83196
|
-
var tools55 = { request:
|
|
83214
|
+
var tools55 = { request: requestTool38 };
|
|
83197
83215
|
var zendeskOauthConnector = new ConnectorPlugin({
|
|
83198
83216
|
slug: "zendesk",
|
|
83199
83217
|
authType: AUTH_TYPES.OAUTH,
|
|
@@ -83382,9 +83400,9 @@ var parameters56 = {
|
|
|
83382
83400
|
|
|
83383
83401
|
// ../connectors/src/connectors/intercom/tools/request.ts
|
|
83384
83402
|
import { z as z68 } from "zod";
|
|
83385
|
-
var
|
|
83403
|
+
var BASE_URL34 = "https://api.intercom.io";
|
|
83386
83404
|
var API_VERSION = "2.11";
|
|
83387
|
-
var
|
|
83405
|
+
var REQUEST_TIMEOUT_MS51 = 6e4;
|
|
83388
83406
|
var inputSchema66 = z68.object({
|
|
83389
83407
|
toolUseIntent: z68.string().optional().describe(
|
|
83390
83408
|
"Brief description of what you intend to accomplish with this tool call"
|
|
@@ -83409,7 +83427,7 @@ var outputSchema66 = z68.discriminatedUnion("success", [
|
|
|
83409
83427
|
error: z68.string()
|
|
83410
83428
|
})
|
|
83411
83429
|
]);
|
|
83412
|
-
var
|
|
83430
|
+
var requestTool39 = new ConnectorTool({
|
|
83413
83431
|
name: "request",
|
|
83414
83432
|
description: `Send authenticated requests to the Intercom API.
|
|
83415
83433
|
Authentication is handled automatically using the Access Token (Bearer token).
|
|
@@ -83432,9 +83450,9 @@ The Intercom-Version header is set to 2.11 automatically.`,
|
|
|
83432
83450
|
);
|
|
83433
83451
|
try {
|
|
83434
83452
|
const accessToken = parameters56.accessToken.getValue(connection2);
|
|
83435
|
-
const url = `${
|
|
83453
|
+
const url = `${BASE_URL34}${path5.startsWith("/") ? "" : "/"}${path5}`;
|
|
83436
83454
|
const controller = new AbortController();
|
|
83437
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
83455
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS51);
|
|
83438
83456
|
try {
|
|
83439
83457
|
const response = await fetch(url, {
|
|
83440
83458
|
method,
|
|
@@ -83465,7 +83483,7 @@ The Intercom-Version header is set to 2.11 automatically.`,
|
|
|
83465
83483
|
});
|
|
83466
83484
|
|
|
83467
83485
|
// ../connectors/src/connectors/intercom/index.ts
|
|
83468
|
-
var tools56 = { request:
|
|
83486
|
+
var tools56 = { request: requestTool39 };
|
|
83469
83487
|
var intercomConnector = new ConnectorPlugin({
|
|
83470
83488
|
slug: "intercom",
|
|
83471
83489
|
authType: null,
|
|
@@ -83674,8 +83692,8 @@ export default async function handler(c: Context) {
|
|
|
83674
83692
|
|
|
83675
83693
|
// ../connectors/src/connectors/intercom-oauth/tools/request.ts
|
|
83676
83694
|
import { z as z69 } from "zod";
|
|
83677
|
-
var
|
|
83678
|
-
var
|
|
83695
|
+
var BASE_URL35 = "https://api.intercom.io";
|
|
83696
|
+
var REQUEST_TIMEOUT_MS52 = 6e4;
|
|
83679
83697
|
var cachedToken25 = null;
|
|
83680
83698
|
async function getProxyToken25(config) {
|
|
83681
83699
|
if (cachedToken25 && cachedToken25.expiresAt > Date.now() + 6e4) {
|
|
@@ -83730,7 +83748,7 @@ var outputSchema67 = z69.discriminatedUnion("success", [
|
|
|
83730
83748
|
error: z69.string()
|
|
83731
83749
|
})
|
|
83732
83750
|
]);
|
|
83733
|
-
var
|
|
83751
|
+
var requestTool40 = new ConnectorTool({
|
|
83734
83752
|
name: "request",
|
|
83735
83753
|
description: `Send authenticated requests to the Intercom API.
|
|
83736
83754
|
Authentication is handled automatically via OAuth proxy.
|
|
@@ -83751,7 +83769,7 @@ Search endpoints (contacts/search, conversations/search) use POST with a query o
|
|
|
83751
83769
|
`[connector-request] intercom-oauth/${connection2.name}: ${method} ${path5}`
|
|
83752
83770
|
);
|
|
83753
83771
|
try {
|
|
83754
|
-
let url = `${
|
|
83772
|
+
let url = `${BASE_URL35}${path5.startsWith("/") ? "" : "/"}${path5}`;
|
|
83755
83773
|
if (queryParams) {
|
|
83756
83774
|
const searchParams = new URLSearchParams(queryParams);
|
|
83757
83775
|
const separator = url.includes("?") ? "&" : "?";
|
|
@@ -83760,7 +83778,7 @@ Search endpoints (contacts/search, conversations/search) use POST with a query o
|
|
|
83760
83778
|
const token = await getProxyToken25(config.oauthProxy);
|
|
83761
83779
|
const proxyUrl = `https://${config.oauthProxy.sandboxId}.${config.oauthProxy.previewBaseDomain}/_sqcore/connections/${connectionId}/request`;
|
|
83762
83780
|
const controller = new AbortController();
|
|
83763
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
83781
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS52);
|
|
83764
83782
|
try {
|
|
83765
83783
|
const response = await fetch(proxyUrl, {
|
|
83766
83784
|
method: "POST",
|
|
@@ -83793,12 +83811,12 @@ Search endpoints (contacts/search, conversations/search) use POST with a query o
|
|
|
83793
83811
|
});
|
|
83794
83812
|
|
|
83795
83813
|
// ../connectors/src/connectors/intercom-oauth/setup.ts
|
|
83796
|
-
var
|
|
83814
|
+
var requestToolName11 = `intercom-oauth_${requestTool40.name}`;
|
|
83797
83815
|
var intercomOauthOnboarding = new ConnectorOnboarding({
|
|
83798
83816
|
connectionSetupInstructions: {
|
|
83799
83817
|
en: `Follow these steps to set up the Intercom connection.
|
|
83800
83818
|
|
|
83801
|
-
1. Call \`${
|
|
83819
|
+
1. Call \`${requestToolName11}\` to verify the connection:
|
|
83802
83820
|
- \`method\`: \`"GET"\`
|
|
83803
83821
|
- \`path\`: \`"/me"\`
|
|
83804
83822
|
2. If an error is returned, ask the user to check the OAuth connection settings
|
|
@@ -83811,7 +83829,7 @@ var intercomOauthOnboarding = new ConnectorOnboarding({
|
|
|
83811
83829
|
- Write only 1 sentence between tool calls, then immediately call the next tool. Skip unnecessary explanations and proceed efficiently`,
|
|
83812
83830
|
ja: `\u4EE5\u4E0B\u306E\u624B\u9806\u3067Intercom\u30B3\u30CD\u30AF\u30B7\u30E7\u30F3\u306E\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u3092\u884C\u3063\u3066\u304F\u3060\u3055\u3044\u3002
|
|
83813
83831
|
|
|
83814
|
-
1. \`${
|
|
83832
|
+
1. \`${requestToolName11}\` \u3092\u547C\u3073\u51FA\u3057\u3066\u3001\u63A5\u7D9A\u3092\u78BA\u8A8D\u3059\u308B:
|
|
83815
83833
|
- \`method\`: \`"GET"\`
|
|
83816
83834
|
- \`path\`: \`"/me"\`
|
|
83817
83835
|
2. \u30A8\u30E9\u30FC\u304C\u8FD4\u3055\u308C\u305F\u5834\u5408\u3001\u30E6\u30FC\u30B6\u30FC\u306BOAuth\u63A5\u7D9A\u306E\u8A2D\u5B9A\u3092\u78BA\u8A8D\u3059\u308B\u3088\u3046\u4F1D\u3048\u308B
|
|
@@ -83839,7 +83857,7 @@ var intercomOauthOnboarding = new ConnectorOnboarding({
|
|
|
83839
83857
|
var parameters57 = {};
|
|
83840
83858
|
|
|
83841
83859
|
// ../connectors/src/connectors/intercom-oauth/index.ts
|
|
83842
|
-
var tools57 = { request:
|
|
83860
|
+
var tools57 = { request: requestTool40 };
|
|
83843
83861
|
var intercomOauthConnector = new ConnectorPlugin({
|
|
83844
83862
|
slug: "intercom",
|
|
83845
83863
|
authType: AUTH_TYPES.OAUTH,
|
|
@@ -84061,7 +84079,7 @@ var parameters58 = {
|
|
|
84061
84079
|
|
|
84062
84080
|
// ../connectors/src/connectors/mixpanel/tools/request.ts
|
|
84063
84081
|
import { z as z70 } from "zod";
|
|
84064
|
-
var
|
|
84082
|
+
var REQUEST_TIMEOUT_MS53 = 6e4;
|
|
84065
84083
|
var inputSchema68 = z70.object({
|
|
84066
84084
|
toolUseIntent: z70.string().optional().describe(
|
|
84067
84085
|
"Brief description of what you intend to accomplish with this tool call"
|
|
@@ -84091,7 +84109,7 @@ var outputSchema68 = z70.discriminatedUnion("success", [
|
|
|
84091
84109
|
error: z70.string()
|
|
84092
84110
|
})
|
|
84093
84111
|
]);
|
|
84094
|
-
var
|
|
84112
|
+
var requestTool41 = new ConnectorTool({
|
|
84095
84113
|
name: "request",
|
|
84096
84114
|
description: `Send authenticated requests to the Mixpanel REST API.
|
|
84097
84115
|
Authentication is handled automatically using Basic auth (Service Account username + secret).
|
|
@@ -84134,7 +84152,7 @@ Rate limit: 60 queries/hour, 5 concurrent queries for Query API.`,
|
|
|
84134
84152
|
finalUrl = urlObj.toString();
|
|
84135
84153
|
}
|
|
84136
84154
|
const controller = new AbortController();
|
|
84137
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
84155
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS53);
|
|
84138
84156
|
try {
|
|
84139
84157
|
const headers = {
|
|
84140
84158
|
Authorization: `Basic ${authToken}`,
|
|
@@ -84185,7 +84203,7 @@ Rate limit: 60 queries/hour, 5 concurrent queries for Query API.`,
|
|
|
84185
84203
|
});
|
|
84186
84204
|
|
|
84187
84205
|
// ../connectors/src/connectors/mixpanel/index.ts
|
|
84188
|
-
var tools58 = { request:
|
|
84206
|
+
var tools58 = { request: requestTool41 };
|
|
84189
84207
|
var mixpanelConnector = new ConnectorPlugin({
|
|
84190
84208
|
slug: "mixpanel",
|
|
84191
84209
|
authType: null,
|
|
@@ -84369,7 +84387,7 @@ var parameters59 = {
|
|
|
84369
84387
|
|
|
84370
84388
|
// ../connectors/src/connectors/posthog/tools/request.ts
|
|
84371
84389
|
import { z as z71 } from "zod";
|
|
84372
|
-
var
|
|
84390
|
+
var REQUEST_TIMEOUT_MS54 = 6e4;
|
|
84373
84391
|
var inputSchema69 = z71.object({
|
|
84374
84392
|
toolUseIntent: z71.string().optional().describe(
|
|
84375
84393
|
"Brief description of what you intend to accomplish with this tool call"
|
|
@@ -84394,7 +84412,7 @@ var outputSchema69 = z71.discriminatedUnion("success", [
|
|
|
84394
84412
|
error: z71.string()
|
|
84395
84413
|
})
|
|
84396
84414
|
]);
|
|
84397
|
-
var
|
|
84415
|
+
var requestTool42 = new ConnectorTool({
|
|
84398
84416
|
name: "request",
|
|
84399
84417
|
description: `Send authenticated requests to the PostHog REST API.
|
|
84400
84418
|
Authentication is handled automatically using a Bearer token (Personal API Key).
|
|
@@ -84430,7 +84448,7 @@ Rate limit: 240/minute, 1200/hour for analytics endpoints.`,
|
|
|
84430
84448
|
const host = parameters59.host.tryGetValue(connection2) ?? "https://us.posthog.com";
|
|
84431
84449
|
const url = `${host.replace(/\/$/, "")}${path5}`;
|
|
84432
84450
|
const controller = new AbortController();
|
|
84433
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
84451
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS54);
|
|
84434
84452
|
try {
|
|
84435
84453
|
const headers = {
|
|
84436
84454
|
Authorization: `Bearer ${apiKey}`,
|
|
@@ -84460,7 +84478,7 @@ Rate limit: 240/minute, 1200/hour for analytics endpoints.`,
|
|
|
84460
84478
|
});
|
|
84461
84479
|
|
|
84462
84480
|
// ../connectors/src/connectors/posthog/index.ts
|
|
84463
|
-
var tools59 = { request:
|
|
84481
|
+
var tools59 = { request: requestTool42 };
|
|
84464
84482
|
var posthogConnector = new ConnectorPlugin({
|
|
84465
84483
|
slug: "posthog",
|
|
84466
84484
|
authType: null,
|
|
@@ -84639,6 +84657,7 @@ var plugins = {
|
|
|
84639
84657
|
googleSheetsOauth: googleSheetsOauthConnector,
|
|
84640
84658
|
hubspotOauth: hubspotOauthConnector,
|
|
84641
84659
|
stripeOauth: stripeOauthConnector,
|
|
84660
|
+
stripeApiKey: stripeApiKeyConnector,
|
|
84642
84661
|
airtable: airtableConnector,
|
|
84643
84662
|
airtableOauth: airtableOauthConnector,
|
|
84644
84663
|
squadbaseDb: squadbaseDbConnector,
|
|
@@ -84659,7 +84678,6 @@ var plugins = {
|
|
|
84659
84678
|
jira: jiraConnector,
|
|
84660
84679
|
linear: linearConnector,
|
|
84661
84680
|
asana: asanaConnector,
|
|
84662
|
-
trino: trinoConnector,
|
|
84663
84681
|
clickhouse: clickhouseConnector,
|
|
84664
84682
|
mongodb: mongodbConnector,
|
|
84665
84683
|
notion: notionConnector,
|