@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/cli/index.js
CHANGED
|
@@ -87675,7 +87675,7 @@ var tools17 = { request: requestTool8 };
|
|
|
87675
87675
|
var hubspotOauthConnector = new ConnectorPlugin({
|
|
87676
87676
|
slug: "hubspot",
|
|
87677
87677
|
authType: AUTH_TYPES.OAUTH,
|
|
87678
|
-
name: "HubSpot
|
|
87678
|
+
name: "HubSpot",
|
|
87679
87679
|
description: "Connect to HubSpot CRM for contacts, deals, companies, and marketing data using OAuth.",
|
|
87680
87680
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/5UcSkKkzhUMA4RsM45ynuo/43b967e36915ca0fc5d277684b204320/hubspot.svg",
|
|
87681
87681
|
parameters: parameters17,
|
|
@@ -88108,11 +88108,303 @@ const data = await res.json();
|
|
|
88108
88108
|
}
|
|
88109
88109
|
});
|
|
88110
88110
|
|
|
88111
|
-
// ../connectors/src/connectors/
|
|
88111
|
+
// ../connectors/src/connectors/stripe-api-key/tools/request.ts
|
|
88112
88112
|
import { z as z27 } from "zod";
|
|
88113
88113
|
|
|
88114
|
-
// ../connectors/src/connectors/
|
|
88114
|
+
// ../connectors/src/connectors/stripe-api-key/parameters.ts
|
|
88115
88115
|
var parameters19 = {
|
|
88116
|
+
apiKey: new ParameterDefinition({
|
|
88117
|
+
slug: "api-key",
|
|
88118
|
+
name: "Stripe API Key",
|
|
88119
|
+
description: "Your Stripe Secret API Key (sk_live_... / sk_test_...) or Restricted API Key (rk_live_... / rk_test_...).",
|
|
88120
|
+
envVarBaseKey: "STRIPE_API_KEY",
|
|
88121
|
+
type: "text",
|
|
88122
|
+
secret: true,
|
|
88123
|
+
required: true
|
|
88124
|
+
})
|
|
88125
|
+
};
|
|
88126
|
+
|
|
88127
|
+
// ../connectors/src/connectors/stripe-api-key/tools/request.ts
|
|
88128
|
+
var BASE_URL12 = "https://api.stripe.com";
|
|
88129
|
+
var REQUEST_TIMEOUT_MS17 = 6e4;
|
|
88130
|
+
var inputSchema27 = z27.object({
|
|
88131
|
+
toolUseIntent: z27.string().optional().describe(
|
|
88132
|
+
"Brief description of what you intend to accomplish with this tool call"
|
|
88133
|
+
),
|
|
88134
|
+
connectionId: z27.string().describe("ID of the Stripe API Key connection to use"),
|
|
88135
|
+
method: z27.enum(["GET", "POST", "DELETE"]).describe(
|
|
88136
|
+
"HTTP method. GET for reading resources, POST for creating or updating, DELETE for removing."
|
|
88137
|
+
),
|
|
88138
|
+
path: z27.string().describe(
|
|
88139
|
+
"API path appended to https://api.stripe.com (e.g., '/v1/charges', '/v1/customers', '/v1/invoices')"
|
|
88140
|
+
),
|
|
88141
|
+
queryParams: z27.record(z27.string(), z27.string()).optional().describe("Query parameters to append to the URL"),
|
|
88142
|
+
body: z27.record(z27.string(), z27.unknown()).optional().describe(
|
|
88143
|
+
"Request body for POST requests. Stripe uses form-encoded bodies \u2014 pass a flat key-value object and it will be encoded automatically."
|
|
88144
|
+
)
|
|
88145
|
+
});
|
|
88146
|
+
var outputSchema27 = z27.discriminatedUnion("success", [
|
|
88147
|
+
z27.object({
|
|
88148
|
+
success: z27.literal(true),
|
|
88149
|
+
status: z27.number(),
|
|
88150
|
+
data: z27.record(z27.string(), z27.unknown())
|
|
88151
|
+
}),
|
|
88152
|
+
z27.object({
|
|
88153
|
+
success: z27.literal(false),
|
|
88154
|
+
error: z27.string()
|
|
88155
|
+
})
|
|
88156
|
+
]);
|
|
88157
|
+
var requestTool10 = new ConnectorTool({
|
|
88158
|
+
name: "request",
|
|
88159
|
+
description: `Send authenticated requests to the Stripe API.
|
|
88160
|
+
Authentication is handled automatically using the configured API Key (Bearer token).
|
|
88161
|
+
Use this tool for all Stripe API interactions: querying charges, customers, invoices, subscriptions, products, prices, payment intents, balances, and more.`,
|
|
88162
|
+
inputSchema: inputSchema27,
|
|
88163
|
+
outputSchema: outputSchema27,
|
|
88164
|
+
async execute({ connectionId, method, path: path5, queryParams, body }, connections) {
|
|
88165
|
+
const connection = connections.find((c6) => c6.id === connectionId);
|
|
88166
|
+
if (!connection) {
|
|
88167
|
+
return {
|
|
88168
|
+
success: false,
|
|
88169
|
+
error: `Connection ${connectionId} not found`
|
|
88170
|
+
};
|
|
88171
|
+
}
|
|
88172
|
+
console.log(
|
|
88173
|
+
`[connector-request] stripe-api-key/${connection.name}: ${method} ${path5}`
|
|
88174
|
+
);
|
|
88175
|
+
try {
|
|
88176
|
+
const apiKey = parameters19.apiKey.getValue(connection);
|
|
88177
|
+
let url = `${BASE_URL12}${path5.startsWith("/") ? "" : "/"}${path5}`;
|
|
88178
|
+
if (queryParams) {
|
|
88179
|
+
const searchParams = new URLSearchParams(queryParams);
|
|
88180
|
+
url += `?${searchParams.toString()}`;
|
|
88181
|
+
}
|
|
88182
|
+
const controller = new AbortController();
|
|
88183
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS17);
|
|
88184
|
+
try {
|
|
88185
|
+
const headers = {
|
|
88186
|
+
Authorization: `Bearer ${apiKey}`
|
|
88187
|
+
};
|
|
88188
|
+
let requestBody;
|
|
88189
|
+
if (body) {
|
|
88190
|
+
headers["Content-Type"] = "application/x-www-form-urlencoded";
|
|
88191
|
+
requestBody = new URLSearchParams(
|
|
88192
|
+
Object.entries(body).map(([k6, v7]) => [k6, String(v7)])
|
|
88193
|
+
).toString();
|
|
88194
|
+
}
|
|
88195
|
+
const response = await fetch(url, {
|
|
88196
|
+
method,
|
|
88197
|
+
headers,
|
|
88198
|
+
body: requestBody,
|
|
88199
|
+
signal: controller.signal
|
|
88200
|
+
});
|
|
88201
|
+
const data = await response.json();
|
|
88202
|
+
if (!response.ok) {
|
|
88203
|
+
const errorObj = data?.error;
|
|
88204
|
+
const errorMessage = typeof errorObj === "object" && errorObj !== null && "message" in errorObj ? String(errorObj.message) : typeof data?.message === "string" ? data.message : `HTTP ${response.status} ${response.statusText}`;
|
|
88205
|
+
return { success: false, error: errorMessage };
|
|
88206
|
+
}
|
|
88207
|
+
return { success: true, status: response.status, data };
|
|
88208
|
+
} finally {
|
|
88209
|
+
clearTimeout(timeout);
|
|
88210
|
+
}
|
|
88211
|
+
} catch (err) {
|
|
88212
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
88213
|
+
return { success: false, error: msg };
|
|
88214
|
+
}
|
|
88215
|
+
}
|
|
88216
|
+
});
|
|
88217
|
+
|
|
88218
|
+
// ../connectors/src/connectors/stripe-api-key/setup.ts
|
|
88219
|
+
var requestToolName4 = `stripe-api-key_${requestTool10.name}`;
|
|
88220
|
+
var stripeApiKeyOnboarding = new ConnectorOnboarding({
|
|
88221
|
+
connectionSetupInstructions: {
|
|
88222
|
+
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
|
|
88223
|
+
|
|
88224
|
+
1. \`${requestToolName4}\` \u3092\u547C\u3073\u51FA\u3057\u3066\u3001\u30A2\u30AB\u30A6\u30F3\u30C8\u6B8B\u9AD8\u3092\u53D6\u5F97\u3059\u308B:
|
|
88225
|
+
- \`method\`: \`"GET"\`
|
|
88226
|
+
- \`path\`: \`"/v1/balance"\`
|
|
88227
|
+
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
|
|
88228
|
+
3. \`updateConnectionContext\` \u3092\u547C\u3073\u51FA\u3059:
|
|
88229
|
+
- \`note\`: \u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u5185\u5BB9\u306E\u7C21\u5358\u306A\u8AAC\u660E
|
|
88230
|
+
|
|
88231
|
+
#### \u5236\u7D04
|
|
88232
|
+
- **\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
|
|
88233
|
+
- \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`,
|
|
88234
|
+
en: `Follow these steps to set up the Stripe connection.
|
|
88235
|
+
|
|
88236
|
+
1. Call \`${requestToolName4}\` to fetch account balance:
|
|
88237
|
+
- \`method\`: \`"GET"\`
|
|
88238
|
+
- \`path\`: \`"/v1/balance"\`
|
|
88239
|
+
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)
|
|
88240
|
+
3. Call \`updateConnectionContext\`:
|
|
88241
|
+
- \`note\`: Brief description of the setup
|
|
88242
|
+
|
|
88243
|
+
#### Constraints
|
|
88244
|
+
- **Do NOT read payment data during setup**. Only the metadata request specified in the steps above is allowed
|
|
88245
|
+
- Write only 1 sentence between tool calls, then immediately call the next tool. Skip unnecessary explanations and proceed efficiently`
|
|
88246
|
+
},
|
|
88247
|
+
dataOverviewInstructions: {
|
|
88248
|
+
en: `1. Call ${requestToolName4} with GET /v1/customers?limit=5 to explore customers structure
|
|
88249
|
+
2. Call ${requestToolName4} with GET /v1/charges?limit=5 to explore charges structure
|
|
88250
|
+
3. Explore other endpoints (invoices, subscriptions, products) as needed`,
|
|
88251
|
+
ja: `1. ${requestToolName4} \u3067 GET /v1/customers?limit=5 \u3092\u547C\u3073\u51FA\u3057\u3001\u9867\u5BA2\u306E\u69CB\u9020\u3092\u78BA\u8A8D
|
|
88252
|
+
2. ${requestToolName4} \u3067 GET /v1/charges?limit=5 \u3092\u547C\u3073\u51FA\u3057\u3001\u8AB2\u91D1\u306E\u69CB\u9020\u3092\u78BA\u8A8D
|
|
88253
|
+
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`
|
|
88254
|
+
}
|
|
88255
|
+
});
|
|
88256
|
+
|
|
88257
|
+
// ../connectors/src/connectors/stripe-api-key/index.ts
|
|
88258
|
+
var tools19 = { request: requestTool10 };
|
|
88259
|
+
var stripeApiKeyConnector = new ConnectorPlugin({
|
|
88260
|
+
slug: "stripe",
|
|
88261
|
+
authType: AUTH_TYPES.API_KEY,
|
|
88262
|
+
name: "Stripe (API Key)",
|
|
88263
|
+
description: "Connect to Stripe for payment, customer, and subscription data using a Secret API Key or Restricted API Key.",
|
|
88264
|
+
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/2QNK0u2doqp41uL0POS4Ks/7a92367e2388ec77c7f4ada143606f9a/stripe.jpeg",
|
|
88265
|
+
parameters: parameters19,
|
|
88266
|
+
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
88267
|
+
onboarding: stripeApiKeyOnboarding,
|
|
88268
|
+
systemPrompt: {
|
|
88269
|
+
en: `### Tools
|
|
88270
|
+
|
|
88271
|
+
- \`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\`.
|
|
88272
|
+
|
|
88273
|
+
### Stripe API Reference
|
|
88274
|
+
|
|
88275
|
+
#### Available Endpoints
|
|
88276
|
+
- GET \`/v1/charges\` \u2014 List charges
|
|
88277
|
+
- GET \`/v1/charges/{chargeId}\` \u2014 Get a charge
|
|
88278
|
+
- GET \`/v1/customers\` \u2014 List customers
|
|
88279
|
+
- GET \`/v1/customers/{customerId}\` \u2014 Get a customer
|
|
88280
|
+
- GET \`/v1/invoices\` \u2014 List invoices
|
|
88281
|
+
- GET \`/v1/invoices/{invoiceId}\` \u2014 Get an invoice
|
|
88282
|
+
- GET \`/v1/subscriptions\` \u2014 List subscriptions
|
|
88283
|
+
- GET \`/v1/subscriptions/{subscriptionId}\` \u2014 Get a subscription
|
|
88284
|
+
- GET \`/v1/products\` \u2014 List products
|
|
88285
|
+
- GET \`/v1/prices\` \u2014 List prices
|
|
88286
|
+
- GET \`/v1/payment_intents\` \u2014 List payment intents
|
|
88287
|
+
- GET \`/v1/balance\` \u2014 Get account balance
|
|
88288
|
+
- GET \`/v1/balance_transactions\` \u2014 List balance transactions
|
|
88289
|
+
|
|
88290
|
+
### Query Parameters
|
|
88291
|
+
- \`limit\` \u2014 Number of results per page (max 100, default 10)
|
|
88292
|
+
- \`starting_after\` \u2014 Pagination cursor (object ID)
|
|
88293
|
+
- \`ending_before\` \u2014 Reverse pagination cursor
|
|
88294
|
+
- \`created[gte]\`, \`created[lte]\` \u2014 Filter by creation date (Unix timestamp)
|
|
88295
|
+
- \`status\` \u2014 Filter by status (varies by resource)
|
|
88296
|
+
|
|
88297
|
+
### Tips
|
|
88298
|
+
- Stripe uses cursor-based pagination with \`starting_after\` and \`has_more\`
|
|
88299
|
+
- All timestamps are Unix timestamps in seconds
|
|
88300
|
+
- Use \`expand[]\` query parameter to include related objects inline
|
|
88301
|
+
- List responses have \`data\` array and \`has_more\` boolean
|
|
88302
|
+
- POST request bodies are form-encoded (pass a flat key-value object)
|
|
88303
|
+
- If using a Restricted API Key, some endpoints may return 403 depending on the key's permissions
|
|
88304
|
+
|
|
88305
|
+
### Business Logic
|
|
88306
|
+
|
|
88307
|
+
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.
|
|
88308
|
+
|
|
88309
|
+
#### Example
|
|
88310
|
+
|
|
88311
|
+
\`\`\`ts
|
|
88312
|
+
import { connection } from "@squadbase/vite-server/connectors/stripe-api-key";
|
|
88313
|
+
|
|
88314
|
+
const stripe = connection("<connectionId>");
|
|
88315
|
+
|
|
88316
|
+
// Authenticated fetch (returns standard Response)
|
|
88317
|
+
const res = await stripe.request("/v1/customers?limit=10");
|
|
88318
|
+
const data = await res.json();
|
|
88319
|
+
\`\`\``,
|
|
88320
|
+
ja: `### \u30C4\u30FC\u30EB
|
|
88321
|
+
|
|
88322
|
+
- \`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
|
|
88323
|
+
|
|
88324
|
+
### Stripe API \u30EA\u30D5\u30A1\u30EC\u30F3\u30B9
|
|
88325
|
+
|
|
88326
|
+
#### \u5229\u7528\u53EF\u80FD\u306A\u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8
|
|
88327
|
+
- GET \`/v1/charges\` \u2014 \u8ACB\u6C42\u4E00\u89A7\u3092\u53D6\u5F97
|
|
88328
|
+
- GET \`/v1/charges/{chargeId}\` \u2014 \u8ACB\u6C42\u3092\u53D6\u5F97
|
|
88329
|
+
- GET \`/v1/customers\` \u2014 \u9867\u5BA2\u4E00\u89A7\u3092\u53D6\u5F97
|
|
88330
|
+
- GET \`/v1/customers/{customerId}\` \u2014 \u9867\u5BA2\u3092\u53D6\u5F97
|
|
88331
|
+
- GET \`/v1/invoices\` \u2014 \u8ACB\u6C42\u66F8\u4E00\u89A7\u3092\u53D6\u5F97
|
|
88332
|
+
- GET \`/v1/invoices/{invoiceId}\` \u2014 \u8ACB\u6C42\u66F8\u3092\u53D6\u5F97
|
|
88333
|
+
- GET \`/v1/subscriptions\` \u2014 \u30B5\u30D6\u30B9\u30AF\u30EA\u30D7\u30B7\u30E7\u30F3\u4E00\u89A7\u3092\u53D6\u5F97
|
|
88334
|
+
- GET \`/v1/subscriptions/{subscriptionId}\` \u2014 \u30B5\u30D6\u30B9\u30AF\u30EA\u30D7\u30B7\u30E7\u30F3\u3092\u53D6\u5F97
|
|
88335
|
+
- GET \`/v1/products\` \u2014 \u5546\u54C1\u4E00\u89A7\u3092\u53D6\u5F97
|
|
88336
|
+
- GET \`/v1/prices\` \u2014 \u4FA1\u683C\u4E00\u89A7\u3092\u53D6\u5F97
|
|
88337
|
+
- GET \`/v1/payment_intents\` \u2014 \u652F\u6255\u3044\u30A4\u30F3\u30C6\u30F3\u30C8\u4E00\u89A7\u3092\u53D6\u5F97
|
|
88338
|
+
- GET \`/v1/balance\` \u2014 \u30A2\u30AB\u30A6\u30F3\u30C8\u6B8B\u9AD8\u3092\u53D6\u5F97
|
|
88339
|
+
- GET \`/v1/balance_transactions\` \u2014 \u6B8B\u9AD8\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3\u4E00\u89A7\u3092\u53D6\u5F97
|
|
88340
|
+
|
|
88341
|
+
### \u30AF\u30A8\u30EA\u30D1\u30E9\u30E1\u30FC\u30BF
|
|
88342
|
+
- \`limit\` \u2014 \u30DA\u30FC\u30B8\u3042\u305F\u308A\u306E\u7D50\u679C\u6570\uFF08\u6700\u5927100\u3001\u30C7\u30D5\u30A9\u30EB\u30C810\uFF09
|
|
88343
|
+
- \`starting_after\` \u2014 \u30DA\u30FC\u30B8\u30CD\u30FC\u30B7\u30E7\u30F3\u30AB\u30FC\u30BD\u30EB\uFF08\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8ID\uFF09
|
|
88344
|
+
- \`ending_before\` \u2014 \u9006\u65B9\u5411\u30DA\u30FC\u30B8\u30CD\u30FC\u30B7\u30E7\u30F3\u30AB\u30FC\u30BD\u30EB
|
|
88345
|
+
- \`created[gte]\`, \`created[lte]\` \u2014 \u4F5C\u6210\u65E5\u3067\u30D5\u30A3\u30EB\u30BF\uFF08Unix\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\uFF09
|
|
88346
|
+
- \`status\` \u2014 \u30B9\u30C6\u30FC\u30BF\u30B9\u3067\u30D5\u30A3\u30EB\u30BF\uFF08\u30EA\u30BD\u30FC\u30B9\u306B\u3088\u308A\u7570\u306A\u308B\uFF09
|
|
88347
|
+
|
|
88348
|
+
### \u30D2\u30F3\u30C8
|
|
88349
|
+
- 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
|
|
88350
|
+
- \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
|
|
88351
|
+
- \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
|
|
88352
|
+
- \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
|
|
88353
|
+
- 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
|
|
88354
|
+
- 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
|
|
88355
|
+
|
|
88356
|
+
### Business Logic
|
|
88357
|
+
|
|
88358
|
+
\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
|
|
88359
|
+
|
|
88360
|
+
#### Example
|
|
88361
|
+
|
|
88362
|
+
\`\`\`ts
|
|
88363
|
+
import { connection } from "@squadbase/vite-server/connectors/stripe-api-key";
|
|
88364
|
+
|
|
88365
|
+
const stripe = connection("<connectionId>");
|
|
88366
|
+
|
|
88367
|
+
// Authenticated fetch (returns standard Response)
|
|
88368
|
+
const res = await stripe.request("/v1/customers?limit=10");
|
|
88369
|
+
const data = await res.json();
|
|
88370
|
+
\`\`\``
|
|
88371
|
+
},
|
|
88372
|
+
tools: tools19,
|
|
88373
|
+
async checkConnection(params) {
|
|
88374
|
+
try {
|
|
88375
|
+
const apiKey = params["api-key"];
|
|
88376
|
+
if (!apiKey) {
|
|
88377
|
+
return {
|
|
88378
|
+
success: false,
|
|
88379
|
+
error: "API Key is not configured"
|
|
88380
|
+
};
|
|
88381
|
+
}
|
|
88382
|
+
const res = await fetch("https://api.stripe.com/v1/balance", {
|
|
88383
|
+
method: "GET",
|
|
88384
|
+
headers: { Authorization: `Bearer ${apiKey}` }
|
|
88385
|
+
});
|
|
88386
|
+
if (!res.ok) {
|
|
88387
|
+
const errorText = await res.text().catch(() => res.statusText);
|
|
88388
|
+
return {
|
|
88389
|
+
success: false,
|
|
88390
|
+
error: `Stripe API failed: HTTP ${res.status} ${errorText}`
|
|
88391
|
+
};
|
|
88392
|
+
}
|
|
88393
|
+
return { success: true };
|
|
88394
|
+
} catch (error2) {
|
|
88395
|
+
return {
|
|
88396
|
+
success: false,
|
|
88397
|
+
error: error2 instanceof Error ? error2.message : String(error2)
|
|
88398
|
+
};
|
|
88399
|
+
}
|
|
88400
|
+
}
|
|
88401
|
+
});
|
|
88402
|
+
|
|
88403
|
+
// ../connectors/src/connectors/airtable-oauth/tools/request.ts
|
|
88404
|
+
import { z as z28 } from "zod";
|
|
88405
|
+
|
|
88406
|
+
// ../connectors/src/connectors/airtable-oauth/parameters.ts
|
|
88407
|
+
var parameters20 = {
|
|
88116
88408
|
baseId: new ParameterDefinition({
|
|
88117
88409
|
slug: "base-id",
|
|
88118
88410
|
name: "Airtable Base ID",
|
|
@@ -88125,8 +88417,8 @@ var parameters19 = {
|
|
|
88125
88417
|
};
|
|
88126
88418
|
|
|
88127
88419
|
// ../connectors/src/connectors/airtable-oauth/tools/request.ts
|
|
88128
|
-
var
|
|
88129
|
-
var
|
|
88420
|
+
var BASE_URL13 = "https://api.airtable.com/v0";
|
|
88421
|
+
var REQUEST_TIMEOUT_MS18 = 6e4;
|
|
88130
88422
|
var cachedToken12 = null;
|
|
88131
88423
|
async function getProxyToken12(config) {
|
|
88132
88424
|
if (cachedToken12 && cachedToken12.expiresAt > Date.now() + 6e4) {
|
|
@@ -88158,36 +88450,36 @@ async function getProxyToken12(config) {
|
|
|
88158
88450
|
};
|
|
88159
88451
|
return data.token;
|
|
88160
88452
|
}
|
|
88161
|
-
var
|
|
88162
|
-
toolUseIntent:
|
|
88453
|
+
var inputSchema28 = z28.object({
|
|
88454
|
+
toolUseIntent: z28.string().optional().describe(
|
|
88163
88455
|
"Brief description of what you intend to accomplish with this tool call"
|
|
88164
88456
|
),
|
|
88165
|
-
connectionId:
|
|
88166
|
-
method:
|
|
88167
|
-
path:
|
|
88457
|
+
connectionId: z28.string().describe("ID of the Airtable OAuth connection to use"),
|
|
88458
|
+
method: z28.enum(["GET", "POST", "PATCH", "DELETE"]).describe("HTTP method"),
|
|
88459
|
+
path: z28.string().describe(
|
|
88168
88460
|
"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."
|
|
88169
88461
|
),
|
|
88170
|
-
queryParams:
|
|
88171
|
-
body:
|
|
88462
|
+
queryParams: z28.record(z28.string(), z28.string()).optional().describe("Query parameters to append to the URL"),
|
|
88463
|
+
body: z28.record(z28.string(), z28.unknown()).optional().describe("Request body (JSON) for POST/PATCH requests")
|
|
88172
88464
|
});
|
|
88173
|
-
var
|
|
88174
|
-
|
|
88175
|
-
success:
|
|
88176
|
-
status:
|
|
88177
|
-
data:
|
|
88465
|
+
var outputSchema28 = z28.discriminatedUnion("success", [
|
|
88466
|
+
z28.object({
|
|
88467
|
+
success: z28.literal(true),
|
|
88468
|
+
status: z28.number(),
|
|
88469
|
+
data: z28.record(z28.string(), z28.unknown())
|
|
88178
88470
|
}),
|
|
88179
|
-
|
|
88180
|
-
success:
|
|
88181
|
-
error:
|
|
88471
|
+
z28.object({
|
|
88472
|
+
success: z28.literal(false),
|
|
88473
|
+
error: z28.string()
|
|
88182
88474
|
})
|
|
88183
88475
|
]);
|
|
88184
|
-
var
|
|
88476
|
+
var requestTool11 = new ConnectorTool({
|
|
88185
88477
|
name: "request",
|
|
88186
88478
|
description: `Send authenticated requests to the Airtable API.
|
|
88187
88479
|
Authentication is handled automatically via OAuth proxy.
|
|
88188
88480
|
{baseId} in the path is automatically replaced with the connection's default base ID if configured.`,
|
|
88189
|
-
inputSchema:
|
|
88190
|
-
outputSchema:
|
|
88481
|
+
inputSchema: inputSchema28,
|
|
88482
|
+
outputSchema: outputSchema28,
|
|
88191
88483
|
async execute({ connectionId, method, path: path5, queryParams, body }, connections, config) {
|
|
88192
88484
|
const connection = connections.find((c6) => c6.id === connectionId);
|
|
88193
88485
|
if (!connection) {
|
|
@@ -88200,9 +88492,9 @@ Authentication is handled automatically via OAuth proxy.
|
|
|
88200
88492
|
`[connector-request] airtable-oauth/${connection.name}: ${method} ${path5}`
|
|
88201
88493
|
);
|
|
88202
88494
|
try {
|
|
88203
|
-
const baseId =
|
|
88495
|
+
const baseId = parameters20.baseId.tryGetValue(connection);
|
|
88204
88496
|
const resolvedPath = baseId ? path5.replace(/\{baseId\}/g, baseId) : path5;
|
|
88205
|
-
let url = `${
|
|
88497
|
+
let url = `${BASE_URL13}${resolvedPath.startsWith("/") ? "" : "/"}${resolvedPath}`;
|
|
88206
88498
|
if (queryParams) {
|
|
88207
88499
|
const searchParams = new URLSearchParams(queryParams);
|
|
88208
88500
|
url += `?${searchParams.toString()}`;
|
|
@@ -88210,7 +88502,7 @@ Authentication is handled automatically via OAuth proxy.
|
|
|
88210
88502
|
const token = await getProxyToken12(config.oauthProxy);
|
|
88211
88503
|
const proxyUrl = `https://${config.oauthProxy.sandboxId}.${config.oauthProxy.previewBaseDomain}/_sqcore/connections/${connectionId}/request`;
|
|
88212
88504
|
const controller = new AbortController();
|
|
88213
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
88505
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS18);
|
|
88214
88506
|
try {
|
|
88215
88507
|
const response = await fetch(proxyUrl, {
|
|
88216
88508
|
method: "POST",
|
|
@@ -88242,7 +88534,7 @@ Authentication is handled automatically via OAuth proxy.
|
|
|
88242
88534
|
});
|
|
88243
88535
|
|
|
88244
88536
|
// ../connectors/src/connectors/airtable-oauth/setup.ts
|
|
88245
|
-
var
|
|
88537
|
+
var requestToolName5 = `airtable-oauth_${requestTool11.name}`;
|
|
88246
88538
|
var airtableOauthOnboarding = new ConnectorOnboarding({
|
|
88247
88539
|
connectionSetupInstructions: {
|
|
88248
88540
|
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
|
|
@@ -88252,7 +88544,7 @@ var airtableOauthOnboarding = new ConnectorOnboarding({
|
|
|
88252
88544
|
3. \`updateConnectionParameters\` \u3092\u547C\u3073\u51FA\u3059:
|
|
88253
88545
|
- \`parameterSlug\`: \`"base-id"\`
|
|
88254
88546
|
- \`value\`: \u62BD\u51FA\u3057\u305F\u30D9\u30FC\u30B9ID
|
|
88255
|
-
4. \`${
|
|
88547
|
+
4. \`${requestToolName5}\` \u3092\u547C\u3073\u51FA\u3057\u3066\u3001\u30D9\u30FC\u30B9\u306E\u30C6\u30FC\u30D6\u30EB\u4E00\u89A7\u3092\u53D6\u5F97\u3059\u308B:
|
|
88256
88548
|
- \`method\`: \`"GET"\`
|
|
88257
88549
|
- \`path\`: \`"/meta/bases/{baseId}/tables"\`
|
|
88258
88550
|
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
|
|
@@ -88271,7 +88563,7 @@ var airtableOauthOnboarding = new ConnectorOnboarding({
|
|
|
88271
88563
|
3. Call \`updateConnectionParameters\`:
|
|
88272
88564
|
- \`parameterSlug\`: \`"base-id"\`
|
|
88273
88565
|
- \`value\`: The extracted base ID
|
|
88274
|
-
4. Call \`${
|
|
88566
|
+
4. Call \`${requestToolName5}\` to fetch the base's table list:
|
|
88275
88567
|
- \`method\`: \`"GET"\`
|
|
88276
88568
|
- \`path\`: \`"/meta/bases/{baseId}/tables"\`
|
|
88277
88569
|
5. If an error is returned, ask the user to check the base sharing settings
|
|
@@ -88293,14 +88585,14 @@ var airtableOauthOnboarding = new ConnectorOnboarding({
|
|
|
88293
88585
|
});
|
|
88294
88586
|
|
|
88295
88587
|
// ../connectors/src/connectors/airtable-oauth/index.ts
|
|
88296
|
-
var
|
|
88588
|
+
var tools20 = { request: requestTool11 };
|
|
88297
88589
|
var airtableOauthConnector = new ConnectorPlugin({
|
|
88298
88590
|
slug: "airtable",
|
|
88299
88591
|
authType: AUTH_TYPES.OAUTH,
|
|
88300
88592
|
name: "Airtable (OAuth)",
|
|
88301
88593
|
description: "Connect to Airtable for spreadsheet-database hybrid data management using OAuth.",
|
|
88302
88594
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/19JUphfOZjyjTK6Zg4NGCf/8c56227b088cada52d3a2d9385a3be97/airtable.svg",
|
|
88303
|
-
parameters:
|
|
88595
|
+
parameters: parameters20,
|
|
88304
88596
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
88305
88597
|
onboarding: airtableOauthOnboarding,
|
|
88306
88598
|
proxyPolicy: {
|
|
@@ -88409,10 +88701,10 @@ const records = await airtable.request("/{baseId}/Tasks?maxRecords=100");
|
|
|
88409
88701
|
const recordsData = await records.json();
|
|
88410
88702
|
\`\`\``
|
|
88411
88703
|
},
|
|
88412
|
-
tools:
|
|
88704
|
+
tools: tools20,
|
|
88413
88705
|
async checkConnection(params, config) {
|
|
88414
88706
|
const { proxyFetch } = config;
|
|
88415
|
-
const baseId = params[
|
|
88707
|
+
const baseId = params[parameters20.baseId.slug];
|
|
88416
88708
|
if (!baseId) {
|
|
88417
88709
|
return { success: true };
|
|
88418
88710
|
}
|
|
@@ -88451,7 +88743,7 @@ var kintoneOnboarding = new ConnectorOnboarding({
|
|
|
88451
88743
|
});
|
|
88452
88744
|
|
|
88453
88745
|
// ../connectors/src/connectors/kintone/parameters.ts
|
|
88454
|
-
var
|
|
88746
|
+
var parameters21 = {
|
|
88455
88747
|
baseUrl: new ParameterDefinition({
|
|
88456
88748
|
slug: "base-url",
|
|
88457
88749
|
name: "kintone Base URL",
|
|
@@ -88482,32 +88774,32 @@ var parameters20 = {
|
|
|
88482
88774
|
};
|
|
88483
88775
|
|
|
88484
88776
|
// ../connectors/src/connectors/kintone/tools/request.ts
|
|
88485
|
-
import { z as
|
|
88486
|
-
var
|
|
88487
|
-
var
|
|
88488
|
-
toolUseIntent:
|
|
88489
|
-
connectionId:
|
|
88490
|
-
method:
|
|
88491
|
-
path:
|
|
88492
|
-
body:
|
|
88777
|
+
import { z as z29 } from "zod";
|
|
88778
|
+
var REQUEST_TIMEOUT_MS19 = 6e4;
|
|
88779
|
+
var inputSchema29 = z29.object({
|
|
88780
|
+
toolUseIntent: z29.string().optional().describe("Brief description of what you intend to accomplish with this tool call"),
|
|
88781
|
+
connectionId: z29.string().describe("ID of the kintone connection to use"),
|
|
88782
|
+
method: z29.enum(["GET", "POST", "PUT", "DELETE"]).describe("HTTP method"),
|
|
88783
|
+
path: z29.string().describe("API path (e.g., 'apps.json', 'records.json?app=1&query=...')"),
|
|
88784
|
+
body: z29.record(z29.string(), z29.unknown()).optional().describe("Request body (JSON)")
|
|
88493
88785
|
});
|
|
88494
|
-
var
|
|
88495
|
-
|
|
88496
|
-
success:
|
|
88497
|
-
status:
|
|
88498
|
-
data:
|
|
88786
|
+
var outputSchema29 = z29.discriminatedUnion("success", [
|
|
88787
|
+
z29.object({
|
|
88788
|
+
success: z29.literal(true),
|
|
88789
|
+
status: z29.number(),
|
|
88790
|
+
data: z29.record(z29.string(), z29.unknown())
|
|
88499
88791
|
}),
|
|
88500
|
-
|
|
88501
|
-
success:
|
|
88502
|
-
error:
|
|
88792
|
+
z29.object({
|
|
88793
|
+
success: z29.literal(false),
|
|
88794
|
+
error: z29.string()
|
|
88503
88795
|
})
|
|
88504
88796
|
]);
|
|
88505
|
-
var
|
|
88797
|
+
var requestTool12 = new ConnectorTool({
|
|
88506
88798
|
name: "request",
|
|
88507
88799
|
description: `Send authenticated requests to the kintone REST API.
|
|
88508
88800
|
Authentication is handled automatically using username and password.`,
|
|
88509
|
-
inputSchema:
|
|
88510
|
-
outputSchema:
|
|
88801
|
+
inputSchema: inputSchema29,
|
|
88802
|
+
outputSchema: outputSchema29,
|
|
88511
88803
|
async execute({ connectionId, method, path: path5, body }, connections) {
|
|
88512
88804
|
const connection = connections.find((c6) => c6.id === connectionId);
|
|
88513
88805
|
if (!connection) {
|
|
@@ -88515,13 +88807,13 @@ Authentication is handled automatically using username and password.`,
|
|
|
88515
88807
|
}
|
|
88516
88808
|
console.log(`[connector-request] kintone/${connection.name}: ${method} ${path5}`);
|
|
88517
88809
|
try {
|
|
88518
|
-
const baseUrl =
|
|
88519
|
-
const username =
|
|
88520
|
-
const password =
|
|
88810
|
+
const baseUrl = parameters21.baseUrl.getValue(connection);
|
|
88811
|
+
const username = parameters21.username.getValue(connection);
|
|
88812
|
+
const password = parameters21.password.getValue(connection);
|
|
88521
88813
|
const authToken = Buffer.from(`${username}:${password}`).toString("base64");
|
|
88522
88814
|
const url = `${baseUrl.replace(/\/+$/, "")}/k/v1/${path5}`;
|
|
88523
88815
|
const controller = new AbortController();
|
|
88524
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
88816
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS19);
|
|
88525
88817
|
try {
|
|
88526
88818
|
const headers = {
|
|
88527
88819
|
"X-Cybozu-Authorization": authToken
|
|
@@ -88554,14 +88846,14 @@ Authentication is handled automatically using username and password.`,
|
|
|
88554
88846
|
});
|
|
88555
88847
|
|
|
88556
88848
|
// ../connectors/src/connectors/kintone/index.ts
|
|
88557
|
-
var
|
|
88849
|
+
var tools21 = { request: requestTool12 };
|
|
88558
88850
|
var kintoneConnector = new ConnectorPlugin({
|
|
88559
88851
|
slug: "kintone",
|
|
88560
88852
|
authType: null,
|
|
88561
88853
|
name: "kintone (Password)",
|
|
88562
88854
|
description: "Connect to kintone for business application data retrieval and analytics.",
|
|
88563
88855
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/76nPGMJFZkMFE3UQNo2JFy/e71dc5f5d5cec1306ce0e17aafbfd9f0/kintone.png",
|
|
88564
|
-
parameters:
|
|
88856
|
+
parameters: parameters21,
|
|
88565
88857
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
88566
88858
|
onboarding: kintoneOnboarding,
|
|
88567
88859
|
systemPrompt: {
|
|
@@ -88700,7 +88992,7 @@ export default async function handler(c: Context) {
|
|
|
88700
88992
|
- \u5236\u9650: \`limit 100 offset 0\`
|
|
88701
88993
|
- \u6587\u5B57\u5217: \`like "\u90E8\u5206\u4E00\u81F4"\``
|
|
88702
88994
|
},
|
|
88703
|
-
tools:
|
|
88995
|
+
tools: tools21
|
|
88704
88996
|
});
|
|
88705
88997
|
|
|
88706
88998
|
// ../connectors/src/connectors/kintone-api-token/setup.ts
|
|
@@ -88716,7 +89008,7 @@ var kintoneApiTokenOnboarding = new ConnectorOnboarding({
|
|
|
88716
89008
|
});
|
|
88717
89009
|
|
|
88718
89010
|
// ../connectors/src/connectors/kintone-api-token/parameters.ts
|
|
88719
|
-
var
|
|
89011
|
+
var parameters22 = {
|
|
88720
89012
|
baseUrl: new ParameterDefinition({
|
|
88721
89013
|
slug: "base-url",
|
|
88722
89014
|
name: "kintone Base URL",
|
|
@@ -88738,32 +89030,32 @@ var parameters21 = {
|
|
|
88738
89030
|
};
|
|
88739
89031
|
|
|
88740
89032
|
// ../connectors/src/connectors/kintone-api-token/tools/request.ts
|
|
88741
|
-
import { z as
|
|
88742
|
-
var
|
|
88743
|
-
var
|
|
88744
|
-
toolUseIntent:
|
|
88745
|
-
connectionId:
|
|
88746
|
-
method:
|
|
88747
|
-
path:
|
|
88748
|
-
body:
|
|
89033
|
+
import { z as z30 } from "zod";
|
|
89034
|
+
var REQUEST_TIMEOUT_MS20 = 6e4;
|
|
89035
|
+
var inputSchema30 = z30.object({
|
|
89036
|
+
toolUseIntent: z30.string().optional().describe("Brief description of what you intend to accomplish with this tool call"),
|
|
89037
|
+
connectionId: z30.string().describe("ID of the kintone connection to use"),
|
|
89038
|
+
method: z30.enum(["GET", "POST", "PUT", "DELETE"]).describe("HTTP method"),
|
|
89039
|
+
path: z30.string().describe("API path (e.g., 'apps.json', 'records.json?app=1&query=...')"),
|
|
89040
|
+
body: z30.record(z30.string(), z30.unknown()).optional().describe("Request body (JSON)")
|
|
88749
89041
|
});
|
|
88750
|
-
var
|
|
88751
|
-
|
|
88752
|
-
success:
|
|
88753
|
-
status:
|
|
88754
|
-
data:
|
|
89042
|
+
var outputSchema30 = z30.discriminatedUnion("success", [
|
|
89043
|
+
z30.object({
|
|
89044
|
+
success: z30.literal(true),
|
|
89045
|
+
status: z30.number(),
|
|
89046
|
+
data: z30.record(z30.string(), z30.unknown())
|
|
88755
89047
|
}),
|
|
88756
|
-
|
|
88757
|
-
success:
|
|
88758
|
-
error:
|
|
89048
|
+
z30.object({
|
|
89049
|
+
success: z30.literal(false),
|
|
89050
|
+
error: z30.string()
|
|
88759
89051
|
})
|
|
88760
89052
|
]);
|
|
88761
|
-
var
|
|
89053
|
+
var requestTool13 = new ConnectorTool({
|
|
88762
89054
|
name: "request",
|
|
88763
89055
|
description: `Send authenticated requests to the kintone REST API.
|
|
88764
89056
|
Authentication is handled automatically using the API token.`,
|
|
88765
|
-
inputSchema:
|
|
88766
|
-
outputSchema:
|
|
89057
|
+
inputSchema: inputSchema30,
|
|
89058
|
+
outputSchema: outputSchema30,
|
|
88767
89059
|
async execute({ connectionId, method, path: path5, body }, connections) {
|
|
88768
89060
|
const connection = connections.find((c6) => c6.id === connectionId);
|
|
88769
89061
|
if (!connection) {
|
|
@@ -88771,11 +89063,11 @@ Authentication is handled automatically using the API token.`,
|
|
|
88771
89063
|
}
|
|
88772
89064
|
console.log(`[connector-request] kintone-api-token/${connection.name}: ${method} ${path5}`);
|
|
88773
89065
|
try {
|
|
88774
|
-
const baseUrl =
|
|
88775
|
-
const apiToken =
|
|
89066
|
+
const baseUrl = parameters22.baseUrl.getValue(connection);
|
|
89067
|
+
const apiToken = parameters22.apiToken.getValue(connection);
|
|
88776
89068
|
const url = `${baseUrl.replace(/\/+$/, "")}/k/v1/${path5}`;
|
|
88777
89069
|
const controller = new AbortController();
|
|
88778
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
89070
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS20);
|
|
88779
89071
|
try {
|
|
88780
89072
|
const headers = {
|
|
88781
89073
|
"X-Cybozu-API-Token": apiToken
|
|
@@ -88808,14 +89100,14 @@ Authentication is handled automatically using the API token.`,
|
|
|
88808
89100
|
});
|
|
88809
89101
|
|
|
88810
89102
|
// ../connectors/src/connectors/kintone-api-token/index.ts
|
|
88811
|
-
var
|
|
89103
|
+
var tools22 = { request: requestTool13 };
|
|
88812
89104
|
var kintoneApiTokenConnector = new ConnectorPlugin({
|
|
88813
89105
|
slug: "kintone",
|
|
88814
89106
|
authType: AUTH_TYPES.API_KEY,
|
|
88815
89107
|
name: "kintone (API Token)",
|
|
88816
89108
|
description: "Connect to kintone for business application data retrieval and analytics using API token authentication.",
|
|
88817
89109
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/76nPGMJFZkMFE3UQNo2JFy/e71dc5f5d5cec1306ce0e17aafbfd9f0/kintone.png",
|
|
88818
|
-
parameters:
|
|
89110
|
+
parameters: parameters22,
|
|
88819
89111
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
88820
89112
|
onboarding: kintoneApiTokenOnboarding,
|
|
88821
89113
|
systemPrompt: {
|
|
@@ -88914,7 +89206,7 @@ await kintone.request("/k/v1/record.json", {
|
|
|
88914
89206
|
});
|
|
88915
89207
|
\`\`\``
|
|
88916
89208
|
},
|
|
88917
|
-
tools:
|
|
89209
|
+
tools: tools22
|
|
88918
89210
|
});
|
|
88919
89211
|
|
|
88920
89212
|
// ../connectors/src/connectors/wix-store/setup.ts
|
|
@@ -88930,7 +89222,7 @@ var wixStoreOnboarding = new ConnectorOnboarding({
|
|
|
88930
89222
|
});
|
|
88931
89223
|
|
|
88932
89224
|
// ../connectors/src/connectors/wix-store/parameters.ts
|
|
88933
|
-
var
|
|
89225
|
+
var parameters23 = {
|
|
88934
89226
|
accountId: new ParameterDefinition({
|
|
88935
89227
|
slug: "account-id",
|
|
88936
89228
|
name: "Account ID",
|
|
@@ -88961,33 +89253,33 @@ var parameters22 = {
|
|
|
88961
89253
|
};
|
|
88962
89254
|
|
|
88963
89255
|
// ../connectors/src/connectors/wix-store/tools/request.ts
|
|
88964
|
-
import { z as
|
|
88965
|
-
var
|
|
88966
|
-
var
|
|
88967
|
-
var
|
|
88968
|
-
toolUseIntent:
|
|
88969
|
-
connectionId:
|
|
88970
|
-
method:
|
|
88971
|
-
path:
|
|
88972
|
-
body:
|
|
89256
|
+
import { z as z31 } from "zod";
|
|
89257
|
+
var BASE_URL14 = "https://www.wixapis.com/";
|
|
89258
|
+
var REQUEST_TIMEOUT_MS21 = 6e4;
|
|
89259
|
+
var inputSchema31 = z31.object({
|
|
89260
|
+
toolUseIntent: z31.string().optional().describe("Brief description of what you intend to accomplish with this tool call"),
|
|
89261
|
+
connectionId: z31.string().describe("ID of the Wix Store connection to use"),
|
|
89262
|
+
method: z31.enum(["GET", "POST"]).describe("HTTP method"),
|
|
89263
|
+
path: z31.string().describe("API path (e.g., 'stores/v1/products/query', 'stores/v2/orders/query')"),
|
|
89264
|
+
body: z31.record(z31.string(), z31.unknown()).optional().describe("Request body (JSON)")
|
|
88973
89265
|
});
|
|
88974
|
-
var
|
|
88975
|
-
|
|
88976
|
-
success:
|
|
88977
|
-
status:
|
|
88978
|
-
data:
|
|
89266
|
+
var outputSchema31 = z31.discriminatedUnion("success", [
|
|
89267
|
+
z31.object({
|
|
89268
|
+
success: z31.literal(true),
|
|
89269
|
+
status: z31.number(),
|
|
89270
|
+
data: z31.record(z31.string(), z31.unknown())
|
|
88979
89271
|
}),
|
|
88980
|
-
|
|
88981
|
-
success:
|
|
88982
|
-
error:
|
|
89272
|
+
z31.object({
|
|
89273
|
+
success: z31.literal(false),
|
|
89274
|
+
error: z31.string()
|
|
88983
89275
|
})
|
|
88984
89276
|
]);
|
|
88985
|
-
var
|
|
89277
|
+
var requestTool14 = new ConnectorTool({
|
|
88986
89278
|
name: "request",
|
|
88987
89279
|
description: `Send authenticated requests to the Wix Store API.
|
|
88988
89280
|
Authentication is handled automatically using the API Key and Site ID.`,
|
|
88989
|
-
inputSchema:
|
|
88990
|
-
outputSchema:
|
|
89281
|
+
inputSchema: inputSchema31,
|
|
89282
|
+
outputSchema: outputSchema31,
|
|
88991
89283
|
async execute({ connectionId, method, path: path5, body }, connections) {
|
|
88992
89284
|
const connection = connections.find((c6) => c6.id === connectionId);
|
|
88993
89285
|
if (!connection) {
|
|
@@ -88995,11 +89287,11 @@ Authentication is handled automatically using the API Key and Site ID.`,
|
|
|
88995
89287
|
}
|
|
88996
89288
|
console.log(`[connector-request] wix-store/${connection.name}: ${method} ${path5}`);
|
|
88997
89289
|
try {
|
|
88998
|
-
const apiKey =
|
|
88999
|
-
const siteId =
|
|
89000
|
-
const url = `${
|
|
89290
|
+
const apiKey = parameters23.apiKey.getValue(connection);
|
|
89291
|
+
const siteId = parameters23.siteId.getValue(connection);
|
|
89292
|
+
const url = `${BASE_URL14}${path5}`;
|
|
89001
89293
|
const controller = new AbortController();
|
|
89002
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
89294
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS21);
|
|
89003
89295
|
try {
|
|
89004
89296
|
const response = await fetch(url, {
|
|
89005
89297
|
method,
|
|
@@ -89031,14 +89323,14 @@ Authentication is handled automatically using the API Key and Site ID.`,
|
|
|
89031
89323
|
});
|
|
89032
89324
|
|
|
89033
89325
|
// ../connectors/src/connectors/wix-store/index.ts
|
|
89034
|
-
var
|
|
89326
|
+
var tools23 = { request: requestTool14 };
|
|
89035
89327
|
var wixStoreConnector = new ConnectorPlugin({
|
|
89036
89328
|
slug: "wix-store",
|
|
89037
89329
|
authType: null,
|
|
89038
89330
|
name: "Wix Store",
|
|
89039
89331
|
description: "Connect to Wix Store.",
|
|
89040
89332
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/YyFxclQFzROIYpFam6vRK/e7e75d3feac49a1cc5e433c147216d23/Wix_logo_black.svg",
|
|
89041
|
-
parameters:
|
|
89333
|
+
parameters: parameters23,
|
|
89042
89334
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
89043
89335
|
onboarding: wixStoreOnboarding,
|
|
89044
89336
|
systemPrompt: {
|
|
@@ -89191,7 +89483,7 @@ export default async function handler(c: Context) {
|
|
|
89191
89483
|
- \`POST stores/v2/inventoryItems/query\`
|
|
89192
89484
|
- Body: \`{ "query": { "paging": { "limit": 50 } } }\``
|
|
89193
89485
|
},
|
|
89194
|
-
tools:
|
|
89486
|
+
tools: tools23
|
|
89195
89487
|
});
|
|
89196
89488
|
|
|
89197
89489
|
// ../connectors/src/connectors/dbt/setup.ts
|
|
@@ -89207,7 +89499,7 @@ var dbtOnboarding = new ConnectorOnboarding({
|
|
|
89207
89499
|
});
|
|
89208
89500
|
|
|
89209
89501
|
// ../connectors/src/connectors/dbt/parameters.ts
|
|
89210
|
-
var
|
|
89502
|
+
var parameters24 = {
|
|
89211
89503
|
host: new ParameterDefinition({
|
|
89212
89504
|
slug: "host",
|
|
89213
89505
|
name: "dbt Cloud Host",
|
|
@@ -89247,36 +89539,36 @@ var parameters23 = {
|
|
|
89247
89539
|
};
|
|
89248
89540
|
|
|
89249
89541
|
// ../connectors/src/connectors/dbt/tools/request.ts
|
|
89250
|
-
import { z as
|
|
89251
|
-
var
|
|
89542
|
+
import { z as z32 } from "zod";
|
|
89543
|
+
var REQUEST_TIMEOUT_MS22 = 6e4;
|
|
89252
89544
|
function resolveGraphqlEndpoint(host) {
|
|
89253
89545
|
if (host.includes("emea")) return "https://metadata.emea.dbt.com/graphql";
|
|
89254
89546
|
if (host.includes(".au.")) return "https://metadata.au.dbt.com/graphql";
|
|
89255
89547
|
return "https://metadata.cloud.getdbt.com/graphql";
|
|
89256
89548
|
}
|
|
89257
|
-
var
|
|
89258
|
-
toolUseIntent:
|
|
89259
|
-
connectionId:
|
|
89260
|
-
query:
|
|
89261
|
-
variables:
|
|
89549
|
+
var inputSchema32 = z32.object({
|
|
89550
|
+
toolUseIntent: z32.string().optional().describe("Brief description of what you intend to accomplish with this tool call"),
|
|
89551
|
+
connectionId: z32.string().describe("ID of the dbt Cloud connection to use"),
|
|
89552
|
+
query: z32.string().describe("GraphQL query"),
|
|
89553
|
+
variables: z32.record(z32.string(), z32.unknown()).optional().describe("GraphQL variables (JSON)")
|
|
89262
89554
|
});
|
|
89263
|
-
var
|
|
89264
|
-
|
|
89265
|
-
success:
|
|
89266
|
-
data:
|
|
89555
|
+
var outputSchema32 = z32.discriminatedUnion("success", [
|
|
89556
|
+
z32.object({
|
|
89557
|
+
success: z32.literal(true),
|
|
89558
|
+
data: z32.record(z32.string(), z32.unknown())
|
|
89267
89559
|
}),
|
|
89268
|
-
|
|
89269
|
-
success:
|
|
89270
|
-
error:
|
|
89560
|
+
z32.object({
|
|
89561
|
+
success: z32.literal(false),
|
|
89562
|
+
error: z32.string()
|
|
89271
89563
|
})
|
|
89272
89564
|
]);
|
|
89273
|
-
var
|
|
89565
|
+
var requestTool15 = new ConnectorTool({
|
|
89274
89566
|
name: "request",
|
|
89275
89567
|
description: `Send authenticated requests to the dbt Cloud Discovery API (GraphQL).
|
|
89276
89568
|
Authentication is handled automatically using the API token.
|
|
89277
89569
|
{environmentId} in GraphQL variables is automatically replaced with the prod-env-id.`,
|
|
89278
|
-
inputSchema:
|
|
89279
|
-
outputSchema:
|
|
89570
|
+
inputSchema: inputSchema32,
|
|
89571
|
+
outputSchema: outputSchema32,
|
|
89280
89572
|
async execute({ connectionId, query, variables }, connections) {
|
|
89281
89573
|
const connection = connections.find((c6) => c6.id === connectionId);
|
|
89282
89574
|
if (!connection) {
|
|
@@ -89284,9 +89576,9 @@ Authentication is handled automatically using the API token.
|
|
|
89284
89576
|
}
|
|
89285
89577
|
console.log(`[connector-request] dbt/${connection.name}: GraphQL query`);
|
|
89286
89578
|
try {
|
|
89287
|
-
const host =
|
|
89288
|
-
const token =
|
|
89289
|
-
const environmentId =
|
|
89579
|
+
const host = parameters24.host.getValue(connection);
|
|
89580
|
+
const token = parameters24.token.getValue(connection);
|
|
89581
|
+
const environmentId = parameters24.prodEnvId.getValue(connection);
|
|
89290
89582
|
const resolvedVariables = variables ? JSON.parse(
|
|
89291
89583
|
JSON.stringify(variables).replace(
|
|
89292
89584
|
/"\{environmentId\}"/g,
|
|
@@ -89295,7 +89587,7 @@ Authentication is handled automatically using the API token.
|
|
|
89295
89587
|
) : void 0;
|
|
89296
89588
|
const endpoint = resolveGraphqlEndpoint(host);
|
|
89297
89589
|
const controller = new AbortController();
|
|
89298
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
89590
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS22);
|
|
89299
89591
|
try {
|
|
89300
89592
|
const response = await fetch(endpoint, {
|
|
89301
89593
|
method: "POST",
|
|
@@ -89332,14 +89624,14 @@ Authentication is handled automatically using the API token.
|
|
|
89332
89624
|
});
|
|
89333
89625
|
|
|
89334
89626
|
// ../connectors/src/connectors/dbt/index.ts
|
|
89335
|
-
var
|
|
89627
|
+
var tools24 = { request: requestTool15 };
|
|
89336
89628
|
var dbtConnector = new ConnectorPlugin({
|
|
89337
89629
|
slug: "dbt",
|
|
89338
89630
|
authType: null,
|
|
89339
89631
|
name: "dbt",
|
|
89340
89632
|
description: "Connect to dbt Cloud for data transformation and analytics engineering.",
|
|
89341
89633
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/4iT6ncXtdtHdkXexU0WgfZ/0367a38d245f2568eab5eb511f9ee692/dbt.png",
|
|
89342
|
-
parameters:
|
|
89634
|
+
parameters: parameters24,
|
|
89343
89635
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
89344
89636
|
onboarding: dbtOnboarding,
|
|
89345
89637
|
systemPrompt: {
|
|
@@ -89562,7 +89854,7 @@ query($environmentId: BigInt!, $uniqueIds: [String!]!) {
|
|
|
89562
89854
|
- \`ancestors\` / \`children\` \u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u4F7F\u7528\u3057\u3066\u95A2\u4FC2\u3092\u30C8\u30E9\u30D0\u30FC\u30B9\u3057\u307E\u3059
|
|
89563
89855
|
- node\u5185\u3067 \`ancestors { uniqueId name }\` \u307E\u305F\u306F \`children { uniqueId name }\` \u3092\u53D6\u5F97\u3057\u307E\u3059`
|
|
89564
89856
|
},
|
|
89565
|
-
tools:
|
|
89857
|
+
tools: tools24
|
|
89566
89858
|
});
|
|
89567
89859
|
|
|
89568
89860
|
// ../connectors/src/connectors/squadbase-db/setup.ts
|
|
@@ -89578,7 +89870,7 @@ var squadbaseDbOnboarding = new ConnectorOnboarding({
|
|
|
89578
89870
|
});
|
|
89579
89871
|
|
|
89580
89872
|
// ../connectors/src/connectors/squadbase-db/parameters.ts
|
|
89581
|
-
var
|
|
89873
|
+
var parameters25 = {
|
|
89582
89874
|
connectionUrl: new ParameterDefinition({
|
|
89583
89875
|
slug: "connection-url",
|
|
89584
89876
|
name: "Connection URL",
|
|
@@ -89591,27 +89883,27 @@ var parameters24 = {
|
|
|
89591
89883
|
};
|
|
89592
89884
|
|
|
89593
89885
|
// ../connectors/src/connectors/squadbase-db/tools/execute-query.ts
|
|
89594
|
-
import { z as
|
|
89886
|
+
import { z as z33 } from "zod";
|
|
89595
89887
|
var MAX_ROWS10 = 500;
|
|
89596
89888
|
var CONNECT_TIMEOUT_MS3 = 1e4;
|
|
89597
89889
|
var STATEMENT_TIMEOUT_MS2 = 6e4;
|
|
89598
|
-
var
|
|
89599
|
-
toolUseIntent:
|
|
89890
|
+
var inputSchema33 = z33.object({
|
|
89891
|
+
toolUseIntent: z33.string().optional().describe(
|
|
89600
89892
|
"Brief description of what you intend to accomplish with this tool call"
|
|
89601
89893
|
),
|
|
89602
|
-
connectionId:
|
|
89603
|
-
sql:
|
|
89894
|
+
connectionId: z33.string().describe("ID of the Squadbase DB connection to use"),
|
|
89895
|
+
sql: z33.string().describe("PostgreSQL SQL query. Always include LIMIT in queries.")
|
|
89604
89896
|
});
|
|
89605
|
-
var
|
|
89606
|
-
|
|
89607
|
-
success:
|
|
89608
|
-
rowCount:
|
|
89609
|
-
truncated:
|
|
89610
|
-
rows:
|
|
89897
|
+
var outputSchema33 = z33.discriminatedUnion("success", [
|
|
89898
|
+
z33.object({
|
|
89899
|
+
success: z33.literal(true),
|
|
89900
|
+
rowCount: z33.number(),
|
|
89901
|
+
truncated: z33.boolean(),
|
|
89902
|
+
rows: z33.array(z33.record(z33.string(), z33.unknown()))
|
|
89611
89903
|
}),
|
|
89612
|
-
|
|
89613
|
-
success:
|
|
89614
|
-
error:
|
|
89904
|
+
z33.object({
|
|
89905
|
+
success: z33.literal(false),
|
|
89906
|
+
error: z33.string()
|
|
89615
89907
|
})
|
|
89616
89908
|
]);
|
|
89617
89909
|
var executeQueryTool10 = new ConnectorTool({
|
|
@@ -89619,8 +89911,8 @@ var executeQueryTool10 = new ConnectorTool({
|
|
|
89619
89911
|
description: `Execute SQL against Squadbase DB (PostgreSQL). Returns up to ${MAX_ROWS10} rows.
|
|
89620
89912
|
Use for: schema exploration (information_schema), data sampling, analytical queries.
|
|
89621
89913
|
Avoid loading large amounts of data; always include LIMIT in queries.`,
|
|
89622
|
-
inputSchema:
|
|
89623
|
-
outputSchema:
|
|
89914
|
+
inputSchema: inputSchema33,
|
|
89915
|
+
outputSchema: outputSchema33,
|
|
89624
89916
|
async execute({ connectionId, sql }, connections) {
|
|
89625
89917
|
const connection = connections.find((c6) => c6.id === connectionId);
|
|
89626
89918
|
if (!connection) {
|
|
@@ -89635,7 +89927,7 @@ Avoid loading large amounts of data; always include LIMIT in queries.`,
|
|
|
89635
89927
|
let connectionUrl;
|
|
89636
89928
|
try {
|
|
89637
89929
|
const { Pool } = await import("pg");
|
|
89638
|
-
connectionUrl =
|
|
89930
|
+
connectionUrl = parameters25.connectionUrl.getValue(connection);
|
|
89639
89931
|
const pool = new Pool({
|
|
89640
89932
|
connectionString: connectionUrl,
|
|
89641
89933
|
ssl: { rejectUnauthorized: false },
|
|
@@ -89666,14 +89958,14 @@ Avoid loading large amounts of data; always include LIMIT in queries.`,
|
|
|
89666
89958
|
});
|
|
89667
89959
|
|
|
89668
89960
|
// ../connectors/src/connectors/squadbase-db/index.ts
|
|
89669
|
-
var
|
|
89961
|
+
var tools25 = { executeQuery: executeQueryTool10 };
|
|
89670
89962
|
var squadbaseDbConnector = new ConnectorPlugin({
|
|
89671
89963
|
slug: "squadbase-db",
|
|
89672
89964
|
authType: null,
|
|
89673
89965
|
name: "Squadbase DB",
|
|
89674
89966
|
description: "Connect to Squadbase DB (PostgreSQL).",
|
|
89675
89967
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/25y0XqMxIufeD3egWH3bEl/659b4ade405890654cfaf91c03a4b458/icon.svg",
|
|
89676
|
-
parameters:
|
|
89968
|
+
parameters: parameters25,
|
|
89677
89969
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
89678
89970
|
onboarding: squadbaseDbOnboarding,
|
|
89679
89971
|
systemPrompt: {
|
|
@@ -89706,11 +89998,11 @@ The business logic type for this connector is "sql".
|
|
|
89706
89998
|
- \u30AB\u30E9\u30E0\u4E00\u89A7: \`SELECT column_name, data_type FROM information_schema.columns WHERE table_schema = 'public' AND table_name = 'xxx'\`
|
|
89707
89999
|
- \u30AF\u30A8\u30EA\u306B\u306F\u5FC5\u305A LIMIT \u3092\u542B\u3081\u3066\u304F\u3060\u3055\u3044`
|
|
89708
90000
|
},
|
|
89709
|
-
tools:
|
|
90001
|
+
tools: tools25,
|
|
89710
90002
|
async checkConnection(params, _config) {
|
|
89711
90003
|
const { Pool } = await import("pg");
|
|
89712
90004
|
const pool = new Pool({
|
|
89713
|
-
connectionString: params[
|
|
90005
|
+
connectionString: params[parameters25.connectionUrl.slug],
|
|
89714
90006
|
ssl: { rejectUnauthorized: false },
|
|
89715
90007
|
connectionTimeoutMillis: 1e4
|
|
89716
90008
|
});
|
|
@@ -89727,7 +90019,7 @@ The business logic type for this connector is "sql".
|
|
|
89727
90019
|
const { Pool } = await import("pg");
|
|
89728
90020
|
const { text, values } = buildPositionalParams(sql, namedParams);
|
|
89729
90021
|
const pool = new Pool({
|
|
89730
|
-
connectionString: params[
|
|
90022
|
+
connectionString: params[parameters25.connectionUrl.slug],
|
|
89731
90023
|
ssl: { rejectUnauthorized: false },
|
|
89732
90024
|
connectionTimeoutMillis: 1e4,
|
|
89733
90025
|
statement_timeout: 6e4
|
|
@@ -89742,7 +90034,7 @@ The business logic type for this connector is "sql".
|
|
|
89742
90034
|
});
|
|
89743
90035
|
|
|
89744
90036
|
// ../connectors/src/connectors/openai/parameters.ts
|
|
89745
|
-
var
|
|
90037
|
+
var parameters26 = {
|
|
89746
90038
|
apiKey: new ParameterDefinition({
|
|
89747
90039
|
slug: "api-key",
|
|
89748
90040
|
name: "OpenAI API Key",
|
|
@@ -89755,14 +90047,14 @@ var parameters25 = {
|
|
|
89755
90047
|
};
|
|
89756
90048
|
|
|
89757
90049
|
// ../connectors/src/connectors/openai/index.ts
|
|
89758
|
-
var
|
|
90050
|
+
var tools26 = {};
|
|
89759
90051
|
var openaiConnector = new ConnectorPlugin({
|
|
89760
90052
|
slug: "openai",
|
|
89761
90053
|
authType: null,
|
|
89762
90054
|
name: "OpenAI",
|
|
89763
90055
|
description: "Connect to OpenAI for AI model inference, embeddings, and image generation.",
|
|
89764
90056
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/53XJtCgUlW10x6i1X8xpxM/0bfd634069f1d74241296543cb20427a/openai.svg",
|
|
89765
|
-
parameters:
|
|
90057
|
+
parameters: parameters26,
|
|
89766
90058
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
89767
90059
|
systemPrompt: {
|
|
89768
90060
|
en: `### Business Logic
|
|
@@ -89812,11 +90104,11 @@ export default async function handler(c: Context) {
|
|
|
89812
90104
|
}
|
|
89813
90105
|
\`\`\``
|
|
89814
90106
|
},
|
|
89815
|
-
tools:
|
|
90107
|
+
tools: tools26
|
|
89816
90108
|
});
|
|
89817
90109
|
|
|
89818
90110
|
// ../connectors/src/connectors/gemini/parameters.ts
|
|
89819
|
-
var
|
|
90111
|
+
var parameters27 = {
|
|
89820
90112
|
apiKey: new ParameterDefinition({
|
|
89821
90113
|
slug: "api-key",
|
|
89822
90114
|
name: "Gemini API Key",
|
|
@@ -89829,14 +90121,14 @@ var parameters26 = {
|
|
|
89829
90121
|
};
|
|
89830
90122
|
|
|
89831
90123
|
// ../connectors/src/connectors/gemini/index.ts
|
|
89832
|
-
var
|
|
90124
|
+
var tools27 = {};
|
|
89833
90125
|
var geminiConnector = new ConnectorPlugin({
|
|
89834
90126
|
slug: "gemini",
|
|
89835
90127
|
authType: null,
|
|
89836
90128
|
name: "Gemini",
|
|
89837
90129
|
description: "Connect to Google Gemini for AI model inference, embeddings, and multimodal generation.",
|
|
89838
90130
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/6K2qZQZEQq90YENfrXy5my/c83c0c3815af0a97d29ee70f37215f01/gemini.png",
|
|
89839
|
-
parameters:
|
|
90131
|
+
parameters: parameters27,
|
|
89840
90132
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
89841
90133
|
systemPrompt: {
|
|
89842
90134
|
en: `### Business Logic
|
|
@@ -89880,11 +90172,11 @@ export default async function handler(c: Context) {
|
|
|
89880
90172
|
}
|
|
89881
90173
|
\`\`\``
|
|
89882
90174
|
},
|
|
89883
|
-
tools:
|
|
90175
|
+
tools: tools27
|
|
89884
90176
|
});
|
|
89885
90177
|
|
|
89886
90178
|
// ../connectors/src/connectors/anthropic/parameters.ts
|
|
89887
|
-
var
|
|
90179
|
+
var parameters28 = {
|
|
89888
90180
|
apiKey: new ParameterDefinition({
|
|
89889
90181
|
slug: "api-key",
|
|
89890
90182
|
name: "Anthropic API Key",
|
|
@@ -89897,14 +90189,14 @@ var parameters27 = {
|
|
|
89897
90189
|
};
|
|
89898
90190
|
|
|
89899
90191
|
// ../connectors/src/connectors/anthropic/index.ts
|
|
89900
|
-
var
|
|
90192
|
+
var tools28 = {};
|
|
89901
90193
|
var anthropicConnector = new ConnectorPlugin({
|
|
89902
90194
|
slug: "anthropic",
|
|
89903
90195
|
authType: null,
|
|
89904
90196
|
name: "Anthropic",
|
|
89905
90197
|
description: "Connect to Anthropic for AI model inference and text generation with Claude.",
|
|
89906
90198
|
iconUrl: "https://www.anthropic.com/images/icons/safari-pinned-tab.svg",
|
|
89907
|
-
parameters:
|
|
90199
|
+
parameters: parameters28,
|
|
89908
90200
|
releaseFlag: { dev1: true, dev2: true, prod: true },
|
|
89909
90201
|
systemPrompt: {
|
|
89910
90202
|
en: `### Business Logic
|
|
@@ -89956,7 +90248,7 @@ export default async function handler(c: Context) {
|
|
|
89956
90248
|
}
|
|
89957
90249
|
\`\`\``
|
|
89958
90250
|
},
|
|
89959
|
-
tools:
|
|
90251
|
+
tools: tools28
|
|
89960
90252
|
});
|
|
89961
90253
|
|
|
89962
90254
|
// ../connectors/src/connectors/amplitude/setup.ts
|
|
@@ -89976,7 +90268,7 @@ NOTE: The Dashboard REST API endpoints (events/segmentation, funnels, retention,
|
|
|
89976
90268
|
});
|
|
89977
90269
|
|
|
89978
90270
|
// ../connectors/src/connectors/amplitude/parameters.ts
|
|
89979
|
-
var
|
|
90271
|
+
var parameters29 = {
|
|
89980
90272
|
apiKey: new ParameterDefinition({
|
|
89981
90273
|
slug: "api-key",
|
|
89982
90274
|
name: "Amplitude API Key",
|
|
@@ -90007,33 +90299,33 @@ var parameters28 = {
|
|
|
90007
90299
|
};
|
|
90008
90300
|
|
|
90009
90301
|
// ../connectors/src/connectors/amplitude/tools/request.ts
|
|
90010
|
-
import { z as
|
|
90011
|
-
var
|
|
90012
|
-
var
|
|
90013
|
-
toolUseIntent:
|
|
90302
|
+
import { z as z34 } from "zod";
|
|
90303
|
+
var REQUEST_TIMEOUT_MS23 = 6e4;
|
|
90304
|
+
var inputSchema34 = z34.object({
|
|
90305
|
+
toolUseIntent: z34.string().optional().describe(
|
|
90014
90306
|
"Brief description of what you intend to accomplish with this tool call"
|
|
90015
90307
|
),
|
|
90016
|
-
connectionId:
|
|
90017
|
-
method:
|
|
90308
|
+
connectionId: z34.string().describe("ID of the Amplitude connection to use"),
|
|
90309
|
+
method: z34.enum(["GET", "POST"]).describe(
|
|
90018
90310
|
"HTTP method. GET for most read endpoints (events/list, export, usersearch, useractivity). POST is rarely needed."
|
|
90019
90311
|
),
|
|
90020
|
-
url:
|
|
90312
|
+
url: z34.string().describe(
|
|
90021
90313
|
"Full URL including query parameters (e.g., 'https://amplitude.com/api/2/events/list', 'https://amplitude.com/api/2/export?start=20240101T00&end=20240102T00')"
|
|
90022
90314
|
),
|
|
90023
|
-
body:
|
|
90315
|
+
body: z34.record(z34.string(), z34.unknown()).optional().describe("Request body (JSON) for POST requests")
|
|
90024
90316
|
});
|
|
90025
|
-
var
|
|
90026
|
-
|
|
90027
|
-
success:
|
|
90028
|
-
status:
|
|
90029
|
-
data:
|
|
90317
|
+
var outputSchema34 = z34.discriminatedUnion("success", [
|
|
90318
|
+
z34.object({
|
|
90319
|
+
success: z34.literal(true),
|
|
90320
|
+
status: z34.number(),
|
|
90321
|
+
data: z34.record(z34.string(), z34.unknown())
|
|
90030
90322
|
}),
|
|
90031
|
-
|
|
90032
|
-
success:
|
|
90033
|
-
error:
|
|
90323
|
+
z34.object({
|
|
90324
|
+
success: z34.literal(false),
|
|
90325
|
+
error: z34.string()
|
|
90034
90326
|
})
|
|
90035
90327
|
]);
|
|
90036
|
-
var
|
|
90328
|
+
var requestTool16 = new ConnectorTool({
|
|
90037
90329
|
name: "request",
|
|
90038
90330
|
description: `Send authenticated requests to the Amplitude REST API.
|
|
90039
90331
|
Authentication is handled automatically using Basic auth (API Key + Secret Key).
|
|
@@ -90047,8 +90339,8 @@ Recommended endpoints (available on all plans):
|
|
|
90047
90339
|
- GET {baseUrl}/api/2/useractivity?user=AMPLITUDE_ID \u2014 user activity
|
|
90048
90340
|
|
|
90049
90341
|
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.`,
|
|
90050
|
-
inputSchema:
|
|
90051
|
-
outputSchema:
|
|
90342
|
+
inputSchema: inputSchema34,
|
|
90343
|
+
outputSchema: outputSchema34,
|
|
90052
90344
|
async execute({ connectionId, method, url, body }, connections) {
|
|
90053
90345
|
const connection = connections.find((c6) => c6.id === connectionId);
|
|
90054
90346
|
if (!connection) {
|
|
@@ -90061,11 +90353,11 @@ IMPORTANT: Dashboard REST API endpoints (events/segmentation, funnels, retention
|
|
|
90061
90353
|
`[connector-request] amplitude/${connection.name}: ${method} ${url}`
|
|
90062
90354
|
);
|
|
90063
90355
|
try {
|
|
90064
|
-
const apiKey =
|
|
90065
|
-
const secretKey =
|
|
90356
|
+
const apiKey = parameters29.apiKey.getValue(connection);
|
|
90357
|
+
const secretKey = parameters29.secretKey.getValue(connection);
|
|
90066
90358
|
const authToken = btoa(`${apiKey}:${secretKey}`);
|
|
90067
90359
|
const controller = new AbortController();
|
|
90068
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
90360
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS23);
|
|
90069
90361
|
try {
|
|
90070
90362
|
const response = await fetch(url, {
|
|
90071
90363
|
method,
|
|
@@ -90093,14 +90385,14 @@ IMPORTANT: Dashboard REST API endpoints (events/segmentation, funnels, retention
|
|
|
90093
90385
|
});
|
|
90094
90386
|
|
|
90095
90387
|
// ../connectors/src/connectors/amplitude/index.ts
|
|
90096
|
-
var
|
|
90388
|
+
var tools29 = { request: requestTool16 };
|
|
90097
90389
|
var amplitudeConnector = new ConnectorPlugin({
|
|
90098
90390
|
slug: "amplitude",
|
|
90099
90391
|
authType: null,
|
|
90100
90392
|
name: "Amplitude",
|
|
90101
90393
|
description: "Connect to Amplitude for product analytics and user behavior data.",
|
|
90102
90394
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/2UBJSdRlFJaLq52WUCTBEB/308b59b374cf6c662ac70989860bffd7/amplitude-icon.svg",
|
|
90103
|
-
parameters:
|
|
90395
|
+
parameters: parameters29,
|
|
90104
90396
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
90105
90397
|
onboarding: amplitudeOnboarding,
|
|
90106
90398
|
systemPrompt: {
|
|
@@ -90233,7 +90525,7 @@ export default async function handler(c: Context) {
|
|
|
90233
90525
|
- \`i\` \u2014 \u30A4\u30F3\u30BF\u30FC\u30D0\u30EB\uFF081=\u65E5\u6B21\u30017=\u9031\u6B21\u300130=\u6708\u6B21\uFF09
|
|
90234
90526
|
- \`g\` \u2014 \u30B0\u30EB\u30FC\u30D7\u5316\u30D7\u30ED\u30D1\u30C6\u30A3`
|
|
90235
90527
|
},
|
|
90236
|
-
tools:
|
|
90528
|
+
tools: tools29
|
|
90237
90529
|
});
|
|
90238
90530
|
|
|
90239
90531
|
// ../connectors/src/connectors/attio/setup.ts
|
|
@@ -90251,7 +90543,7 @@ var attioOnboarding = new ConnectorOnboarding({
|
|
|
90251
90543
|
});
|
|
90252
90544
|
|
|
90253
90545
|
// ../connectors/src/connectors/attio/parameters.ts
|
|
90254
|
-
var
|
|
90546
|
+
var parameters30 = {
|
|
90255
90547
|
apiKey: new ParameterDefinition({
|
|
90256
90548
|
slug: "api-key",
|
|
90257
90549
|
name: "Attio API Key",
|
|
@@ -90264,41 +90556,41 @@ var parameters29 = {
|
|
|
90264
90556
|
};
|
|
90265
90557
|
|
|
90266
90558
|
// ../connectors/src/connectors/attio/tools/request.ts
|
|
90267
|
-
import { z as
|
|
90268
|
-
var
|
|
90269
|
-
var
|
|
90270
|
-
var
|
|
90271
|
-
toolUseIntent:
|
|
90559
|
+
import { z as z35 } from "zod";
|
|
90560
|
+
var BASE_URL15 = "https://api.attio.com/v2";
|
|
90561
|
+
var REQUEST_TIMEOUT_MS24 = 6e4;
|
|
90562
|
+
var inputSchema35 = z35.object({
|
|
90563
|
+
toolUseIntent: z35.string().optional().describe(
|
|
90272
90564
|
"Brief description of what you intend to accomplish with this tool call"
|
|
90273
90565
|
),
|
|
90274
|
-
connectionId:
|
|
90275
|
-
method:
|
|
90566
|
+
connectionId: z35.string().describe("ID of the Attio connection to use"),
|
|
90567
|
+
method: z35.enum(["GET", "POST", "PATCH", "DELETE"]).describe(
|
|
90276
90568
|
"HTTP method. GET for reading resources, POST for creating or querying records, PATCH for updating, DELETE for removing."
|
|
90277
90569
|
),
|
|
90278
|
-
path:
|
|
90570
|
+
path: z35.string().describe(
|
|
90279
90571
|
"API path (e.g., '/objects', '/objects/people/records/query', '/objects/companies/records/{record_id}')"
|
|
90280
90572
|
),
|
|
90281
|
-
body:
|
|
90573
|
+
body: z35.record(z35.string(), z35.unknown()).optional().describe("Request body (JSON) for POST/PATCH requests")
|
|
90282
90574
|
});
|
|
90283
|
-
var
|
|
90284
|
-
|
|
90285
|
-
success:
|
|
90286
|
-
status:
|
|
90287
|
-
data:
|
|
90575
|
+
var outputSchema35 = z35.discriminatedUnion("success", [
|
|
90576
|
+
z35.object({
|
|
90577
|
+
success: z35.literal(true),
|
|
90578
|
+
status: z35.number(),
|
|
90579
|
+
data: z35.record(z35.string(), z35.unknown())
|
|
90288
90580
|
}),
|
|
90289
|
-
|
|
90290
|
-
success:
|
|
90291
|
-
error:
|
|
90581
|
+
z35.object({
|
|
90582
|
+
success: z35.literal(false),
|
|
90583
|
+
error: z35.string()
|
|
90292
90584
|
})
|
|
90293
90585
|
]);
|
|
90294
|
-
var
|
|
90586
|
+
var requestTool17 = new ConnectorTool({
|
|
90295
90587
|
name: "request",
|
|
90296
90588
|
description: `Send authenticated requests to the Attio REST API.
|
|
90297
90589
|
Authentication is handled automatically using the API Key (Bearer token).
|
|
90298
90590
|
Use this tool for all Attio API interactions: querying records (people, companies, deals), listing objects and attributes, managing list entries, and working with notes.
|
|
90299
90591
|
Note that querying records uses POST (not GET) with a request body for filters.`,
|
|
90300
|
-
inputSchema:
|
|
90301
|
-
outputSchema:
|
|
90592
|
+
inputSchema: inputSchema35,
|
|
90593
|
+
outputSchema: outputSchema35,
|
|
90302
90594
|
async execute({ connectionId, method, path: path5, body }, connections) {
|
|
90303
90595
|
const connection = connections.find((c6) => c6.id === connectionId);
|
|
90304
90596
|
if (!connection) {
|
|
@@ -90311,10 +90603,10 @@ Note that querying records uses POST (not GET) with a request body for filters.`
|
|
|
90311
90603
|
`[connector-request] attio/${connection.name}: ${method} ${path5}`
|
|
90312
90604
|
);
|
|
90313
90605
|
try {
|
|
90314
|
-
const apiKey =
|
|
90315
|
-
const url = `${
|
|
90606
|
+
const apiKey = parameters30.apiKey.getValue(connection);
|
|
90607
|
+
const url = `${BASE_URL15}${path5}`;
|
|
90316
90608
|
const controller = new AbortController();
|
|
90317
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
90609
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS24);
|
|
90318
90610
|
try {
|
|
90319
90611
|
const response = await fetch(url, {
|
|
90320
90612
|
method,
|
|
@@ -90342,14 +90634,14 @@ Note that querying records uses POST (not GET) with a request body for filters.`
|
|
|
90342
90634
|
});
|
|
90343
90635
|
|
|
90344
90636
|
// ../connectors/src/connectors/attio/index.ts
|
|
90345
|
-
var
|
|
90637
|
+
var tools30 = { request: requestTool17 };
|
|
90346
90638
|
var attioConnector = new ConnectorPlugin({
|
|
90347
90639
|
slug: "attio",
|
|
90348
90640
|
authType: null,
|
|
90349
90641
|
name: "Attio",
|
|
90350
90642
|
description: "Connect to Attio for CRM data and relationship intelligence.",
|
|
90351
90643
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/2qqx99vvXJojUM3tSrSWPX/1e7c35e13da6b365b8b475c1effe568f/attio.svg",
|
|
90352
|
-
parameters:
|
|
90644
|
+
parameters: parameters30,
|
|
90353
90645
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
90354
90646
|
onboarding: attioOnboarding,
|
|
90355
90647
|
systemPrompt: {
|
|
@@ -90468,7 +90760,7 @@ export default async function handler(c: Context) {
|
|
|
90468
90760
|
- \`limit\` \u2014 \u30DA\u30FC\u30B8\u3042\u305F\u308A\u306E\u6700\u5927\u30EC\u30B3\u30FC\u30C9\u6570\uFF08\u30C7\u30D5\u30A9\u30EB\u30C825\uFF09
|
|
90469
90761
|
- \`offset\` \u2014 \u30DA\u30FC\u30B8\u30CD\u30FC\u30B7\u30E7\u30F3\u30AA\u30D5\u30BB\u30C3\u30C8`
|
|
90470
90762
|
},
|
|
90471
|
-
tools:
|
|
90763
|
+
tools: tools30
|
|
90472
90764
|
});
|
|
90473
90765
|
|
|
90474
90766
|
// ../connectors/src/connectors/shopify/setup.ts
|
|
@@ -90484,7 +90776,7 @@ var shopifyOnboarding = new ConnectorOnboarding({
|
|
|
90484
90776
|
});
|
|
90485
90777
|
|
|
90486
90778
|
// ../connectors/src/connectors/shopify/parameters.ts
|
|
90487
|
-
var
|
|
90779
|
+
var parameters31 = {
|
|
90488
90780
|
storeDomain: new ParameterDefinition({
|
|
90489
90781
|
slug: "store-domain",
|
|
90490
90782
|
name: "Shop Name",
|
|
@@ -90515,40 +90807,40 @@ var parameters30 = {
|
|
|
90515
90807
|
};
|
|
90516
90808
|
|
|
90517
90809
|
// ../connectors/src/connectors/shopify/tools/request.ts
|
|
90518
|
-
import { z as
|
|
90519
|
-
var
|
|
90520
|
-
var
|
|
90521
|
-
toolUseIntent:
|
|
90810
|
+
import { z as z36 } from "zod";
|
|
90811
|
+
var REQUEST_TIMEOUT_MS25 = 6e4;
|
|
90812
|
+
var inputSchema36 = z36.object({
|
|
90813
|
+
toolUseIntent: z36.string().optional().describe(
|
|
90522
90814
|
"Brief description of what you intend to accomplish with this tool call"
|
|
90523
90815
|
),
|
|
90524
|
-
connectionId:
|
|
90525
|
-
method:
|
|
90816
|
+
connectionId: z36.string().describe("ID of the Shopify connection to use"),
|
|
90817
|
+
method: z36.enum(["GET", "POST", "PUT", "DELETE"]).describe(
|
|
90526
90818
|
"HTTP method. GET for reading resources (products, orders, customers), POST for creating, PUT for updating, DELETE for removing."
|
|
90527
90819
|
),
|
|
90528
|
-
path:
|
|
90820
|
+
path: z36.string().describe(
|
|
90529
90821
|
"API path including version (e.g., '/admin/api/2024-10/products.json', '/admin/api/2024-10/orders.json?limit=50')"
|
|
90530
90822
|
),
|
|
90531
|
-
body:
|
|
90823
|
+
body: z36.record(z36.string(), z36.unknown()).optional().describe("Request body (JSON) for POST/PUT requests")
|
|
90532
90824
|
});
|
|
90533
|
-
var
|
|
90534
|
-
|
|
90535
|
-
success:
|
|
90536
|
-
status:
|
|
90537
|
-
data:
|
|
90825
|
+
var outputSchema36 = z36.discriminatedUnion("success", [
|
|
90826
|
+
z36.object({
|
|
90827
|
+
success: z36.literal(true),
|
|
90828
|
+
status: z36.number(),
|
|
90829
|
+
data: z36.record(z36.string(), z36.unknown())
|
|
90538
90830
|
}),
|
|
90539
|
-
|
|
90540
|
-
success:
|
|
90541
|
-
error:
|
|
90831
|
+
z36.object({
|
|
90832
|
+
success: z36.literal(false),
|
|
90833
|
+
error: z36.string()
|
|
90542
90834
|
})
|
|
90543
90835
|
]);
|
|
90544
|
-
var
|
|
90836
|
+
var requestTool18 = new ConnectorTool({
|
|
90545
90837
|
name: "request",
|
|
90546
90838
|
description: `Send authenticated requests to the Shopify Admin REST API.
|
|
90547
90839
|
Authentication is handled automatically using Custom App credentials (Client ID + Client Secret). An access token is obtained on each request.
|
|
90548
90840
|
The store domain is resolved from the connection \u2014 only provide the path starting with /admin/api/.
|
|
90549
90841
|
Use this tool for all Shopify API interactions: listing products, orders, customers, inventory, collections, and more.`,
|
|
90550
|
-
inputSchema:
|
|
90551
|
-
outputSchema:
|
|
90842
|
+
inputSchema: inputSchema36,
|
|
90843
|
+
outputSchema: outputSchema36,
|
|
90552
90844
|
async execute({ connectionId, method, path: path5, body }, connections) {
|
|
90553
90845
|
const connection = connections.find((c6) => c6.id === connectionId);
|
|
90554
90846
|
if (!connection) {
|
|
@@ -90561,9 +90853,9 @@ Use this tool for all Shopify API interactions: listing products, orders, custom
|
|
|
90561
90853
|
`[connector-request] shopify/${connection.name}: ${method} ${path5}`
|
|
90562
90854
|
);
|
|
90563
90855
|
try {
|
|
90564
|
-
const storeDomain =
|
|
90565
|
-
const clientId =
|
|
90566
|
-
const clientSecret =
|
|
90856
|
+
const storeDomain = parameters31.storeDomain.getValue(connection);
|
|
90857
|
+
const clientId = parameters31.clientId.getValue(connection);
|
|
90858
|
+
const clientSecret = parameters31.clientSecret.getValue(connection);
|
|
90567
90859
|
const tokenRes = await fetch(
|
|
90568
90860
|
`https://${storeDomain}/admin/oauth/access_token`,
|
|
90569
90861
|
{
|
|
@@ -90591,7 +90883,7 @@ Use this tool for all Shopify API interactions: listing products, orders, custom
|
|
|
90591
90883
|
}
|
|
90592
90884
|
const url = `https://${storeDomain}${path5}`;
|
|
90593
90885
|
const controller = new AbortController();
|
|
90594
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
90886
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS25);
|
|
90595
90887
|
try {
|
|
90596
90888
|
const response = await fetch(url, {
|
|
90597
90889
|
method,
|
|
@@ -90619,14 +90911,14 @@ Use this tool for all Shopify API interactions: listing products, orders, custom
|
|
|
90619
90911
|
});
|
|
90620
90912
|
|
|
90621
90913
|
// ../connectors/src/connectors/shopify/index.ts
|
|
90622
|
-
var
|
|
90914
|
+
var tools31 = { request: requestTool18 };
|
|
90623
90915
|
var shopifyConnector = new ConnectorPlugin({
|
|
90624
90916
|
slug: "shopify",
|
|
90625
90917
|
authType: null,
|
|
90626
90918
|
name: "Shopify",
|
|
90627
90919
|
description: "Connect to Shopify for e-commerce data including products, orders, and customers.",
|
|
90628
90920
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/57KEjZCBskKgSxgKyU4Sm0/117d681a410f48dc36f97cdd9c0593c5/shopify-icon.svg",
|
|
90629
|
-
parameters:
|
|
90921
|
+
parameters: parameters31,
|
|
90630
90922
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
90631
90923
|
onboarding: shopifyOnboarding,
|
|
90632
90924
|
systemPrompt: {
|
|
@@ -90775,11 +91067,11 @@ export default async function handler(c: Context) {
|
|
|
90775
91067
|
- \`updated_at_min\`, \`updated_at_max\` \u2014 \u66F4\u65B0\u65E5\u30D5\u30A3\u30EB\u30BF\u30FC\uFF08ISO 8601\uFF09
|
|
90776
91068
|
- \`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`
|
|
90777
91069
|
},
|
|
90778
|
-
tools:
|
|
91070
|
+
tools: tools31
|
|
90779
91071
|
});
|
|
90780
91072
|
|
|
90781
91073
|
// ../connectors/src/connectors/slack/parameters.ts
|
|
90782
|
-
var
|
|
91074
|
+
var parameters32 = {
|
|
90783
91075
|
botToken: new ParameterDefinition({
|
|
90784
91076
|
slug: "bot-token",
|
|
90785
91077
|
name: "Slack Bot Token",
|
|
@@ -90860,14 +91152,14 @@ The following scopes are commonly required. Inform the user if any are missing:
|
|
|
90860
91152
|
});
|
|
90861
91153
|
|
|
90862
91154
|
// ../connectors/src/connectors/slack/index.ts
|
|
90863
|
-
var
|
|
91155
|
+
var tools32 = {};
|
|
90864
91156
|
var slackConnector = new ConnectorPlugin({
|
|
90865
91157
|
slug: "slack",
|
|
90866
91158
|
authType: null,
|
|
90867
91159
|
name: "Slack",
|
|
90868
91160
|
description: "Connect to Slack for messaging and workspace data retrieval.",
|
|
90869
91161
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/7zTp67vMTvAV1wPftt6Z9R/f859e25c223d9fe4c3fd4f83895acbf6/slack.svg",
|
|
90870
|
-
parameters:
|
|
91162
|
+
parameters: parameters32,
|
|
90871
91163
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
90872
91164
|
onboarding: slackOnboarding,
|
|
90873
91165
|
systemPrompt: {
|
|
@@ -90942,12 +91234,12 @@ const data = await res.json();
|
|
|
90942
91234
|
- \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
|
|
90943
91235
|
- \`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`
|
|
90944
91236
|
},
|
|
90945
|
-
tools:
|
|
91237
|
+
tools: tools32
|
|
90946
91238
|
});
|
|
90947
91239
|
|
|
90948
91240
|
// ../connectors/src/connectors/shopify-oauth/tools/request.ts
|
|
90949
|
-
import { z as
|
|
90950
|
-
var
|
|
91241
|
+
import { z as z37 } from "zod";
|
|
91242
|
+
var REQUEST_TIMEOUT_MS26 = 6e4;
|
|
90951
91243
|
var cachedToken13 = null;
|
|
90952
91244
|
async function getProxyToken13(config) {
|
|
90953
91245
|
if (cachedToken13 && cachedToken13.expiresAt > Date.now() + 6e4) {
|
|
@@ -90979,35 +91271,35 @@ async function getProxyToken13(config) {
|
|
|
90979
91271
|
};
|
|
90980
91272
|
return data.token;
|
|
90981
91273
|
}
|
|
90982
|
-
var
|
|
90983
|
-
toolUseIntent:
|
|
91274
|
+
var inputSchema37 = z37.object({
|
|
91275
|
+
toolUseIntent: z37.string().optional().describe(
|
|
90984
91276
|
"Brief description of what you intend to accomplish with this tool call"
|
|
90985
91277
|
),
|
|
90986
|
-
connectionId:
|
|
90987
|
-
method:
|
|
90988
|
-
path:
|
|
91278
|
+
connectionId: z37.string().describe("ID of the Shopify OAuth connection to use"),
|
|
91279
|
+
method: z37.enum(["GET", "POST", "PUT", "DELETE"]).describe("HTTP method"),
|
|
91280
|
+
path: z37.string().describe(
|
|
90989
91281
|
"API path (e.g., '/admin/api/2024-10/products.json', '/admin/api/2024-10/orders.json')"
|
|
90990
91282
|
),
|
|
90991
|
-
queryParams:
|
|
90992
|
-
body:
|
|
91283
|
+
queryParams: z37.record(z37.string(), z37.string()).optional().describe("Query parameters to append to the URL"),
|
|
91284
|
+
body: z37.record(z37.string(), z37.unknown()).optional().describe("Request body (JSON) for POST/PUT requests")
|
|
90993
91285
|
});
|
|
90994
|
-
var
|
|
90995
|
-
|
|
90996
|
-
success:
|
|
90997
|
-
status:
|
|
90998
|
-
data:
|
|
91286
|
+
var outputSchema37 = z37.discriminatedUnion("success", [
|
|
91287
|
+
z37.object({
|
|
91288
|
+
success: z37.literal(true),
|
|
91289
|
+
status: z37.number(),
|
|
91290
|
+
data: z37.record(z37.string(), z37.unknown())
|
|
90999
91291
|
}),
|
|
91000
|
-
|
|
91001
|
-
success:
|
|
91002
|
-
error:
|
|
91292
|
+
z37.object({
|
|
91293
|
+
success: z37.literal(false),
|
|
91294
|
+
error: z37.string()
|
|
91003
91295
|
})
|
|
91004
91296
|
]);
|
|
91005
|
-
var
|
|
91297
|
+
var requestTool19 = new ConnectorTool({
|
|
91006
91298
|
name: "request",
|
|
91007
91299
|
description: `Send authenticated requests to the Shopify Admin API.
|
|
91008
91300
|
Authentication is handled automatically via OAuth proxy.`,
|
|
91009
|
-
inputSchema:
|
|
91010
|
-
outputSchema:
|
|
91301
|
+
inputSchema: inputSchema37,
|
|
91302
|
+
outputSchema: outputSchema37,
|
|
91011
91303
|
async execute({ connectionId, method, path: path5, queryParams, body }, connections, config) {
|
|
91012
91304
|
const connection = connections.find((c6) => c6.id === connectionId);
|
|
91013
91305
|
if (!connection) {
|
|
@@ -91028,7 +91320,7 @@ Authentication is handled automatically via OAuth proxy.`,
|
|
|
91028
91320
|
const token = await getProxyToken13(config.oauthProxy);
|
|
91029
91321
|
const proxyUrl = `https://${config.oauthProxy.sandboxId}.${config.oauthProxy.previewBaseDomain}/_sqcore/connections/${connectionId}/request`;
|
|
91030
91322
|
const controller = new AbortController();
|
|
91031
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
91323
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS26);
|
|
91032
91324
|
try {
|
|
91033
91325
|
const response = await fetch(proxyUrl, {
|
|
91034
91326
|
method: "POST",
|
|
@@ -91060,12 +91352,12 @@ Authentication is handled automatically via OAuth proxy.`,
|
|
|
91060
91352
|
});
|
|
91061
91353
|
|
|
91062
91354
|
// ../connectors/src/connectors/shopify-oauth/setup.ts
|
|
91063
|
-
var
|
|
91355
|
+
var requestToolName6 = `shopify-oauth_${requestTool19.name}`;
|
|
91064
91356
|
var shopifyOauthOnboarding = new ConnectorOnboarding({
|
|
91065
91357
|
connectionSetupInstructions: {
|
|
91066
91358
|
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
|
|
91067
91359
|
|
|
91068
|
-
1. \`${
|
|
91360
|
+
1. \`${requestToolName6}\` \u3092\u547C\u3073\u51FA\u3057\u3066\u3001\u30B7\u30E7\u30C3\u30D7\u60C5\u5831\u3092\u53D6\u5F97\u3059\u308B:
|
|
91069
91361
|
- \`method\`: \`"GET"\`
|
|
91070
91362
|
- \`path\`: \`"/admin/api/2024-10/shop.json"\`
|
|
91071
91363
|
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
|
|
@@ -91078,7 +91370,7 @@ var shopifyOauthOnboarding = new ConnectorOnboarding({
|
|
|
91078
91370
|
- \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`,
|
|
91079
91371
|
en: `Follow these steps to set up the Shopify connection.
|
|
91080
91372
|
|
|
91081
|
-
1. Call \`${
|
|
91373
|
+
1. Call \`${requestToolName6}\` to fetch shop info:
|
|
91082
91374
|
- \`method\`: \`"GET"\`
|
|
91083
91375
|
- \`path\`: \`"/admin/api/2024-10/shop.json"\`
|
|
91084
91376
|
2. If an error is returned, ask the user to check the OAuth connection settings
|
|
@@ -91101,17 +91393,17 @@ var shopifyOauthOnboarding = new ConnectorOnboarding({
|
|
|
91101
91393
|
});
|
|
91102
91394
|
|
|
91103
91395
|
// ../connectors/src/connectors/shopify-oauth/parameters.ts
|
|
91104
|
-
var
|
|
91396
|
+
var parameters33 = {};
|
|
91105
91397
|
|
|
91106
91398
|
// ../connectors/src/connectors/shopify-oauth/index.ts
|
|
91107
|
-
var
|
|
91399
|
+
var tools33 = { request: requestTool19 };
|
|
91108
91400
|
var shopifyOauthConnector = new ConnectorPlugin({
|
|
91109
91401
|
slug: "shopify",
|
|
91110
91402
|
authType: AUTH_TYPES.OAUTH,
|
|
91111
91403
|
name: "Shopify (OAuth)",
|
|
91112
91404
|
description: "Connect to Shopify for e-commerce data including products, orders, and customers using OAuth.",
|
|
91113
91405
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/57KEjZCBskKgSxgKyU4Sm0/117d681a410f48dc36f97cdd9c0593c5/shopify-icon.svg",
|
|
91114
|
-
parameters:
|
|
91406
|
+
parameters: parameters33,
|
|
91115
91407
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
91116
91408
|
onboarding: shopifyOauthOnboarding,
|
|
91117
91409
|
proxyPolicy: {
|
|
@@ -91218,7 +91510,7 @@ const res = await shopify.request("/admin/api/2024-10/products.json?limit=10");
|
|
|
91218
91510
|
const data = await res.json();
|
|
91219
91511
|
\`\`\``
|
|
91220
91512
|
},
|
|
91221
|
-
tools:
|
|
91513
|
+
tools: tools33,
|
|
91222
91514
|
async checkConnection(_params, config) {
|
|
91223
91515
|
const { proxyFetch } = config;
|
|
91224
91516
|
try {
|
|
@@ -91243,7 +91535,7 @@ const data = await res.json();
|
|
|
91243
91535
|
});
|
|
91244
91536
|
|
|
91245
91537
|
// ../connectors/src/connectors/ms-teams/parameters.ts
|
|
91246
|
-
var
|
|
91538
|
+
var parameters34 = {
|
|
91247
91539
|
clientId: new ParameterDefinition({
|
|
91248
91540
|
slug: "client-id",
|
|
91249
91541
|
name: "Azure AD Client ID",
|
|
@@ -91274,14 +91566,14 @@ var parameters33 = {
|
|
|
91274
91566
|
};
|
|
91275
91567
|
|
|
91276
91568
|
// ../connectors/src/connectors/ms-teams/index.ts
|
|
91277
|
-
var
|
|
91569
|
+
var tools34 = {};
|
|
91278
91570
|
var msTeamsConnector = new ConnectorPlugin({
|
|
91279
91571
|
slug: "microsoft-teams",
|
|
91280
91572
|
authType: null,
|
|
91281
91573
|
name: "Microsoft Teams",
|
|
91282
91574
|
description: "Connect to Microsoft Teams for messaging, channels, and team data.",
|
|
91283
91575
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/6QM1sVuqarTJAB2UihVNQ9/12b8353c9b022916d72ef0f53349bae2/microsoft-teams-icon.svg",
|
|
91284
|
-
parameters:
|
|
91576
|
+
parameters: parameters34,
|
|
91285
91577
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
91286
91578
|
systemPrompt: {
|
|
91287
91579
|
en: `### Microsoft Teams SDK (TypeScript handler)
|
|
@@ -91431,13 +91723,13 @@ const data = await res.json();
|
|
|
91431
91723
|
- 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
|
|
91432
91724
|
- 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`
|
|
91433
91725
|
},
|
|
91434
|
-
tools:
|
|
91726
|
+
tools: tools34
|
|
91435
91727
|
});
|
|
91436
91728
|
|
|
91437
91729
|
// ../connectors/src/connectors/ms-teams-oauth/tools/request.ts
|
|
91438
|
-
import { z as
|
|
91439
|
-
var
|
|
91440
|
-
var
|
|
91730
|
+
import { z as z38 } from "zod";
|
|
91731
|
+
var BASE_URL16 = "https://graph.microsoft.com";
|
|
91732
|
+
var REQUEST_TIMEOUT_MS27 = 6e4;
|
|
91441
91733
|
var cachedToken14 = null;
|
|
91442
91734
|
async function getProxyToken14(config) {
|
|
91443
91735
|
if (cachedToken14 && cachedToken14.expiresAt > Date.now() + 6e4) {
|
|
@@ -91469,35 +91761,35 @@ async function getProxyToken14(config) {
|
|
|
91469
91761
|
};
|
|
91470
91762
|
return data.token;
|
|
91471
91763
|
}
|
|
91472
|
-
var
|
|
91473
|
-
toolUseIntent:
|
|
91764
|
+
var inputSchema38 = z38.object({
|
|
91765
|
+
toolUseIntent: z38.string().optional().describe(
|
|
91474
91766
|
"Brief description of what you intend to accomplish with this tool call"
|
|
91475
91767
|
),
|
|
91476
|
-
connectionId:
|
|
91477
|
-
method:
|
|
91478
|
-
path:
|
|
91768
|
+
connectionId: z38.string().describe("ID of the Microsoft Teams OAuth connection to use"),
|
|
91769
|
+
method: z38.enum(["GET", "POST", "PATCH", "DELETE"]).describe("HTTP method"),
|
|
91770
|
+
path: z38.string().describe(
|
|
91479
91771
|
"API path appended to https://graph.microsoft.com (e.g., '/v1.0/me/joinedTeams', '/v1.0/teams/{id}/channels')"
|
|
91480
91772
|
),
|
|
91481
|
-
queryParams:
|
|
91482
|
-
body:
|
|
91773
|
+
queryParams: z38.record(z38.string(), z38.string()).optional().describe("Query parameters to append to the URL"),
|
|
91774
|
+
body: z38.record(z38.string(), z38.unknown()).optional().describe("Request body (JSON) for POST/PATCH requests")
|
|
91483
91775
|
});
|
|
91484
|
-
var
|
|
91485
|
-
|
|
91486
|
-
success:
|
|
91487
|
-
status:
|
|
91488
|
-
data:
|
|
91776
|
+
var outputSchema38 = z38.discriminatedUnion("success", [
|
|
91777
|
+
z38.object({
|
|
91778
|
+
success: z38.literal(true),
|
|
91779
|
+
status: z38.number(),
|
|
91780
|
+
data: z38.record(z38.string(), z38.unknown())
|
|
91489
91781
|
}),
|
|
91490
|
-
|
|
91491
|
-
success:
|
|
91492
|
-
error:
|
|
91782
|
+
z38.object({
|
|
91783
|
+
success: z38.literal(false),
|
|
91784
|
+
error: z38.string()
|
|
91493
91785
|
})
|
|
91494
91786
|
]);
|
|
91495
|
-
var
|
|
91787
|
+
var requestTool20 = new ConnectorTool({
|
|
91496
91788
|
name: "request",
|
|
91497
91789
|
description: `Send authenticated requests to the Microsoft Graph API.
|
|
91498
91790
|
Authentication is handled automatically via OAuth proxy.`,
|
|
91499
|
-
inputSchema:
|
|
91500
|
-
outputSchema:
|
|
91791
|
+
inputSchema: inputSchema38,
|
|
91792
|
+
outputSchema: outputSchema38,
|
|
91501
91793
|
async execute({ connectionId, method, path: path5, queryParams, body }, connections, config) {
|
|
91502
91794
|
const connection = connections.find((c6) => c6.id === connectionId);
|
|
91503
91795
|
if (!connection) {
|
|
@@ -91510,7 +91802,7 @@ Authentication is handled automatically via OAuth proxy.`,
|
|
|
91510
91802
|
`[connector-request] ms-teams-oauth/${connection.name}: ${method} ${path5}`
|
|
91511
91803
|
);
|
|
91512
91804
|
try {
|
|
91513
|
-
let url = `${
|
|
91805
|
+
let url = `${BASE_URL16}${path5.startsWith("/") ? "" : "/"}${path5}`;
|
|
91514
91806
|
if (queryParams) {
|
|
91515
91807
|
const searchParams = new URLSearchParams(queryParams);
|
|
91516
91808
|
url += `?${searchParams.toString()}`;
|
|
@@ -91518,7 +91810,7 @@ Authentication is handled automatically via OAuth proxy.`,
|
|
|
91518
91810
|
const token = await getProxyToken14(config.oauthProxy);
|
|
91519
91811
|
const proxyUrl = `https://${config.oauthProxy.sandboxId}.${config.oauthProxy.previewBaseDomain}/_sqcore/connections/${connectionId}/request`;
|
|
91520
91812
|
const controller = new AbortController();
|
|
91521
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
91813
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS27);
|
|
91522
91814
|
try {
|
|
91523
91815
|
const response = await fetch(proxyUrl, {
|
|
91524
91816
|
method: "POST",
|
|
@@ -91550,12 +91842,12 @@ Authentication is handled automatically via OAuth proxy.`,
|
|
|
91550
91842
|
});
|
|
91551
91843
|
|
|
91552
91844
|
// ../connectors/src/connectors/ms-teams-oauth/setup.ts
|
|
91553
|
-
var
|
|
91845
|
+
var requestToolName7 = `microsoft-teams-oauth_${requestTool20.name}`;
|
|
91554
91846
|
var msTeamsOauthOnboarding = new ConnectorOnboarding({
|
|
91555
91847
|
connectionSetupInstructions: {
|
|
91556
91848
|
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
|
|
91557
91849
|
|
|
91558
|
-
1. \`${
|
|
91850
|
+
1. \`${requestToolName7}\` \u3092\u547C\u3073\u51FA\u3057\u3066\u3001\u30E6\u30FC\u30B6\u30FC\u60C5\u5831\u3092\u53D6\u5F97\u3059\u308B:
|
|
91559
91851
|
- \`method\`: \`"GET"\`
|
|
91560
91852
|
- \`path\`: \`"/v1.0/me"\`
|
|
91561
91853
|
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
|
|
@@ -91569,7 +91861,7 @@ var msTeamsOauthOnboarding = new ConnectorOnboarding({
|
|
|
91569
91861
|
- \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`,
|
|
91570
91862
|
en: `Follow these steps exactly. Do NOT make any API requests not listed in the steps below.
|
|
91571
91863
|
|
|
91572
|
-
1. Call \`${
|
|
91864
|
+
1. Call \`${requestToolName7}\` to fetch user info:
|
|
91573
91865
|
- \`method\`: \`"GET"\`
|
|
91574
91866
|
- \`path\`: \`"/v1.0/me"\`
|
|
91575
91867
|
2. If an error is returned, ask the user to check the OAuth connection settings
|
|
@@ -91593,17 +91885,17 @@ var msTeamsOauthOnboarding = new ConnectorOnboarding({
|
|
|
91593
91885
|
});
|
|
91594
91886
|
|
|
91595
91887
|
// ../connectors/src/connectors/ms-teams-oauth/parameters.ts
|
|
91596
|
-
var
|
|
91888
|
+
var parameters35 = {};
|
|
91597
91889
|
|
|
91598
91890
|
// ../connectors/src/connectors/ms-teams-oauth/index.ts
|
|
91599
|
-
var
|
|
91891
|
+
var tools35 = { request: requestTool20 };
|
|
91600
91892
|
var msTeamsOauthConnector = new ConnectorPlugin({
|
|
91601
91893
|
slug: "microsoft-teams",
|
|
91602
91894
|
authType: AUTH_TYPES.OAUTH,
|
|
91603
91895
|
name: "Microsoft Teams (OAuth)",
|
|
91604
91896
|
description: "Connect to Microsoft Teams for messaging, channels, and team data using OAuth.",
|
|
91605
91897
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/6QM1sVuqarTJAB2UihVNQ9/12b8353c9b022916d72ef0f53349bae2/microsoft-teams-icon.svg",
|
|
91606
|
-
parameters:
|
|
91898
|
+
parameters: parameters35,
|
|
91607
91899
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
91608
91900
|
onboarding: msTeamsOauthOnboarding,
|
|
91609
91901
|
proxyPolicy: {
|
|
@@ -91706,7 +91998,7 @@ const res = await teams.request("/v1.0/me/joinedTeams");
|
|
|
91706
91998
|
const data = await res.json();
|
|
91707
91999
|
\`\`\``
|
|
91708
92000
|
},
|
|
91709
|
-
tools:
|
|
92001
|
+
tools: tools35,
|
|
91710
92002
|
async checkConnection(_params, config) {
|
|
91711
92003
|
const { proxyFetch } = config;
|
|
91712
92004
|
try {
|
|
@@ -91743,11 +92035,11 @@ var hubspotOnboarding2 = new ConnectorOnboarding({
|
|
|
91743
92035
|
});
|
|
91744
92036
|
|
|
91745
92037
|
// ../connectors/src/connectors/hubspot/parameters.ts
|
|
91746
|
-
var
|
|
92038
|
+
var parameters36 = {
|
|
91747
92039
|
apiKey: new ParameterDefinition({
|
|
91748
92040
|
slug: "api-key",
|
|
91749
|
-
name: "
|
|
91750
|
-
description: "Your HubSpot
|
|
92041
|
+
name: "Private App Access Token",
|
|
92042
|
+
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.",
|
|
91751
92043
|
envVarBaseKey: "HUBSPOT_API_KEY",
|
|
91752
92044
|
type: "text",
|
|
91753
92045
|
secret: true,
|
|
@@ -91756,41 +92048,41 @@ var parameters35 = {
|
|
|
91756
92048
|
};
|
|
91757
92049
|
|
|
91758
92050
|
// ../connectors/src/connectors/hubspot/tools/request.ts
|
|
91759
|
-
import { z as
|
|
91760
|
-
var
|
|
91761
|
-
var
|
|
91762
|
-
var
|
|
91763
|
-
toolUseIntent:
|
|
92051
|
+
import { z as z39 } from "zod";
|
|
92052
|
+
var BASE_URL17 = "https://api.hubapi.com";
|
|
92053
|
+
var REQUEST_TIMEOUT_MS28 = 6e4;
|
|
92054
|
+
var inputSchema39 = z39.object({
|
|
92055
|
+
toolUseIntent: z39.string().optional().describe(
|
|
91764
92056
|
"Brief description of what you intend to accomplish with this tool call"
|
|
91765
92057
|
),
|
|
91766
|
-
connectionId:
|
|
91767
|
-
method:
|
|
92058
|
+
connectionId: z39.string().describe("ID of the HubSpot connection to use"),
|
|
92059
|
+
method: z39.enum(["GET", "POST", "PATCH", "DELETE"]).describe(
|
|
91768
92060
|
"HTTP method. GET for reading resources, POST for creating or searching, PATCH for updating, DELETE for removing."
|
|
91769
92061
|
),
|
|
91770
|
-
path:
|
|
92062
|
+
path: z39.string().describe(
|
|
91771
92063
|
"API path appended to https://api.hubapi.com (e.g., '/crm/v3/objects/contacts', '/crm/v3/objects/deals', '/crm/v3/objects/contacts/search')"
|
|
91772
92064
|
),
|
|
91773
|
-
body:
|
|
92065
|
+
body: z39.record(z39.string(), z39.unknown()).optional().describe("Request body (JSON) for POST/PATCH requests")
|
|
91774
92066
|
});
|
|
91775
|
-
var
|
|
91776
|
-
|
|
91777
|
-
success:
|
|
91778
|
-
status:
|
|
91779
|
-
data:
|
|
92067
|
+
var outputSchema39 = z39.discriminatedUnion("success", [
|
|
92068
|
+
z39.object({
|
|
92069
|
+
success: z39.literal(true),
|
|
92070
|
+
status: z39.number(),
|
|
92071
|
+
data: z39.record(z39.string(), z39.unknown())
|
|
91780
92072
|
}),
|
|
91781
|
-
|
|
91782
|
-
success:
|
|
91783
|
-
error:
|
|
92073
|
+
z39.object({
|
|
92074
|
+
success: z39.literal(false),
|
|
92075
|
+
error: z39.string()
|
|
91784
92076
|
})
|
|
91785
92077
|
]);
|
|
91786
|
-
var
|
|
92078
|
+
var requestTool21 = new ConnectorTool({
|
|
91787
92079
|
name: "request",
|
|
91788
92080
|
description: `Send authenticated requests to the HubSpot API.
|
|
91789
92081
|
Authentication is handled automatically using the Personal Access Key (Bearer token).
|
|
91790
92082
|
Use this tool for all HubSpot API interactions: querying contacts, deals, companies, tickets, and other CRM objects.
|
|
91791
92083
|
Use the search endpoint (POST /crm/v3/objects/{objectType}/search) for complex queries with filters.`,
|
|
91792
|
-
inputSchema:
|
|
91793
|
-
outputSchema:
|
|
92084
|
+
inputSchema: inputSchema39,
|
|
92085
|
+
outputSchema: outputSchema39,
|
|
91794
92086
|
async execute({ connectionId, method, path: path5, body }, connections) {
|
|
91795
92087
|
const connection = connections.find((c6) => c6.id === connectionId);
|
|
91796
92088
|
if (!connection) {
|
|
@@ -91803,10 +92095,10 @@ Use the search endpoint (POST /crm/v3/objects/{objectType}/search) for complex q
|
|
|
91803
92095
|
`[connector-request] hubspot/${connection.name}: ${method} ${path5}`
|
|
91804
92096
|
);
|
|
91805
92097
|
try {
|
|
91806
|
-
const apiKey =
|
|
91807
|
-
const url = `${
|
|
92098
|
+
const apiKey = parameters36.apiKey.getValue(connection);
|
|
92099
|
+
const url = `${BASE_URL17}${path5.startsWith("/") ? "" : "/"}${path5}`;
|
|
91808
92100
|
const controller = new AbortController();
|
|
91809
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
92101
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS28);
|
|
91810
92102
|
try {
|
|
91811
92103
|
const response = await fetch(url, {
|
|
91812
92104
|
method,
|
|
@@ -91834,14 +92126,14 @@ Use the search endpoint (POST /crm/v3/objects/{objectType}/search) for complex q
|
|
|
91834
92126
|
});
|
|
91835
92127
|
|
|
91836
92128
|
// ../connectors/src/connectors/hubspot/index.ts
|
|
91837
|
-
var
|
|
92129
|
+
var tools36 = { request: requestTool21 };
|
|
91838
92130
|
var hubspotConnector = new ConnectorPlugin({
|
|
91839
92131
|
slug: "hubspot",
|
|
91840
|
-
authType:
|
|
92132
|
+
authType: null,
|
|
91841
92133
|
name: "HubSpot",
|
|
91842
92134
|
description: "Connect to HubSpot CRM for contacts, deals, companies, and marketing data using a Personal Access Key.",
|
|
91843
92135
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/5UcSkKkzhUMA4RsM45ynuo/43b967e36915ca0fc5d277684b204320/hubspot.svg",
|
|
91844
|
-
parameters:
|
|
92136
|
+
parameters: parameters36,
|
|
91845
92137
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
91846
92138
|
onboarding: hubspotOnboarding2,
|
|
91847
92139
|
systemPrompt: {
|
|
@@ -91978,7 +92270,7 @@ export default async function handler(c: Context) {
|
|
|
91978
92270
|
- \`limit\` \u2014 \u30DA\u30FC\u30B8\u3042\u305F\u308A\u306E\u6700\u5927\u7D50\u679C\u6570\uFF08\u6700\u5927100\uFF09
|
|
91979
92271
|
- \`after\` \u2014 \u30DA\u30FC\u30B8\u30CD\u30FC\u30B7\u30E7\u30F3\u30AA\u30D5\u30BB\u30C3\u30C8`
|
|
91980
92272
|
},
|
|
91981
|
-
tools:
|
|
92273
|
+
tools: tools36
|
|
91982
92274
|
});
|
|
91983
92275
|
|
|
91984
92276
|
// ../connectors/src/connectors/jira/setup.ts
|
|
@@ -91994,7 +92286,7 @@ var jiraOnboarding = new ConnectorOnboarding({
|
|
|
91994
92286
|
});
|
|
91995
92287
|
|
|
91996
92288
|
// ../connectors/src/connectors/jira/parameters.ts
|
|
91997
|
-
var
|
|
92289
|
+
var parameters37 = {
|
|
91998
92290
|
instanceUrl: new ParameterDefinition({
|
|
91999
92291
|
slug: "instance-url",
|
|
92000
92292
|
name: "Jira Instance URL",
|
|
@@ -92025,34 +92317,34 @@ var parameters36 = {
|
|
|
92025
92317
|
};
|
|
92026
92318
|
|
|
92027
92319
|
// ../connectors/src/connectors/jira/tools/request.ts
|
|
92028
|
-
import { z as
|
|
92029
|
-
var
|
|
92030
|
-
var
|
|
92031
|
-
toolUseIntent:
|
|
92032
|
-
connectionId:
|
|
92033
|
-
method:
|
|
92034
|
-
path:
|
|
92035
|
-
body:
|
|
92320
|
+
import { z as z40 } from "zod";
|
|
92321
|
+
var REQUEST_TIMEOUT_MS29 = 6e4;
|
|
92322
|
+
var inputSchema40 = z40.object({
|
|
92323
|
+
toolUseIntent: z40.string().optional().describe("Brief description of what you intend to accomplish with this tool call"),
|
|
92324
|
+
connectionId: z40.string().describe("ID of the Jira connection to use"),
|
|
92325
|
+
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."),
|
|
92326
|
+
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')."),
|
|
92327
|
+
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).")
|
|
92036
92328
|
});
|
|
92037
|
-
var
|
|
92038
|
-
|
|
92039
|
-
success:
|
|
92040
|
-
status:
|
|
92041
|
-
data:
|
|
92329
|
+
var outputSchema40 = z40.discriminatedUnion("success", [
|
|
92330
|
+
z40.object({
|
|
92331
|
+
success: z40.literal(true),
|
|
92332
|
+
status: z40.number(),
|
|
92333
|
+
data: z40.union([z40.record(z40.string(), z40.unknown()), z40.array(z40.unknown())])
|
|
92042
92334
|
}),
|
|
92043
|
-
|
|
92044
|
-
success:
|
|
92045
|
-
error:
|
|
92335
|
+
z40.object({
|
|
92336
|
+
success: z40.literal(false),
|
|
92337
|
+
error: z40.string()
|
|
92046
92338
|
})
|
|
92047
92339
|
]);
|
|
92048
|
-
var
|
|
92340
|
+
var requestTool22 = new ConnectorTool({
|
|
92049
92341
|
name: "request",
|
|
92050
92342
|
description: `Send authenticated requests to the Jira Cloud REST API (v3).
|
|
92051
92343
|
Authentication is handled automatically using Basic Auth (email + API token).
|
|
92052
92344
|
Use this tool for all Jira operations: listing projects, searching issues with JQL, creating/updating issues, managing transitions, and adding comments.
|
|
92053
92345
|
The base URL and authentication credentials are configured per connection \u2014 only specify the API path relative to /rest/api/3/.`,
|
|
92054
|
-
inputSchema:
|
|
92055
|
-
outputSchema:
|
|
92346
|
+
inputSchema: inputSchema40,
|
|
92347
|
+
outputSchema: outputSchema40,
|
|
92056
92348
|
async execute({ connectionId, method, path: path5, body }, connections) {
|
|
92057
92349
|
const connection = connections.find((c6) => c6.id === connectionId);
|
|
92058
92350
|
if (!connection) {
|
|
@@ -92060,13 +92352,13 @@ The base URL and authentication credentials are configured per connection \u2014
|
|
|
92060
92352
|
}
|
|
92061
92353
|
console.log(`[connector-request] jira-api-key/${connection.name}: ${method} ${path5}`);
|
|
92062
92354
|
try {
|
|
92063
|
-
const instanceUrl =
|
|
92064
|
-
const email =
|
|
92065
|
-
const apiToken =
|
|
92355
|
+
const instanceUrl = parameters37.instanceUrl.getValue(connection);
|
|
92356
|
+
const email = parameters37.email.getValue(connection);
|
|
92357
|
+
const apiToken = parameters37.apiToken.getValue(connection);
|
|
92066
92358
|
const baseUrl = `${instanceUrl.replace(/\/+$/, "")}/rest/api/3/${path5}`;
|
|
92067
92359
|
const credentials = Buffer.from(`${email}:${apiToken}`).toString("base64");
|
|
92068
92360
|
const controller = new AbortController();
|
|
92069
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
92361
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS29);
|
|
92070
92362
|
try {
|
|
92071
92363
|
const headers = {
|
|
92072
92364
|
Authorization: `Basic ${credentials}`,
|
|
@@ -92102,14 +92394,14 @@ The base URL and authentication credentials are configured per connection \u2014
|
|
|
92102
92394
|
});
|
|
92103
92395
|
|
|
92104
92396
|
// ../connectors/src/connectors/jira/index.ts
|
|
92105
|
-
var
|
|
92397
|
+
var tools37 = { request: requestTool22 };
|
|
92106
92398
|
var jiraConnector = new ConnectorPlugin({
|
|
92107
92399
|
slug: "jira",
|
|
92108
92400
|
authType: AUTH_TYPES.API_KEY,
|
|
92109
92401
|
name: "Jira (API Key)",
|
|
92110
92402
|
description: "Connect to Jira Cloud for issue tracking, project management, and workflow data retrieval using API token authentication.",
|
|
92111
92403
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/5zt4yjb36szSPPkCECYlPL/bc3e7223dc84fb16a1cce53a80f5afcc/jira.png",
|
|
92112
|
-
parameters:
|
|
92404
|
+
parameters: parameters37,
|
|
92113
92405
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
92114
92406
|
onboarding: jiraOnboarding,
|
|
92115
92407
|
systemPrompt: {
|
|
@@ -92254,7 +92546,7 @@ await jira.request("/rest/api/3/issue", {
|
|
|
92254
92546
|
- \u95A2\u6570: currentUser(), startOfDay(), endOfWeek()
|
|
92255
92547
|
- \u30C6\u30AD\u30B9\u30C8\u691C\u7D22: summary ~ "\u30AD\u30FC\u30EF\u30FC\u30C9"`
|
|
92256
92548
|
},
|
|
92257
|
-
tools:
|
|
92549
|
+
tools: tools37
|
|
92258
92550
|
});
|
|
92259
92551
|
|
|
92260
92552
|
// ../connectors/src/connectors/linear/setup.ts
|
|
@@ -92274,7 +92566,7 @@ var linearOnboarding = new ConnectorOnboarding({
|
|
|
92274
92566
|
});
|
|
92275
92567
|
|
|
92276
92568
|
// ../connectors/src/connectors/linear/parameters.ts
|
|
92277
|
-
var
|
|
92569
|
+
var parameters38 = {
|
|
92278
92570
|
apiKey: new ParameterDefinition({
|
|
92279
92571
|
slug: "api-key",
|
|
92280
92572
|
name: "Linear API Key",
|
|
@@ -92287,39 +92579,39 @@ var parameters37 = {
|
|
|
92287
92579
|
};
|
|
92288
92580
|
|
|
92289
92581
|
// ../connectors/src/connectors/linear/tools/request.ts
|
|
92290
|
-
import { z as
|
|
92291
|
-
var
|
|
92292
|
-
var
|
|
92293
|
-
var
|
|
92294
|
-
toolUseIntent:
|
|
92582
|
+
import { z as z41 } from "zod";
|
|
92583
|
+
var BASE_URL18 = "https://api.linear.app/graphql";
|
|
92584
|
+
var REQUEST_TIMEOUT_MS30 = 6e4;
|
|
92585
|
+
var inputSchema41 = z41.object({
|
|
92586
|
+
toolUseIntent: z41.string().optional().describe(
|
|
92295
92587
|
"Brief description of what you intend to accomplish with this tool call"
|
|
92296
92588
|
),
|
|
92297
|
-
connectionId:
|
|
92298
|
-
query:
|
|
92589
|
+
connectionId: z41.string().describe("ID of the Linear connection to use"),
|
|
92590
|
+
query: z41.string().describe(
|
|
92299
92591
|
`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.`
|
|
92300
92592
|
),
|
|
92301
|
-
variables:
|
|
92593
|
+
variables: z41.record(z41.string(), z41.unknown()).optional().describe(
|
|
92302
92594
|
'Optional GraphQL variables object. Use with parameterized queries, e.g. { "teamId": "abc-123", "first": 10 }'
|
|
92303
92595
|
)
|
|
92304
92596
|
});
|
|
92305
|
-
var
|
|
92306
|
-
|
|
92307
|
-
success:
|
|
92308
|
-
data:
|
|
92597
|
+
var outputSchema41 = z41.discriminatedUnion("success", [
|
|
92598
|
+
z41.object({
|
|
92599
|
+
success: z41.literal(true),
|
|
92600
|
+
data: z41.record(z41.string(), z41.unknown())
|
|
92309
92601
|
}),
|
|
92310
|
-
|
|
92311
|
-
success:
|
|
92312
|
-
error:
|
|
92602
|
+
z41.object({
|
|
92603
|
+
success: z41.literal(false),
|
|
92604
|
+
error: z41.string()
|
|
92313
92605
|
})
|
|
92314
92606
|
]);
|
|
92315
|
-
var
|
|
92607
|
+
var requestTool23 = new ConnectorTool({
|
|
92316
92608
|
name: "request",
|
|
92317
92609
|
description: `Send authenticated GraphQL queries and mutations to the Linear API (https://api.linear.app/graphql).
|
|
92318
92610
|
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.
|
|
92319
92611
|
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".
|
|
92320
92612
|
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.`,
|
|
92321
|
-
inputSchema:
|
|
92322
|
-
outputSchema:
|
|
92613
|
+
inputSchema: inputSchema41,
|
|
92614
|
+
outputSchema: outputSchema41,
|
|
92323
92615
|
async execute({ connectionId, query, variables }, connections) {
|
|
92324
92616
|
const connection = connections.find((c6) => c6.id === connectionId);
|
|
92325
92617
|
if (!connection) {
|
|
@@ -92332,13 +92624,13 @@ Archived resources are hidden by default; pass includeArchived: true in query ar
|
|
|
92332
92624
|
`[connector-request] linear/${connection.name}: GraphQL request`
|
|
92333
92625
|
);
|
|
92334
92626
|
try {
|
|
92335
|
-
const apiKey =
|
|
92627
|
+
const apiKey = parameters38.apiKey.getValue(connection);
|
|
92336
92628
|
const controller = new AbortController();
|
|
92337
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
92629
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS30);
|
|
92338
92630
|
try {
|
|
92339
92631
|
const body = { query };
|
|
92340
92632
|
if (variables) body.variables = variables;
|
|
92341
|
-
const response = await fetch(
|
|
92633
|
+
const response = await fetch(BASE_URL18, {
|
|
92342
92634
|
method: "POST",
|
|
92343
92635
|
headers: {
|
|
92344
92636
|
Authorization: apiKey,
|
|
@@ -92377,14 +92669,14 @@ Archived resources are hidden by default; pass includeArchived: true in query ar
|
|
|
92377
92669
|
});
|
|
92378
92670
|
|
|
92379
92671
|
// ../connectors/src/connectors/linear/index.ts
|
|
92380
|
-
var
|
|
92672
|
+
var tools38 = { request: requestTool23 };
|
|
92381
92673
|
var linearConnector = new ConnectorPlugin({
|
|
92382
92674
|
slug: "linear",
|
|
92383
92675
|
authType: null,
|
|
92384
92676
|
name: "Linear",
|
|
92385
92677
|
description: "Connect to Linear for project management data \u2014 issues, projects, teams, cycles, and more.",
|
|
92386
92678
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/6oR77h6TeniXGdmnp2P2LX/a2ac8630ae52d164363adb0c695d9f0b/linear.webp",
|
|
92387
|
-
parameters:
|
|
92679
|
+
parameters: parameters38,
|
|
92388
92680
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
92389
92681
|
onboarding: linearOnboarding,
|
|
92390
92682
|
systemPrompt: {
|
|
@@ -92511,7 +92803,7 @@ export default async function handler(c: Context) {
|
|
|
92511
92803
|
- \`mutation { issueUpdate(id: "...", input: { stateId: "..." }) { success issue { id title state { name } } } }\` \u2014 Issue\u66F4\u65B0
|
|
92512
92804
|
- \`mutation { commentCreate(input: { issueId: "...", body: "..." }) { success comment { id body } } }\` \u2014 \u30B3\u30E1\u30F3\u30C8\u8FFD\u52A0`
|
|
92513
92805
|
},
|
|
92514
|
-
tools:
|
|
92806
|
+
tools: tools38
|
|
92515
92807
|
});
|
|
92516
92808
|
|
|
92517
92809
|
// ../connectors/src/connectors/asana/setup.ts
|
|
@@ -92529,7 +92821,7 @@ var asanaOnboarding = new ConnectorOnboarding({
|
|
|
92529
92821
|
});
|
|
92530
92822
|
|
|
92531
92823
|
// ../connectors/src/connectors/asana/parameters.ts
|
|
92532
|
-
var
|
|
92824
|
+
var parameters39 = {
|
|
92533
92825
|
personalAccessToken: new ParameterDefinition({
|
|
92534
92826
|
slug: "personal-access-token",
|
|
92535
92827
|
name: "Asana Personal Access Token",
|
|
@@ -92542,36 +92834,36 @@ var parameters38 = {
|
|
|
92542
92834
|
};
|
|
92543
92835
|
|
|
92544
92836
|
// ../connectors/src/connectors/asana/tools/request.ts
|
|
92545
|
-
import { z as
|
|
92546
|
-
var
|
|
92547
|
-
var
|
|
92548
|
-
var
|
|
92549
|
-
toolUseIntent:
|
|
92837
|
+
import { z as z42 } from "zod";
|
|
92838
|
+
var BASE_URL19 = "https://app.asana.com/api/1.0";
|
|
92839
|
+
var REQUEST_TIMEOUT_MS31 = 6e4;
|
|
92840
|
+
var inputSchema42 = z42.object({
|
|
92841
|
+
toolUseIntent: z42.string().optional().describe(
|
|
92550
92842
|
"Brief description of what you intend to accomplish with this tool call"
|
|
92551
92843
|
),
|
|
92552
|
-
connectionId:
|
|
92553
|
-
method:
|
|
92844
|
+
connectionId: z42.string().describe("ID of the Asana connection to use"),
|
|
92845
|
+
method: z42.enum(["GET", "POST", "PUT", "DELETE"]).describe(
|
|
92554
92846
|
"HTTP method. GET for reading resources, POST for creating, PUT for updating, DELETE for removing."
|
|
92555
92847
|
),
|
|
92556
|
-
path:
|
|
92848
|
+
path: z42.string().describe(
|
|
92557
92849
|
"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')."
|
|
92558
92850
|
),
|
|
92559
|
-
body:
|
|
92851
|
+
body: z42.record(z42.string(), z42.unknown()).optional().describe(
|
|
92560
92852
|
'Request body (JSON) for POST/PUT requests. Wrap payload in a "data" key (e.g., { "data": { "name": "My Task", "workspace": "WORKSPACE_GID" } }).'
|
|
92561
92853
|
)
|
|
92562
92854
|
});
|
|
92563
|
-
var
|
|
92564
|
-
|
|
92565
|
-
success:
|
|
92566
|
-
status:
|
|
92567
|
-
data:
|
|
92855
|
+
var outputSchema42 = z42.discriminatedUnion("success", [
|
|
92856
|
+
z42.object({
|
|
92857
|
+
success: z42.literal(true),
|
|
92858
|
+
status: z42.number(),
|
|
92859
|
+
data: z42.record(z42.string(), z42.unknown())
|
|
92568
92860
|
}),
|
|
92569
|
-
|
|
92570
|
-
success:
|
|
92571
|
-
error:
|
|
92861
|
+
z42.object({
|
|
92862
|
+
success: z42.literal(false),
|
|
92863
|
+
error: z42.string()
|
|
92572
92864
|
})
|
|
92573
92865
|
]);
|
|
92574
|
-
var
|
|
92866
|
+
var requestTool24 = new ConnectorTool({
|
|
92575
92867
|
name: "request",
|
|
92576
92868
|
description: `Send authenticated requests to the Asana REST API.
|
|
92577
92869
|
Authentication is handled automatically using the Personal Access Token (Bearer token).
|
|
@@ -92592,8 +92884,8 @@ Common endpoints:
|
|
|
92592
92884
|
- GET /tasks/{task_gid}/stories \u2014 Get task comments/stories
|
|
92593
92885
|
|
|
92594
92886
|
Pagination: Use limit (1-100) and offset query parameters. The response includes next_page.offset for the next page.`,
|
|
92595
|
-
inputSchema:
|
|
92596
|
-
outputSchema:
|
|
92887
|
+
inputSchema: inputSchema42,
|
|
92888
|
+
outputSchema: outputSchema42,
|
|
92597
92889
|
async execute({ connectionId, method, path: path5, body }, connections) {
|
|
92598
92890
|
const connection = connections.find((c6) => c6.id === connectionId);
|
|
92599
92891
|
if (!connection) {
|
|
@@ -92606,10 +92898,10 @@ Pagination: Use limit (1-100) and offset query parameters. The response includes
|
|
|
92606
92898
|
`[connector-request] asana/${connection.name}: ${method} ${path5}`
|
|
92607
92899
|
);
|
|
92608
92900
|
try {
|
|
92609
|
-
const token =
|
|
92610
|
-
const url = `${
|
|
92901
|
+
const token = parameters39.personalAccessToken.getValue(connection);
|
|
92902
|
+
const url = `${BASE_URL19}${path5}`;
|
|
92611
92903
|
const controller = new AbortController();
|
|
92612
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
92904
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS31);
|
|
92613
92905
|
try {
|
|
92614
92906
|
const response = await fetch(url, {
|
|
92615
92907
|
method,
|
|
@@ -92639,14 +92931,14 @@ Pagination: Use limit (1-100) and offset query parameters. The response includes
|
|
|
92639
92931
|
});
|
|
92640
92932
|
|
|
92641
92933
|
// ../connectors/src/connectors/asana/index.ts
|
|
92642
|
-
var
|
|
92934
|
+
var tools39 = { request: requestTool24 };
|
|
92643
92935
|
var asanaConnector = new ConnectorPlugin({
|
|
92644
92936
|
slug: "asana",
|
|
92645
92937
|
authType: null,
|
|
92646
92938
|
name: "Asana",
|
|
92647
92939
|
description: "Connect to Asana for project management, task tracking, and team collaboration data.",
|
|
92648
92940
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/3eIdaoqzIIZs2Md0OoDJMf/2fa66e0841adb985da4d3120466f3ec4/asana-icon.png",
|
|
92649
|
-
parameters:
|
|
92941
|
+
parameters: parameters39,
|
|
92650
92942
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
92651
92943
|
onboarding: asanaOnboarding,
|
|
92652
92944
|
systemPrompt: {
|
|
@@ -92756,350 +93048,76 @@ SDK\u30E1\u30BD\u30C3\u30C9 (\`connection(connectionId)\` \u3067\u4F5C\u6210\u30
|
|
|
92756
93048
|
- \`client.listUsers(workspaceGid, options?)\` \u2014 \u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u5185\u306E\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7
|
|
92757
93049
|
|
|
92758
93050
|
\`\`\`ts
|
|
92759
|
-
import type { Context } from "hono";
|
|
92760
|
-
import { connection } from "@squadbase/vite-server/connectors/asana";
|
|
92761
|
-
|
|
92762
|
-
const asana = connection("<connectionId>");
|
|
92763
|
-
|
|
92764
|
-
export default async function handler(c: Context) {
|
|
92765
|
-
const { projectGid } = await c.req.json<{ projectGid: string }>();
|
|
92766
|
-
|
|
92767
|
-
const { data: tasks } = await asana.listTasks(projectGid, {
|
|
92768
|
-
opt_fields: ["name", "completed", "assignee.name", "due_on"],
|
|
92769
|
-
limit: 50,
|
|
92770
|
-
});
|
|
92771
|
-
|
|
92772
|
-
return c.json({ tasks });
|
|
92773
|
-
}
|
|
92774
|
-
\`\`\`
|
|
92775
|
-
|
|
92776
|
-
### Asana REST API \u30EA\u30D5\u30A1\u30EC\u30F3\u30B9
|
|
92777
|
-
|
|
92778
|
-
- \u30D9\u30FC\u30B9URL: \`https://app.asana.com/api/1.0\`
|
|
92779
|
-
- \u8A8D\u8A3C: Bearer\u30C8\u30FC\u30AF\u30F3\uFF08Personal Access Token\u3001\u81EA\u52D5\u8A2D\u5B9A\uFF09
|
|
92780
|
-
- \u66F8\u304D\u8FBC\u307F\u30EA\u30AF\u30A8\u30B9\u30C8\u306F\u30DA\u30A4\u30ED\u30FC\u30C9\u3092 \`data\` \u30AD\u30FC\u3067\u56F2\u3080: \`{ "data": { ... } }\`
|
|
92781
|
-
- \`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
|
|
92782
|
-
- \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
|
|
92783
|
-
|
|
92784
|
-
#### \u30EA\u30BD\u30FC\u30B9\u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8
|
|
92785
|
-
|
|
92786
|
-
**\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9**
|
|
92787
|
-
- GET \`/workspaces\` \u2014 \u5168\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u306E\u4E00\u89A7
|
|
92788
|
-
|
|
92789
|
-
**\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8**
|
|
92790
|
-
- GET \`/projects?workspace=WORKSPACE_GID\` \u2014 \u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u5185\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u4E00\u89A7
|
|
92791
|
-
- GET \`/projects/{project_gid}\` \u2014 \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u53D6\u5F97
|
|
92792
|
-
- POST \`/projects\` \u2014 \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u4F5C\u6210
|
|
92793
|
-
- PUT \`/projects/{project_gid}\` \u2014 \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u66F4\u65B0
|
|
92794
|
-
|
|
92795
|
-
**\u30BF\u30B9\u30AF**
|
|
92796
|
-
- 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
|
|
92797
|
-
- GET \`/tasks/{task_gid}\` \u2014 \u30BF\u30B9\u30AF\u306E\u53D6\u5F97
|
|
92798
|
-
- POST \`/tasks\` \u2014 \u30BF\u30B9\u30AF\u306E\u4F5C\u6210\uFF08body\u306Bworkspace\u307E\u305F\u306Fprojects\u304C\u5FC5\u8981\uFF09
|
|
92799
|
-
- PUT \`/tasks/{task_gid}\` \u2014 \u30BF\u30B9\u30AF\u306E\u66F4\u65B0
|
|
92800
|
-
- DELETE \`/tasks/{task_gid}\` \u2014 \u30BF\u30B9\u30AF\u306E\u524A\u9664
|
|
92801
|
-
- POST \`/tasks/{task_gid}/subtasks\` \u2014 \u30B5\u30D6\u30BF\u30B9\u30AF\u306E\u4F5C\u6210
|
|
92802
|
-
- GET \`/tasks/{task_gid}/subtasks\` \u2014 \u30B5\u30D6\u30BF\u30B9\u30AF\u306E\u4E00\u89A7
|
|
92803
|
-
|
|
92804
|
-
**\u30BB\u30AF\u30B7\u30E7\u30F3**
|
|
92805
|
-
- GET \`/sections?project=PROJECT_GID\` \u2014 \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u5185\u306E\u30BB\u30AF\u30B7\u30E7\u30F3\u4E00\u89A7
|
|
92806
|
-
- POST \`/sections/{section_gid}/addTask\` \u2014 \u30BB\u30AF\u30B7\u30E7\u30F3\u306B\u30BF\u30B9\u30AF\u3092\u8FFD\u52A0
|
|
92807
|
-
|
|
92808
|
-
**\u30E6\u30FC\u30B6\u30FC**
|
|
92809
|
-
- GET \`/users?workspace=WORKSPACE_GID\` \u2014 \u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u5185\u306E\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7
|
|
92810
|
-
- GET \`/users/me\` \u2014 \u8A8D\u8A3C\u30E6\u30FC\u30B6\u30FC\u306E\u53D6\u5F97
|
|
92811
|
-
- GET \`/users/{user_gid}\` \u2014 \u30E6\u30FC\u30B6\u30FC\u306E\u53D6\u5F97
|
|
92812
|
-
|
|
92813
|
-
**\u30BF\u30B0**
|
|
92814
|
-
- GET \`/tags?workspace=WORKSPACE_GID\` \u2014 \u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u5185\u306E\u30BF\u30B0\u4E00\u89A7
|
|
92815
|
-
|
|
92816
|
-
**\u30B9\u30C8\u30FC\u30EA\u30FC\uFF08\u30B3\u30E1\u30F3\u30C8\uFF09**
|
|
92817
|
-
- GET \`/tasks/{task_gid}/stories\` \u2014 \u30BF\u30B9\u30AF\u306E\u30B3\u30E1\u30F3\u30C8/\u30B9\u30C8\u30FC\u30EA\u30FC\u4E00\u89A7
|
|
92818
|
-
- POST \`/tasks/{task_gid}/stories\` \u2014 \u30BF\u30B9\u30AF\u306B\u30B3\u30E1\u30F3\u30C8\u3092\u8FFD\u52A0
|
|
92819
|
-
|
|
92820
|
-
**\u691C\u7D22**
|
|
92821
|
-
- GET \`/workspaces/{workspace_gid}/tasks/search?text=QUERY\` \u2014 \u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u5185\u306E\u30BF\u30B9\u30AF\u691C\u7D22
|
|
92822
|
-
|
|
92823
|
-
#### \u3088\u304F\u4F7F\u3046opt_fields
|
|
92824
|
-
- \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
|
|
92825
|
-
- \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8: name, archived, created_at, modified_at, owner, owner.name, team, team.name, members
|
|
92826
|
-
- \u30E6\u30FC\u30B6\u30FC: name, email, photo`
|
|
92827
|
-
},
|
|
92828
|
-
tools: tools38
|
|
92829
|
-
});
|
|
92830
|
-
|
|
92831
|
-
// ../connectors/src/connectors/trino/setup.ts
|
|
92832
|
-
var trinoOnboarding = new ConnectorOnboarding({
|
|
92833
|
-
dataOverviewInstructions: {
|
|
92834
|
-
en: `1. Use executeQuery to list catalogs: \`SHOW CATALOGS\`
|
|
92835
|
-
2. Use executeQuery to list schemas in a catalog: \`SHOW SCHEMAS IN catalog_name\`
|
|
92836
|
-
3. Use executeQuery to list tables in a schema: \`SHOW TABLES IN catalog_name.schema_name\`
|
|
92837
|
-
4. For key tables, use executeQuery to get column info: \`DESCRIBE catalog_name.schema_name.table_name\`
|
|
92838
|
-
5. Sample up to 3 tables with \`SELECT * FROM catalog_name.schema_name.table_name LIMIT 5\` if column info alone is insufficient`,
|
|
92839
|
-
ja: `1. executeQuery \u3067\u30AB\u30BF\u30ED\u30B0\u4E00\u89A7\u3092\u53D6\u5F97: \`SHOW CATALOGS\`
|
|
92840
|
-
2. executeQuery \u3067\u30B9\u30AD\u30FC\u30DE\u4E00\u89A7\u3092\u53D6\u5F97: \`SHOW SCHEMAS IN catalog_name\`
|
|
92841
|
-
3. executeQuery \u3067\u30C6\u30FC\u30D6\u30EB\u4E00\u89A7\u3092\u53D6\u5F97: \`SHOW TABLES IN catalog_name.schema_name\`
|
|
92842
|
-
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\`
|
|
92843
|
-
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`
|
|
92844
|
-
}
|
|
92845
|
-
});
|
|
92846
|
-
|
|
92847
|
-
// ../connectors/src/connectors/trino/parameters.ts
|
|
92848
|
-
var parameters39 = {
|
|
92849
|
-
host: new ParameterDefinition({
|
|
92850
|
-
slug: "host",
|
|
92851
|
-
name: "Trino Server URL",
|
|
92852
|
-
description: "The Trino server URL (e.g., https://trino.example.com:8443).",
|
|
92853
|
-
envVarBaseKey: "TRINO_HOST",
|
|
92854
|
-
type: "text",
|
|
92855
|
-
secret: false,
|
|
92856
|
-
required: true
|
|
92857
|
-
}),
|
|
92858
|
-
user: new ParameterDefinition({
|
|
92859
|
-
slug: "user",
|
|
92860
|
-
name: "Trino User",
|
|
92861
|
-
description: "The username for Trino authentication.",
|
|
92862
|
-
envVarBaseKey: "TRINO_USER",
|
|
92863
|
-
type: "text",
|
|
92864
|
-
secret: false,
|
|
92865
|
-
required: true
|
|
92866
|
-
}),
|
|
92867
|
-
password: new ParameterDefinition({
|
|
92868
|
-
slug: "password",
|
|
92869
|
-
name: "Trino Password",
|
|
92870
|
-
description: "The password for Trino authentication. Leave empty if not required.",
|
|
92871
|
-
envVarBaseKey: "TRINO_PASSWORD",
|
|
92872
|
-
type: "text",
|
|
92873
|
-
secret: true,
|
|
92874
|
-
required: false
|
|
92875
|
-
}),
|
|
92876
|
-
catalog: new ParameterDefinition({
|
|
92877
|
-
slug: "catalog",
|
|
92878
|
-
name: "Trino Catalog",
|
|
92879
|
-
description: "The default catalog to use (e.g., hive, iceberg, postgresql).",
|
|
92880
|
-
envVarBaseKey: "TRINO_CATALOG",
|
|
92881
|
-
type: "text",
|
|
92882
|
-
secret: false,
|
|
92883
|
-
required: false
|
|
92884
|
-
}),
|
|
92885
|
-
schema: new ParameterDefinition({
|
|
92886
|
-
slug: "schema",
|
|
92887
|
-
name: "Trino Schema",
|
|
92888
|
-
description: "The default schema to use within the catalog.",
|
|
92889
|
-
envVarBaseKey: "TRINO_SCHEMA",
|
|
92890
|
-
type: "text",
|
|
92891
|
-
secret: false,
|
|
92892
|
-
required: false
|
|
92893
|
-
})
|
|
92894
|
-
};
|
|
92895
|
-
|
|
92896
|
-
// ../connectors/src/connectors/trino/tools/execute-query.ts
|
|
92897
|
-
import { z as z42 } from "zod";
|
|
92898
|
-
var MAX_ROWS11 = 500;
|
|
92899
|
-
var QUERY_TIMEOUT_MS4 = 6e4;
|
|
92900
|
-
var inputSchema42 = z42.object({
|
|
92901
|
-
toolUseIntent: z42.string().optional().describe(
|
|
92902
|
-
"Brief description of what you intend to accomplish with this tool call"
|
|
92903
|
-
),
|
|
92904
|
-
connectionId: z42.string().describe("ID of the Trino connection to use"),
|
|
92905
|
-
sql: z42.string().describe("Trino SQL query. Always include LIMIT in queries.")
|
|
92906
|
-
});
|
|
92907
|
-
var outputSchema42 = z42.discriminatedUnion("success", [
|
|
92908
|
-
z42.object({
|
|
92909
|
-
success: z42.literal(true),
|
|
92910
|
-
rowCount: z42.number(),
|
|
92911
|
-
truncated: z42.boolean(),
|
|
92912
|
-
rows: z42.array(z42.record(z42.string(), z42.unknown()))
|
|
92913
|
-
}),
|
|
92914
|
-
z42.object({
|
|
92915
|
-
success: z42.literal(false),
|
|
92916
|
-
error: z42.string()
|
|
92917
|
-
})
|
|
92918
|
-
]);
|
|
92919
|
-
var executeQueryTool11 = new ConnectorTool({
|
|
92920
|
-
name: "executeQuery",
|
|
92921
|
-
description: `Execute SQL against Trino. Returns up to ${MAX_ROWS11} rows.
|
|
92922
|
-
Use for: schema exploration (SHOW CATALOGS, SHOW SCHEMAS, SHOW TABLES, DESCRIBE), data sampling, analytical queries across federated data sources.
|
|
92923
|
-
Avoid loading large amounts of data; always include LIMIT in queries.`,
|
|
92924
|
-
inputSchema: inputSchema42,
|
|
92925
|
-
outputSchema: outputSchema42,
|
|
92926
|
-
async execute({ connectionId, sql }, connections) {
|
|
92927
|
-
const connection = connections.find((c6) => c6.id === connectionId);
|
|
92928
|
-
if (!connection) {
|
|
92929
|
-
return {
|
|
92930
|
-
success: false,
|
|
92931
|
-
error: `Connection ${connectionId} not found`
|
|
92932
|
-
};
|
|
92933
|
-
}
|
|
92934
|
-
console.log(
|
|
92935
|
-
`[connector-query] trino/${connection.name}: ${sql}`
|
|
92936
|
-
);
|
|
92937
|
-
let host;
|
|
92938
|
-
try {
|
|
92939
|
-
const { Trino, BasicAuth } = await import("trino-client");
|
|
92940
|
-
host = parameters39.host.getValue(connection);
|
|
92941
|
-
const user = parameters39.user.getValue(connection);
|
|
92942
|
-
const password = parameters39.password.tryGetValue(connection);
|
|
92943
|
-
const catalog = parameters39.catalog.tryGetValue(connection);
|
|
92944
|
-
const schema = parameters39.schema.tryGetValue(connection);
|
|
92945
|
-
const trino = Trino.create({
|
|
92946
|
-
server: host,
|
|
92947
|
-
catalog: catalog || void 0,
|
|
92948
|
-
schema: schema || void 0,
|
|
92949
|
-
auth: new BasicAuth(user, password || void 0)
|
|
92950
|
-
});
|
|
92951
|
-
const iter = await trino.query(sql);
|
|
92952
|
-
const columns = [];
|
|
92953
|
-
const rows = [];
|
|
92954
|
-
let truncated = false;
|
|
92955
|
-
const timeout = new Promise(
|
|
92956
|
-
(_, reject) => setTimeout(() => reject(new Error("Query timed out after 60 seconds")), QUERY_TIMEOUT_MS4)
|
|
92957
|
-
);
|
|
92958
|
-
const collect = async () => {
|
|
92959
|
-
for await (const result of iter) {
|
|
92960
|
-
if (result.columns && columns.length === 0) {
|
|
92961
|
-
columns.push(...result.columns);
|
|
92962
|
-
}
|
|
92963
|
-
if (result.data) {
|
|
92964
|
-
for (const row of result.data) {
|
|
92965
|
-
if (rows.length >= MAX_ROWS11) {
|
|
92966
|
-
truncated = true;
|
|
92967
|
-
break;
|
|
92968
|
-
}
|
|
92969
|
-
const obj = {};
|
|
92970
|
-
columns.forEach((col, i7) => {
|
|
92971
|
-
obj[col.name] = row[i7];
|
|
92972
|
-
});
|
|
92973
|
-
rows.push(obj);
|
|
92974
|
-
}
|
|
92975
|
-
if (truncated) break;
|
|
92976
|
-
}
|
|
92977
|
-
}
|
|
92978
|
-
};
|
|
92979
|
-
await Promise.race([collect(), timeout]);
|
|
92980
|
-
return {
|
|
92981
|
-
success: true,
|
|
92982
|
-
rowCount: rows.length,
|
|
92983
|
-
truncated,
|
|
92984
|
-
rows
|
|
92985
|
-
};
|
|
92986
|
-
} catch (err) {
|
|
92987
|
-
let msg = err instanceof Error ? err.message : String(err);
|
|
92988
|
-
if (host) {
|
|
92989
|
-
msg = msg.replaceAll(host, "***");
|
|
92990
|
-
}
|
|
92991
|
-
return { success: false, error: msg };
|
|
92992
|
-
}
|
|
92993
|
-
}
|
|
92994
|
-
});
|
|
93051
|
+
import type { Context } from "hono";
|
|
93052
|
+
import { connection } from "@squadbase/vite-server/connectors/asana";
|
|
92995
93053
|
|
|
92996
|
-
|
|
92997
|
-
var tools39 = { executeQuery: executeQueryTool11 };
|
|
92998
|
-
var trinoConnector = new ConnectorPlugin({
|
|
92999
|
-
slug: "trino",
|
|
93000
|
-
authType: null,
|
|
93001
|
-
name: "Trino",
|
|
93002
|
-
description: "Connect to Trino for distributed SQL query engine across federated data sources.",
|
|
93003
|
-
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/8jqL4EZwHKnK5QzyNWkp2/e5831a080c8192cb18fb864cabd51c23/trino.png",
|
|
93004
|
-
parameters: parameters39,
|
|
93005
|
-
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
93006
|
-
onboarding: trinoOnboarding,
|
|
93007
|
-
systemPrompt: {
|
|
93008
|
-
en: `### Tools
|
|
93054
|
+
const asana = connection("<connectionId>");
|
|
93009
93055
|
|
|
93010
|
-
|
|
93056
|
+
export default async function handler(c: Context) {
|
|
93057
|
+
const { projectGid } = await c.req.json<{ projectGid: string }>();
|
|
93011
93058
|
|
|
93012
|
-
|
|
93059
|
+
const { data: tasks } = await asana.listTasks(projectGid, {
|
|
93060
|
+
opt_fields: ["name", "completed", "assignee.name", "due_on"],
|
|
93061
|
+
limit: 50,
|
|
93062
|
+
});
|
|
93013
93063
|
|
|
93014
|
-
|
|
93064
|
+
return c.json({ tasks });
|
|
93065
|
+
}
|
|
93066
|
+
\`\`\`
|
|
93015
93067
|
|
|
93016
|
-
###
|
|
93017
|
-
- Trino uses ANSI SQL syntax with extensions for federated queries
|
|
93018
|
-
- Use fully qualified names: \`catalog.schema.table\` for cross-catalog queries
|
|
93019
|
-
- Schema exploration commands:
|
|
93020
|
-
- List catalogs: \`SHOW CATALOGS\`
|
|
93021
|
-
- List schemas: \`SHOW SCHEMAS IN catalog_name\`
|
|
93022
|
-
- List tables: \`SHOW TABLES IN catalog_name.schema_name\`
|
|
93023
|
-
- List columns: \`DESCRIBE catalog_name.schema_name.table_name\`
|
|
93024
|
-
- Table details: \`SHOW COLUMNS FROM catalog_name.schema_name.table_name\`
|
|
93025
|
-
- INFORMATION_SCHEMA is available per catalog: \`SELECT * FROM catalog_name.information_schema.tables\`
|
|
93026
|
-
- Always include LIMIT in queries`,
|
|
93027
|
-
ja: `### \u30C4\u30FC\u30EB
|
|
93068
|
+
### Asana REST API \u30EA\u30D5\u30A1\u30EC\u30F3\u30B9
|
|
93028
93069
|
|
|
93029
|
-
-
|
|
93070
|
+
- \u30D9\u30FC\u30B9URL: \`https://app.asana.com/api/1.0\`
|
|
93071
|
+
- \u8A8D\u8A3C: Bearer\u30C8\u30FC\u30AF\u30F3\uFF08Personal Access Token\u3001\u81EA\u52D5\u8A2D\u5B9A\uFF09
|
|
93072
|
+
- \u66F8\u304D\u8FBC\u307F\u30EA\u30AF\u30A8\u30B9\u30C8\u306F\u30DA\u30A4\u30ED\u30FC\u30C9\u3092 \`data\` \u30AD\u30FC\u3067\u56F2\u3080: \`{ "data": { ... } }\`
|
|
93073
|
+
- \`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
|
|
93074
|
+
- \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
|
|
93030
93075
|
|
|
93031
|
-
|
|
93076
|
+
#### \u30EA\u30BD\u30FC\u30B9\u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8
|
|
93032
93077
|
|
|
93033
|
-
\
|
|
93078
|
+
**\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9**
|
|
93079
|
+
- GET \`/workspaces\` \u2014 \u5168\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u306E\u4E00\u89A7
|
|
93034
93080
|
|
|
93035
|
-
|
|
93036
|
-
-
|
|
93037
|
-
- \
|
|
93038
|
-
- \
|
|
93039
|
-
|
|
93040
|
-
|
|
93041
|
-
|
|
93042
|
-
|
|
93043
|
-
|
|
93044
|
-
-
|
|
93045
|
-
-
|
|
93046
|
-
|
|
93047
|
-
|
|
93048
|
-
|
|
93049
|
-
|
|
93050
|
-
|
|
93051
|
-
|
|
93052
|
-
|
|
93053
|
-
|
|
93054
|
-
|
|
93055
|
-
|
|
93056
|
-
|
|
93057
|
-
|
|
93058
|
-
|
|
93059
|
-
|
|
93060
|
-
|
|
93061
|
-
|
|
93062
|
-
|
|
93063
|
-
|
|
93064
|
-
|
|
93065
|
-
|
|
93066
|
-
|
|
93067
|
-
|
|
93068
|
-
|
|
93081
|
+
**\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8**
|
|
93082
|
+
- GET \`/projects?workspace=WORKSPACE_GID\` \u2014 \u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u5185\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u4E00\u89A7
|
|
93083
|
+
- GET \`/projects/{project_gid}\` \u2014 \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u53D6\u5F97
|
|
93084
|
+
- POST \`/projects\` \u2014 \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u4F5C\u6210
|
|
93085
|
+
- PUT \`/projects/{project_gid}\` \u2014 \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u66F4\u65B0
|
|
93086
|
+
|
|
93087
|
+
**\u30BF\u30B9\u30AF**
|
|
93088
|
+
- 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
|
|
93089
|
+
- GET \`/tasks/{task_gid}\` \u2014 \u30BF\u30B9\u30AF\u306E\u53D6\u5F97
|
|
93090
|
+
- POST \`/tasks\` \u2014 \u30BF\u30B9\u30AF\u306E\u4F5C\u6210\uFF08body\u306Bworkspace\u307E\u305F\u306Fprojects\u304C\u5FC5\u8981\uFF09
|
|
93091
|
+
- PUT \`/tasks/{task_gid}\` \u2014 \u30BF\u30B9\u30AF\u306E\u66F4\u65B0
|
|
93092
|
+
- DELETE \`/tasks/{task_gid}\` \u2014 \u30BF\u30B9\u30AF\u306E\u524A\u9664
|
|
93093
|
+
- POST \`/tasks/{task_gid}/subtasks\` \u2014 \u30B5\u30D6\u30BF\u30B9\u30AF\u306E\u4F5C\u6210
|
|
93094
|
+
- GET \`/tasks/{task_gid}/subtasks\` \u2014 \u30B5\u30D6\u30BF\u30B9\u30AF\u306E\u4E00\u89A7
|
|
93095
|
+
|
|
93096
|
+
**\u30BB\u30AF\u30B7\u30E7\u30F3**
|
|
93097
|
+
- GET \`/sections?project=PROJECT_GID\` \u2014 \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u5185\u306E\u30BB\u30AF\u30B7\u30E7\u30F3\u4E00\u89A7
|
|
93098
|
+
- POST \`/sections/{section_gid}/addTask\` \u2014 \u30BB\u30AF\u30B7\u30E7\u30F3\u306B\u30BF\u30B9\u30AF\u3092\u8FFD\u52A0
|
|
93099
|
+
|
|
93100
|
+
**\u30E6\u30FC\u30B6\u30FC**
|
|
93101
|
+
- GET \`/users?workspace=WORKSPACE_GID\` \u2014 \u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u5185\u306E\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7
|
|
93102
|
+
- GET \`/users/me\` \u2014 \u8A8D\u8A3C\u30E6\u30FC\u30B6\u30FC\u306E\u53D6\u5F97
|
|
93103
|
+
- GET \`/users/{user_gid}\` \u2014 \u30E6\u30FC\u30B6\u30FC\u306E\u53D6\u5F97
|
|
93104
|
+
|
|
93105
|
+
**\u30BF\u30B0**
|
|
93106
|
+
- GET \`/tags?workspace=WORKSPACE_GID\` \u2014 \u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u5185\u306E\u30BF\u30B0\u4E00\u89A7
|
|
93107
|
+
|
|
93108
|
+
**\u30B9\u30C8\u30FC\u30EA\u30FC\uFF08\u30B3\u30E1\u30F3\u30C8\uFF09**
|
|
93109
|
+
- GET \`/tasks/{task_gid}/stories\` \u2014 \u30BF\u30B9\u30AF\u306E\u30B3\u30E1\u30F3\u30C8/\u30B9\u30C8\u30FC\u30EA\u30FC\u4E00\u89A7
|
|
93110
|
+
- POST \`/tasks/{task_gid}/stories\` \u2014 \u30BF\u30B9\u30AF\u306B\u30B3\u30E1\u30F3\u30C8\u3092\u8FFD\u52A0
|
|
93111
|
+
|
|
93112
|
+
**\u691C\u7D22**
|
|
93113
|
+
- GET \`/workspaces/{workspace_gid}/tasks/search?text=QUERY\` \u2014 \u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u5185\u306E\u30BF\u30B9\u30AF\u691C\u7D22
|
|
93114
|
+
|
|
93115
|
+
#### \u3088\u304F\u4F7F\u3046opt_fields
|
|
93116
|
+
- \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
|
|
93117
|
+
- \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8: name, archived, created_at, modified_at, owner, owner.name, team, team.name, members
|
|
93118
|
+
- \u30E6\u30FC\u30B6\u30FC: name, email, photo`
|
|
93069
93119
|
},
|
|
93070
|
-
|
|
93071
|
-
const resolvedSql = replaceLiteralParams(sql, namedParams);
|
|
93072
|
-
const { Trino, BasicAuth } = await import("trino-client");
|
|
93073
|
-
const host = params[parameters39.host.slug];
|
|
93074
|
-
const user = params[parameters39.user.slug];
|
|
93075
|
-
const password = params[parameters39.password.slug] || void 0;
|
|
93076
|
-
const catalog = params[parameters39.catalog.slug] || void 0;
|
|
93077
|
-
const schema = params[parameters39.schema.slug] || void 0;
|
|
93078
|
-
const trino = Trino.create({
|
|
93079
|
-
server: host,
|
|
93080
|
-
catalog,
|
|
93081
|
-
schema,
|
|
93082
|
-
auth: new BasicAuth(user, password)
|
|
93083
|
-
});
|
|
93084
|
-
const iter = await trino.query(resolvedSql);
|
|
93085
|
-
const columns = [];
|
|
93086
|
-
const rows = [];
|
|
93087
|
-
for await (const result of iter) {
|
|
93088
|
-
if (result.columns && columns.length === 0) {
|
|
93089
|
-
columns.push(...result.columns);
|
|
93090
|
-
}
|
|
93091
|
-
if (result.data) {
|
|
93092
|
-
for (const row of result.data) {
|
|
93093
|
-
const obj = {};
|
|
93094
|
-
columns.forEach((col, i7) => {
|
|
93095
|
-
obj[col.name] = row[i7];
|
|
93096
|
-
});
|
|
93097
|
-
rows.push(obj);
|
|
93098
|
-
}
|
|
93099
|
-
}
|
|
93100
|
-
}
|
|
93101
|
-
return { rows };
|
|
93102
|
-
}
|
|
93120
|
+
tools: tools39
|
|
93103
93121
|
});
|
|
93104
93122
|
|
|
93105
93123
|
// ../connectors/src/connectors/clickhouse/setup.ts
|
|
@@ -93158,8 +93176,8 @@ var parameters40 = {
|
|
|
93158
93176
|
|
|
93159
93177
|
// ../connectors/src/connectors/clickhouse/tools/execute-query.ts
|
|
93160
93178
|
import { z as z43 } from "zod";
|
|
93161
|
-
var
|
|
93162
|
-
var
|
|
93179
|
+
var MAX_ROWS11 = 500;
|
|
93180
|
+
var QUERY_TIMEOUT_MS4 = 6e4;
|
|
93163
93181
|
var inputSchema43 = z43.object({
|
|
93164
93182
|
toolUseIntent: z43.string().optional().describe(
|
|
93165
93183
|
"Brief description of what you intend to accomplish with this tool call"
|
|
@@ -93179,9 +93197,9 @@ var outputSchema43 = z43.discriminatedUnion("success", [
|
|
|
93179
93197
|
error: z43.string()
|
|
93180
93198
|
})
|
|
93181
93199
|
]);
|
|
93182
|
-
var
|
|
93200
|
+
var executeQueryTool11 = new ConnectorTool({
|
|
93183
93201
|
name: "executeQuery",
|
|
93184
|
-
description: `Execute SQL against ClickHouse. Returns up to ${
|
|
93202
|
+
description: `Execute SQL against ClickHouse. Returns up to ${MAX_ROWS11} rows.
|
|
93185
93203
|
Use for: schema exploration (SHOW DATABASES, SHOW TABLES, DESCRIBE TABLE), data sampling, analytical queries on large-scale columnar data.
|
|
93186
93204
|
Avoid loading large amounts of data; always include LIMIT in queries.`,
|
|
93187
93205
|
inputSchema: inputSchema43,
|
|
@@ -93209,7 +93227,7 @@ Avoid loading large amounts of data; always include LIMIT in queries.`,
|
|
|
93209
93227
|
username,
|
|
93210
93228
|
password: password || "",
|
|
93211
93229
|
database: database || "default",
|
|
93212
|
-
request_timeout:
|
|
93230
|
+
request_timeout: QUERY_TIMEOUT_MS4
|
|
93213
93231
|
});
|
|
93214
93232
|
try {
|
|
93215
93233
|
const resultSet = await client.query({
|
|
@@ -93217,12 +93235,12 @@ Avoid loading large amounts of data; always include LIMIT in queries.`,
|
|
|
93217
93235
|
format: "JSONEachRow"
|
|
93218
93236
|
});
|
|
93219
93237
|
const allRows = await resultSet.json();
|
|
93220
|
-
const truncated = allRows.length >
|
|
93238
|
+
const truncated = allRows.length > MAX_ROWS11;
|
|
93221
93239
|
return {
|
|
93222
93240
|
success: true,
|
|
93223
|
-
rowCount: Math.min(allRows.length,
|
|
93241
|
+
rowCount: Math.min(allRows.length, MAX_ROWS11),
|
|
93224
93242
|
truncated,
|
|
93225
|
-
rows: allRows.slice(0,
|
|
93243
|
+
rows: allRows.slice(0, MAX_ROWS11)
|
|
93226
93244
|
};
|
|
93227
93245
|
} finally {
|
|
93228
93246
|
await client.close();
|
|
@@ -93238,7 +93256,7 @@ Avoid loading large amounts of data; always include LIMIT in queries.`,
|
|
|
93238
93256
|
});
|
|
93239
93257
|
|
|
93240
93258
|
// ../connectors/src/connectors/clickhouse/index.ts
|
|
93241
|
-
var tools40 = { executeQuery:
|
|
93259
|
+
var tools40 = { executeQuery: executeQueryTool11 };
|
|
93242
93260
|
var clickhouseConnector = new ConnectorPlugin({
|
|
93243
93261
|
slug: "clickhouse",
|
|
93244
93262
|
authType: null,
|
|
@@ -93377,7 +93395,7 @@ var parameters41 = {
|
|
|
93377
93395
|
import { z as z46 } from "zod";
|
|
93378
93396
|
var MAX_DOCUMENTS = 500;
|
|
93379
93397
|
var CONNECT_TIMEOUT_MS4 = 1e4;
|
|
93380
|
-
var
|
|
93398
|
+
var QUERY_TIMEOUT_MS5 = 6e4;
|
|
93381
93399
|
var inputSchema44 = z46.object({
|
|
93382
93400
|
toolUseIntent: z46.string().optional().describe(
|
|
93383
93401
|
"Brief description of what you intend to accomplish with this tool call"
|
|
@@ -93436,7 +93454,7 @@ For listing collections, use the aggregate tool with an empty pipeline on the sp
|
|
|
93436
93454
|
const client = new MongoClient(connectionUrl, {
|
|
93437
93455
|
connectTimeoutMS: CONNECT_TIMEOUT_MS4,
|
|
93438
93456
|
serverSelectionTimeoutMS: CONNECT_TIMEOUT_MS4,
|
|
93439
|
-
socketTimeoutMS:
|
|
93457
|
+
socketTimeoutMS: QUERY_TIMEOUT_MS5
|
|
93440
93458
|
});
|
|
93441
93459
|
try {
|
|
93442
93460
|
await client.connect();
|
|
@@ -93482,7 +93500,7 @@ For listing collections, use the aggregate tool with an empty pipeline on the sp
|
|
|
93482
93500
|
import { z as z47 } from "zod";
|
|
93483
93501
|
var MAX_DOCUMENTS2 = 500;
|
|
93484
93502
|
var CONNECT_TIMEOUT_MS5 = 1e4;
|
|
93485
|
-
var
|
|
93503
|
+
var QUERY_TIMEOUT_MS6 = 6e4;
|
|
93486
93504
|
var inputSchema45 = z47.object({
|
|
93487
93505
|
toolUseIntent: z47.string().optional().describe(
|
|
93488
93506
|
"Brief description of what you intend to accomplish with this tool call"
|
|
@@ -93533,7 +93551,7 @@ Common stages: $match (filter), $group (aggregate), $sort (order), $project (res
|
|
|
93533
93551
|
const client = new MongoClient(connectionUrl, {
|
|
93534
93552
|
connectTimeoutMS: CONNECT_TIMEOUT_MS5,
|
|
93535
93553
|
serverSelectionTimeoutMS: CONNECT_TIMEOUT_MS5,
|
|
93536
|
-
socketTimeoutMS:
|
|
93554
|
+
socketTimeoutMS: QUERY_TIMEOUT_MS6
|
|
93537
93555
|
});
|
|
93538
93556
|
try {
|
|
93539
93557
|
await client.connect();
|
|
@@ -93751,9 +93769,9 @@ var parameters42 = {
|
|
|
93751
93769
|
|
|
93752
93770
|
// ../connectors/src/connectors/notion/tools/request.ts
|
|
93753
93771
|
import { z as z49 } from "zod";
|
|
93754
|
-
var
|
|
93772
|
+
var BASE_URL20 = "https://api.notion.com/v1";
|
|
93755
93773
|
var NOTION_VERSION = "2022-06-28";
|
|
93756
|
-
var
|
|
93774
|
+
var REQUEST_TIMEOUT_MS32 = 6e4;
|
|
93757
93775
|
var inputSchema47 = z49.object({
|
|
93758
93776
|
toolUseIntent: z49.string().optional().describe(
|
|
93759
93777
|
"Brief description of what you intend to accomplish with this tool call"
|
|
@@ -93778,7 +93796,7 @@ var outputSchema47 = z49.discriminatedUnion("success", [
|
|
|
93778
93796
|
error: z49.string()
|
|
93779
93797
|
})
|
|
93780
93798
|
]);
|
|
93781
|
-
var
|
|
93799
|
+
var requestTool25 = new ConnectorTool({
|
|
93782
93800
|
name: "request",
|
|
93783
93801
|
description: `Send authenticated requests to the Notion API.
|
|
93784
93802
|
Authentication (Bearer token) and Notion-Version header are configured automatically.
|
|
@@ -93799,9 +93817,9 @@ Pagination uses cursor-based start_cursor and page_size (max 100).`,
|
|
|
93799
93817
|
);
|
|
93800
93818
|
try {
|
|
93801
93819
|
const apiKey = parameters42.apiKey.getValue(connection);
|
|
93802
|
-
const url = `${
|
|
93820
|
+
const url = `${BASE_URL20}${path5.startsWith("/") ? "" : "/"}${path5}`;
|
|
93803
93821
|
const controller = new AbortController();
|
|
93804
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
93822
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS32);
|
|
93805
93823
|
try {
|
|
93806
93824
|
const response = await fetch(url, {
|
|
93807
93825
|
method,
|
|
@@ -93830,7 +93848,7 @@ Pagination uses cursor-based start_cursor and page_size (max 100).`,
|
|
|
93830
93848
|
});
|
|
93831
93849
|
|
|
93832
93850
|
// ../connectors/src/connectors/notion/index.ts
|
|
93833
|
-
var tools42 = { request:
|
|
93851
|
+
var tools42 = { request: requestTool25 };
|
|
93834
93852
|
var notionConnector = new ConnectorPlugin({
|
|
93835
93853
|
slug: "notion",
|
|
93836
93854
|
authType: null,
|
|
@@ -93987,9 +94005,9 @@ export default async function handler(c: Context) {
|
|
|
93987
94005
|
|
|
93988
94006
|
// ../connectors/src/connectors/notion-oauth/tools/request.ts
|
|
93989
94007
|
import { z as z50 } from "zod";
|
|
93990
|
-
var
|
|
94008
|
+
var BASE_URL21 = "https://api.notion.com/v1";
|
|
93991
94009
|
var NOTION_VERSION2 = "2022-06-28";
|
|
93992
|
-
var
|
|
94010
|
+
var REQUEST_TIMEOUT_MS33 = 6e4;
|
|
93993
94011
|
var cachedToken15 = null;
|
|
93994
94012
|
async function getProxyToken15(config) {
|
|
93995
94013
|
if (cachedToken15 && cachedToken15.expiresAt > Date.now() + 6e4) {
|
|
@@ -94043,7 +94061,7 @@ var outputSchema48 = z50.discriminatedUnion("success", [
|
|
|
94043
94061
|
error: z50.string()
|
|
94044
94062
|
})
|
|
94045
94063
|
]);
|
|
94046
|
-
var
|
|
94064
|
+
var requestTool26 = new ConnectorTool({
|
|
94047
94065
|
name: "request",
|
|
94048
94066
|
description: `Send authenticated requests to the Notion API.
|
|
94049
94067
|
Authentication is handled automatically via OAuth proxy. Notion-Version header is set automatically.
|
|
@@ -94063,11 +94081,11 @@ Pagination uses cursor-based start_cursor and page_size (max 100).`,
|
|
|
94063
94081
|
`[connector-request] notion-oauth/${connection.name}: ${method} ${path5}`
|
|
94064
94082
|
);
|
|
94065
94083
|
try {
|
|
94066
|
-
const url = `${
|
|
94084
|
+
const url = `${BASE_URL21}${path5.startsWith("/") ? "" : "/"}${path5}`;
|
|
94067
94085
|
const token = await getProxyToken15(config.oauthProxy);
|
|
94068
94086
|
const proxyUrl = `https://${config.oauthProxy.sandboxId}.${config.oauthProxy.previewBaseDomain}/_sqcore/connections/${connectionId}/request`;
|
|
94069
94087
|
const controller = new AbortController();
|
|
94070
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
94088
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS33);
|
|
94071
94089
|
try {
|
|
94072
94090
|
const response = await fetch(proxyUrl, {
|
|
94073
94091
|
method: "POST",
|
|
@@ -94100,12 +94118,12 @@ Pagination uses cursor-based start_cursor and page_size (max 100).`,
|
|
|
94100
94118
|
});
|
|
94101
94119
|
|
|
94102
94120
|
// ../connectors/src/connectors/notion-oauth/setup.ts
|
|
94103
|
-
var
|
|
94121
|
+
var requestToolName8 = `notion-oauth_${requestTool26.name}`;
|
|
94104
94122
|
var notionOauthOnboarding = new ConnectorOnboarding({
|
|
94105
94123
|
connectionSetupInstructions: {
|
|
94106
94124
|
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
|
|
94107
94125
|
|
|
94108
|
-
1. \`${
|
|
94126
|
+
1. \`${requestToolName8}\` \u3092\u547C\u3073\u51FA\u3057\u3066\u3001\u30DC\u30C3\u30C8\u30E6\u30FC\u30B6\u30FC\u60C5\u5831\u3092\u53D6\u5F97\u3059\u308B:
|
|
94109
94127
|
- \`method\`: \`"GET"\`
|
|
94110
94128
|
- \`path\`: \`"/users/me"\`
|
|
94111
94129
|
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
|
|
@@ -94118,7 +94136,7 @@ var notionOauthOnboarding = new ConnectorOnboarding({
|
|
|
94118
94136
|
- \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`,
|
|
94119
94137
|
en: `Follow these steps to set up the Notion connection.
|
|
94120
94138
|
|
|
94121
|
-
1. Call \`${
|
|
94139
|
+
1. Call \`${requestToolName8}\` to fetch bot user info:
|
|
94122
94140
|
- \`method\`: \`"GET"\`
|
|
94123
94141
|
- \`path\`: \`"/users/me"\`
|
|
94124
94142
|
2. If an error is returned, ask the user to check the OAuth connection settings
|
|
@@ -94146,7 +94164,7 @@ var notionOauthOnboarding = new ConnectorOnboarding({
|
|
|
94146
94164
|
var parameters43 = {};
|
|
94147
94165
|
|
|
94148
94166
|
// ../connectors/src/connectors/notion-oauth/index.ts
|
|
94149
|
-
var tools43 = { request:
|
|
94167
|
+
var tools43 = { request: requestTool26 };
|
|
94150
94168
|
var notionOauthConnector = new ConnectorPlugin({
|
|
94151
94169
|
slug: "notion",
|
|
94152
94170
|
authType: AUTH_TYPES.OAUTH,
|
|
@@ -94317,8 +94335,8 @@ var parameters44 = {
|
|
|
94317
94335
|
};
|
|
94318
94336
|
|
|
94319
94337
|
// ../connectors/src/connectors/meta-ads/tools/list-ad-accounts.ts
|
|
94320
|
-
var
|
|
94321
|
-
var
|
|
94338
|
+
var BASE_URL22 = "https://graph.facebook.com/v21.0/";
|
|
94339
|
+
var REQUEST_TIMEOUT_MS34 = 6e4;
|
|
94322
94340
|
var inputSchema49 = z51.object({
|
|
94323
94341
|
toolUseIntent: z51.string().optional().describe(
|
|
94324
94342
|
"Brief description of what you intend to accomplish with this tool call"
|
|
@@ -94358,9 +94376,9 @@ var listAdAccountsTool = new ConnectorTool({
|
|
|
94358
94376
|
);
|
|
94359
94377
|
try {
|
|
94360
94378
|
const accessToken = parameters44.accessToken.getValue(connection);
|
|
94361
|
-
const url = `${
|
|
94379
|
+
const url = `${BASE_URL22}me/adaccounts?fields=account_id,name,account_status&access_token=${encodeURIComponent(accessToken)}`;
|
|
94362
94380
|
const controller = new AbortController();
|
|
94363
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
94381
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS34);
|
|
94364
94382
|
try {
|
|
94365
94383
|
const response = await fetch(url, {
|
|
94366
94384
|
method: "GET",
|
|
@@ -94435,8 +94453,8 @@ var metaAdsOnboarding = new ConnectorOnboarding({
|
|
|
94435
94453
|
|
|
94436
94454
|
// ../connectors/src/connectors/meta-ads/tools/request.ts
|
|
94437
94455
|
import { z as z52 } from "zod";
|
|
94438
|
-
var
|
|
94439
|
-
var
|
|
94456
|
+
var BASE_URL23 = "https://graph.facebook.com/v21.0/";
|
|
94457
|
+
var REQUEST_TIMEOUT_MS35 = 6e4;
|
|
94440
94458
|
var inputSchema50 = z52.object({
|
|
94441
94459
|
toolUseIntent: z52.string().optional().describe(
|
|
94442
94460
|
"Brief description of what you intend to accomplish with this tool call"
|
|
@@ -94460,7 +94478,7 @@ var outputSchema50 = z52.discriminatedUnion("success", [
|
|
|
94460
94478
|
error: z52.string()
|
|
94461
94479
|
})
|
|
94462
94480
|
]);
|
|
94463
|
-
var
|
|
94481
|
+
var requestTool27 = new ConnectorTool({
|
|
94464
94482
|
name: "request",
|
|
94465
94483
|
description: `Send authenticated requests to the Meta Marketing API v21.0.
|
|
94466
94484
|
Authentication is handled via the configured access token.
|
|
@@ -94482,13 +94500,13 @@ Authentication is handled via the configured access token.
|
|
|
94482
94500
|
const accessToken = parameters44.accessToken.getValue(connection);
|
|
94483
94501
|
const adAccountId = parameters44.adAccountId.tryGetValue(connection) ?? "";
|
|
94484
94502
|
const resolvedPath = adAccountId ? path5.replace(/\{adAccountId\}/g, adAccountId) : path5;
|
|
94485
|
-
let url = `${
|
|
94503
|
+
let url = `${BASE_URL23}${resolvedPath}`;
|
|
94486
94504
|
const params = new URLSearchParams(queryParams ?? {});
|
|
94487
94505
|
params.set("access_token", accessToken);
|
|
94488
94506
|
const separator = url.includes("?") ? "&" : "?";
|
|
94489
94507
|
url = `${url}${separator}${params.toString()}`;
|
|
94490
94508
|
const controller = new AbortController();
|
|
94491
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
94509
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS35);
|
|
94492
94510
|
try {
|
|
94493
94511
|
const response = await fetch(url, {
|
|
94494
94512
|
method,
|
|
@@ -94518,7 +94536,7 @@ Authentication is handled via the configured access token.
|
|
|
94518
94536
|
|
|
94519
94537
|
// ../connectors/src/connectors/meta-ads/index.ts
|
|
94520
94538
|
var tools44 = {
|
|
94521
|
-
request:
|
|
94539
|
+
request: requestTool27,
|
|
94522
94540
|
listAdAccounts: listAdAccountsTool
|
|
94523
94541
|
};
|
|
94524
94542
|
var metaAdsConnector = new ConnectorPlugin({
|
|
@@ -94687,8 +94705,8 @@ const accounts = await meta.listAdAccounts();
|
|
|
94687
94705
|
|
|
94688
94706
|
// ../connectors/src/connectors/meta-ads-oauth/tools/list-ad-accounts.ts
|
|
94689
94707
|
import { z as z53 } from "zod";
|
|
94690
|
-
var
|
|
94691
|
-
var
|
|
94708
|
+
var BASE_URL24 = "https://graph.facebook.com/v21.0/";
|
|
94709
|
+
var REQUEST_TIMEOUT_MS36 = 6e4;
|
|
94692
94710
|
var cachedToken16 = null;
|
|
94693
94711
|
async function getProxyToken16(config) {
|
|
94694
94712
|
if (cachedToken16 && cachedToken16.expiresAt > Date.now() + 6e4) {
|
|
@@ -94761,7 +94779,7 @@ var listAdAccountsTool2 = new ConnectorTool({
|
|
|
94761
94779
|
const token = await getProxyToken16(config.oauthProxy);
|
|
94762
94780
|
const proxyUrl = `https://${config.oauthProxy.sandboxId}.${config.oauthProxy.previewBaseDomain}/_sqcore/connections/${connectionId}/request`;
|
|
94763
94781
|
const controller = new AbortController();
|
|
94764
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
94782
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS36);
|
|
94765
94783
|
try {
|
|
94766
94784
|
const response = await fetch(proxyUrl, {
|
|
94767
94785
|
method: "POST",
|
|
@@ -94770,7 +94788,7 @@ var listAdAccountsTool2 = new ConnectorTool({
|
|
|
94770
94788
|
Authorization: `Bearer ${token}`
|
|
94771
94789
|
},
|
|
94772
94790
|
body: JSON.stringify({
|
|
94773
|
-
url: `${
|
|
94791
|
+
url: `${BASE_URL24}me/adaccounts?fields=account_id,name,account_status`,
|
|
94774
94792
|
method: "GET"
|
|
94775
94793
|
}),
|
|
94776
94794
|
signal: controller.signal
|
|
@@ -94857,8 +94875,8 @@ var parameters45 = {
|
|
|
94857
94875
|
|
|
94858
94876
|
// ../connectors/src/connectors/meta-ads-oauth/tools/request.ts
|
|
94859
94877
|
import { z as z54 } from "zod";
|
|
94860
|
-
var
|
|
94861
|
-
var
|
|
94878
|
+
var BASE_URL25 = "https://graph.facebook.com/v21.0/";
|
|
94879
|
+
var REQUEST_TIMEOUT_MS37 = 6e4;
|
|
94862
94880
|
var cachedToken17 = null;
|
|
94863
94881
|
async function getProxyToken17(config) {
|
|
94864
94882
|
if (cachedToken17 && cachedToken17.expiresAt > Date.now() + 6e4) {
|
|
@@ -94913,7 +94931,7 @@ var outputSchema52 = z54.discriminatedUnion("success", [
|
|
|
94913
94931
|
error: z54.string()
|
|
94914
94932
|
})
|
|
94915
94933
|
]);
|
|
94916
|
-
var
|
|
94934
|
+
var requestTool28 = new ConnectorTool({
|
|
94917
94935
|
name: "request",
|
|
94918
94936
|
description: `Send authenticated requests to the Meta Marketing API v21.0.
|
|
94919
94937
|
Authentication is handled automatically via OAuth proxy.
|
|
@@ -94934,7 +94952,7 @@ Authentication is handled automatically via OAuth proxy.
|
|
|
94934
94952
|
try {
|
|
94935
94953
|
const adAccountId = parameters45.adAccountId.tryGetValue(connection) ?? "";
|
|
94936
94954
|
const resolvedPath = adAccountId ? path5.replace(/\{adAccountId\}/g, adAccountId) : path5;
|
|
94937
|
-
let url = `${
|
|
94955
|
+
let url = `${BASE_URL25}${resolvedPath}`;
|
|
94938
94956
|
if (queryParams && Object.keys(queryParams).length > 0) {
|
|
94939
94957
|
const params = new URLSearchParams(queryParams);
|
|
94940
94958
|
const separator = url.includes("?") ? "&" : "?";
|
|
@@ -94943,7 +94961,7 @@ Authentication is handled automatically via OAuth proxy.
|
|
|
94943
94961
|
const token = await getProxyToken17(config.oauthProxy);
|
|
94944
94962
|
const proxyUrl = `https://${config.oauthProxy.sandboxId}.${config.oauthProxy.previewBaseDomain}/_sqcore/connections/${connectionId}/request`;
|
|
94945
94963
|
const controller = new AbortController();
|
|
94946
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
94964
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS37);
|
|
94947
94965
|
try {
|
|
94948
94966
|
const response = await fetch(proxyUrl, {
|
|
94949
94967
|
method: "POST",
|
|
@@ -94978,7 +94996,7 @@ Authentication is handled automatically via OAuth proxy.
|
|
|
94978
94996
|
|
|
94979
94997
|
// ../connectors/src/connectors/meta-ads-oauth/index.ts
|
|
94980
94998
|
var tools45 = {
|
|
94981
|
-
request:
|
|
94999
|
+
request: requestTool28,
|
|
94982
95000
|
listAdAccounts: listAdAccountsTool2
|
|
94983
95001
|
};
|
|
94984
95002
|
var metaAdsOauthConnector = new ConnectorPlugin({
|
|
@@ -95211,8 +95229,8 @@ var parameters46 = {
|
|
|
95211
95229
|
|
|
95212
95230
|
// ../connectors/src/connectors/tiktok-ads/tools/request.ts
|
|
95213
95231
|
import { z as z55 } from "zod";
|
|
95214
|
-
var
|
|
95215
|
-
var
|
|
95232
|
+
var BASE_URL26 = "https://business-api.tiktok.com/open_api/v1.3/";
|
|
95233
|
+
var REQUEST_TIMEOUT_MS38 = 6e4;
|
|
95216
95234
|
var inputSchema53 = z55.object({
|
|
95217
95235
|
toolUseIntent: z55.string().optional().describe(
|
|
95218
95236
|
"Brief description of what you intend to accomplish with this tool call"
|
|
@@ -95236,7 +95254,7 @@ var outputSchema53 = z55.discriminatedUnion("success", [
|
|
|
95236
95254
|
error: z55.string()
|
|
95237
95255
|
})
|
|
95238
95256
|
]);
|
|
95239
|
-
var
|
|
95257
|
+
var requestTool29 = new ConnectorTool({
|
|
95240
95258
|
name: "request",
|
|
95241
95259
|
description: `Send authenticated requests to the TikTok Marketing API v1.3.
|
|
95242
95260
|
Authentication is handled via the configured access token (sent as Access-Token header).
|
|
@@ -95257,7 +95275,7 @@ The advertiser_id is automatically injected if configured.`,
|
|
|
95257
95275
|
try {
|
|
95258
95276
|
const accessToken = parameters46.accessToken.getValue(connection);
|
|
95259
95277
|
const advertiserId = parameters46.advertiserId.tryGetValue(connection) ?? "";
|
|
95260
|
-
let url = `${
|
|
95278
|
+
let url = `${BASE_URL26}${path5}`;
|
|
95261
95279
|
if (method === "GET") {
|
|
95262
95280
|
const params = new URLSearchParams(queryParams ?? {});
|
|
95263
95281
|
if (advertiserId && !params.has("advertiser_id")) {
|
|
@@ -95273,7 +95291,7 @@ The advertiser_id is automatically injected if configured.`,
|
|
|
95273
95291
|
...body
|
|
95274
95292
|
} : void 0;
|
|
95275
95293
|
const controller = new AbortController();
|
|
95276
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
95294
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS38);
|
|
95277
95295
|
try {
|
|
95278
95296
|
const response = await fetch(url, {
|
|
95279
95297
|
method,
|
|
@@ -95309,9 +95327,9 @@ The advertiser_id is automatically injected if configured.`,
|
|
|
95309
95327
|
});
|
|
95310
95328
|
|
|
95311
95329
|
// ../connectors/src/connectors/tiktok-ads/index.ts
|
|
95312
|
-
var
|
|
95330
|
+
var BASE_URL27 = "https://business-api.tiktok.com/open_api/v1.3/";
|
|
95313
95331
|
var tools46 = {
|
|
95314
|
-
request:
|
|
95332
|
+
request: requestTool29
|
|
95315
95333
|
};
|
|
95316
95334
|
var tiktokAdsConnector = new ConnectorPlugin({
|
|
95317
95335
|
slug: "tiktok-ads",
|
|
@@ -95484,7 +95502,7 @@ const campaigns = await tiktok.listCampaigns();
|
|
|
95484
95502
|
return { success: true };
|
|
95485
95503
|
}
|
|
95486
95504
|
try {
|
|
95487
|
-
const url = `${
|
|
95505
|
+
const url = `${BASE_URL27}advertiser/info/?advertiser_id=${encodeURIComponent(advertiserId)}`;
|
|
95488
95506
|
const res = await fetch(url, {
|
|
95489
95507
|
method: "GET",
|
|
95490
95508
|
headers: {
|
|
@@ -95516,8 +95534,8 @@ const campaigns = await tiktok.listCampaigns();
|
|
|
95516
95534
|
|
|
95517
95535
|
// ../connectors/src/connectors/tiktok-ads-oauth/tools/list-advertisers.ts
|
|
95518
95536
|
import { z as z56 } from "zod";
|
|
95519
|
-
var
|
|
95520
|
-
var
|
|
95537
|
+
var BASE_URL28 = "https://business-api.tiktok.com/open_api/v1.3/";
|
|
95538
|
+
var REQUEST_TIMEOUT_MS39 = 6e4;
|
|
95521
95539
|
var cachedToken18 = null;
|
|
95522
95540
|
async function getProxyToken18(config) {
|
|
95523
95541
|
if (cachedToken18 && cachedToken18.expiresAt > Date.now() + 6e4) {
|
|
@@ -95590,7 +95608,7 @@ var listAdvertisersTool = new ConnectorTool({
|
|
|
95590
95608
|
const token = await getProxyToken18(config.oauthProxy);
|
|
95591
95609
|
const proxyUrl = `https://${config.oauthProxy.sandboxId}.${config.oauthProxy.previewBaseDomain}/_sqcore/connections/${connectionId}/request`;
|
|
95592
95610
|
const controller = new AbortController();
|
|
95593
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
95611
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS39);
|
|
95594
95612
|
try {
|
|
95595
95613
|
const advertiserListResponse = await fetch(proxyUrl, {
|
|
95596
95614
|
method: "POST",
|
|
@@ -95599,7 +95617,7 @@ var listAdvertisersTool = new ConnectorTool({
|
|
|
95599
95617
|
Authorization: `Bearer ${token}`
|
|
95600
95618
|
},
|
|
95601
95619
|
body: JSON.stringify({
|
|
95602
|
-
url: `${
|
|
95620
|
+
url: `${BASE_URL28}oauth2/advertiser/get/`,
|
|
95603
95621
|
method: "GET"
|
|
95604
95622
|
}),
|
|
95605
95623
|
signal: controller.signal
|
|
@@ -95696,8 +95714,8 @@ var parameters47 = {
|
|
|
95696
95714
|
|
|
95697
95715
|
// ../connectors/src/connectors/tiktok-ads-oauth/tools/request.ts
|
|
95698
95716
|
import { z as z57 } from "zod";
|
|
95699
|
-
var
|
|
95700
|
-
var
|
|
95717
|
+
var BASE_URL29 = "https://business-api.tiktok.com/open_api/v1.3/";
|
|
95718
|
+
var REQUEST_TIMEOUT_MS40 = 6e4;
|
|
95701
95719
|
var cachedToken19 = null;
|
|
95702
95720
|
async function getProxyToken19(config) {
|
|
95703
95721
|
if (cachedToken19 && cachedToken19.expiresAt > Date.now() + 6e4) {
|
|
@@ -95752,7 +95770,7 @@ var outputSchema55 = z57.discriminatedUnion("success", [
|
|
|
95752
95770
|
error: z57.string()
|
|
95753
95771
|
})
|
|
95754
95772
|
]);
|
|
95755
|
-
var
|
|
95773
|
+
var requestTool30 = new ConnectorTool({
|
|
95756
95774
|
name: "request",
|
|
95757
95775
|
description: `Send authenticated requests to the TikTok Marketing API v1.3.
|
|
95758
95776
|
Authentication is handled automatically via OAuth proxy.
|
|
@@ -95772,7 +95790,7 @@ The advertiser_id is automatically injected if configured.`,
|
|
|
95772
95790
|
);
|
|
95773
95791
|
try {
|
|
95774
95792
|
const advertiserId = parameters47.advertiserId.tryGetValue(connection) ?? "";
|
|
95775
|
-
let url = `${
|
|
95793
|
+
let url = `${BASE_URL29}${path5}`;
|
|
95776
95794
|
if (method === "GET") {
|
|
95777
95795
|
const params = new URLSearchParams(queryParams ?? {});
|
|
95778
95796
|
if (advertiserId && !params.has("advertiser_id")) {
|
|
@@ -95790,7 +95808,7 @@ The advertiser_id is automatically injected if configured.`,
|
|
|
95790
95808
|
const token = await getProxyToken19(config.oauthProxy);
|
|
95791
95809
|
const proxyUrl = `https://${config.oauthProxy.sandboxId}.${config.oauthProxy.previewBaseDomain}/_sqcore/connections/${connectionId}/request`;
|
|
95792
95810
|
const controller = new AbortController();
|
|
95793
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
95811
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS40);
|
|
95794
95812
|
try {
|
|
95795
95813
|
const response = await fetch(proxyUrl, {
|
|
95796
95814
|
method: "POST",
|
|
@@ -95831,7 +95849,7 @@ The advertiser_id is automatically injected if configured.`,
|
|
|
95831
95849
|
|
|
95832
95850
|
// ../connectors/src/connectors/tiktok-ads-oauth/index.ts
|
|
95833
95851
|
var tools47 = {
|
|
95834
|
-
request:
|
|
95852
|
+
request: requestTool30,
|
|
95835
95853
|
listAdvertisers: listAdvertisersTool
|
|
95836
95854
|
};
|
|
95837
95855
|
var tiktokAdsOauthConnector = new ConnectorPlugin({
|
|
@@ -96043,7 +96061,7 @@ var parameters48 = {
|
|
|
96043
96061
|
|
|
96044
96062
|
// ../connectors/src/connectors/mailchimp/tools/request.ts
|
|
96045
96063
|
import { z as z58 } from "zod";
|
|
96046
|
-
var
|
|
96064
|
+
var REQUEST_TIMEOUT_MS41 = 6e4;
|
|
96047
96065
|
function extractDatacenter(apiKey) {
|
|
96048
96066
|
const parts = apiKey.split("-");
|
|
96049
96067
|
const dc = parts[parts.length - 1];
|
|
@@ -96079,7 +96097,7 @@ var outputSchema56 = z58.discriminatedUnion("success", [
|
|
|
96079
96097
|
error: z58.string()
|
|
96080
96098
|
})
|
|
96081
96099
|
]);
|
|
96082
|
-
var
|
|
96100
|
+
var requestTool31 = new ConnectorTool({
|
|
96083
96101
|
name: "request",
|
|
96084
96102
|
description: `Send authenticated requests to the Mailchimp Marketing API v3.
|
|
96085
96103
|
Authentication is handled automatically using the API Key (Basic Auth).
|
|
@@ -96108,7 +96126,7 @@ The datacenter is automatically extracted from the API key suffix.`,
|
|
|
96108
96126
|
url += `?${searchParams.toString()}`;
|
|
96109
96127
|
}
|
|
96110
96128
|
const controller = new AbortController();
|
|
96111
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
96129
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS41);
|
|
96112
96130
|
try {
|
|
96113
96131
|
const response = await fetch(url, {
|
|
96114
96132
|
method,
|
|
@@ -96136,7 +96154,7 @@ The datacenter is automatically extracted from the API key suffix.`,
|
|
|
96136
96154
|
});
|
|
96137
96155
|
|
|
96138
96156
|
// ../connectors/src/connectors/mailchimp/index.ts
|
|
96139
|
-
var tools48 = { request:
|
|
96157
|
+
var tools48 = { request: requestTool31 };
|
|
96140
96158
|
var mailchimpConnector = new ConnectorPlugin({
|
|
96141
96159
|
slug: "mailchimp",
|
|
96142
96160
|
authType: null,
|
|
@@ -96374,7 +96392,7 @@ var parameters49 = {
|
|
|
96374
96392
|
|
|
96375
96393
|
// ../connectors/src/connectors/mailchimp-oauth/tools/request.ts
|
|
96376
96394
|
import { z as z59 } from "zod";
|
|
96377
|
-
var
|
|
96395
|
+
var REQUEST_TIMEOUT_MS42 = 6e4;
|
|
96378
96396
|
var cachedToken20 = null;
|
|
96379
96397
|
async function getProxyToken20(config) {
|
|
96380
96398
|
if (cachedToken20 && cachedToken20.expiresAt > Date.now() + 6e4) {
|
|
@@ -96429,7 +96447,7 @@ var outputSchema57 = z59.discriminatedUnion("success", [
|
|
|
96429
96447
|
error: z59.string()
|
|
96430
96448
|
})
|
|
96431
96449
|
]);
|
|
96432
|
-
var
|
|
96450
|
+
var requestTool32 = new ConnectorTool({
|
|
96433
96451
|
name: "request",
|
|
96434
96452
|
description: `Send authenticated requests to the Mailchimp Marketing API v3.
|
|
96435
96453
|
Authentication is handled automatically via OAuth proxy.`,
|
|
@@ -96457,7 +96475,7 @@ Authentication is handled automatically via OAuth proxy.`,
|
|
|
96457
96475
|
const token = await getProxyToken20(config.oauthProxy);
|
|
96458
96476
|
const proxyUrl = `https://${config.oauthProxy.sandboxId}.${config.oauthProxy.previewBaseDomain}/_sqcore/connections/${connectionId}/request`;
|
|
96459
96477
|
const controller = new AbortController();
|
|
96460
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
96478
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS42);
|
|
96461
96479
|
try {
|
|
96462
96480
|
const response = await fetch(proxyUrl, {
|
|
96463
96481
|
method: "POST",
|
|
@@ -96489,7 +96507,7 @@ Authentication is handled automatically via OAuth proxy.`,
|
|
|
96489
96507
|
});
|
|
96490
96508
|
|
|
96491
96509
|
// ../connectors/src/connectors/mailchimp-oauth/index.ts
|
|
96492
|
-
var tools49 = { request:
|
|
96510
|
+
var tools49 = { request: requestTool32 };
|
|
96493
96511
|
var mailchimpOauthConnector = new ConnectorPlugin({
|
|
96494
96512
|
slug: "mailchimp",
|
|
96495
96513
|
authType: AUTH_TYPES.OAUTH,
|
|
@@ -96689,7 +96707,7 @@ var parameters50 = {
|
|
|
96689
96707
|
|
|
96690
96708
|
// ../connectors/src/connectors/customerio/tools/request.ts
|
|
96691
96709
|
import { z as z60 } from "zod";
|
|
96692
|
-
var
|
|
96710
|
+
var REQUEST_TIMEOUT_MS43 = 6e4;
|
|
96693
96711
|
function getBaseUrl(region) {
|
|
96694
96712
|
return region === "eu" ? "https://api-eu.customer.io" : "https://api.customer.io";
|
|
96695
96713
|
}
|
|
@@ -96716,7 +96734,7 @@ var outputSchema58 = z60.discriminatedUnion("success", [
|
|
|
96716
96734
|
error: z60.string()
|
|
96717
96735
|
})
|
|
96718
96736
|
]);
|
|
96719
|
-
var
|
|
96737
|
+
var requestTool33 = new ConnectorTool({
|
|
96720
96738
|
name: "request",
|
|
96721
96739
|
description: `Send authenticated requests to the Customer.io App API.
|
|
96722
96740
|
Authentication is handled automatically using the App API Key (Bearer token).
|
|
@@ -96745,7 +96763,7 @@ The App API is the read and management path for Customer.io data.`,
|
|
|
96745
96763
|
url += `?${searchParams.toString()}`;
|
|
96746
96764
|
}
|
|
96747
96765
|
const controller = new AbortController();
|
|
96748
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
96766
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS43);
|
|
96749
96767
|
try {
|
|
96750
96768
|
const response = await fetch(url, {
|
|
96751
96769
|
method,
|
|
@@ -96782,7 +96800,7 @@ The App API is the read and management path for Customer.io data.`,
|
|
|
96782
96800
|
});
|
|
96783
96801
|
|
|
96784
96802
|
// ../connectors/src/connectors/customerio/index.ts
|
|
96785
|
-
var tools50 = { request:
|
|
96803
|
+
var tools50 = { request: requestTool33 };
|
|
96786
96804
|
var customerioConnector = new ConnectorPlugin({
|
|
96787
96805
|
slug: "customerio",
|
|
96788
96806
|
authType: null,
|
|
@@ -96967,8 +96985,8 @@ export default async function handler(c: Context) {
|
|
|
96967
96985
|
|
|
96968
96986
|
// ../connectors/src/connectors/gmail-oauth/tools/request.ts
|
|
96969
96987
|
import { z as z61 } from "zod";
|
|
96970
|
-
var
|
|
96971
|
-
var
|
|
96988
|
+
var BASE_URL30 = "https://gmail.googleapis.com/gmail/v1/users";
|
|
96989
|
+
var REQUEST_TIMEOUT_MS44 = 6e4;
|
|
96972
96990
|
var cachedToken21 = null;
|
|
96973
96991
|
async function getProxyToken21(config) {
|
|
96974
96992
|
if (cachedToken21 && cachedToken21.expiresAt > Date.now() + 6e4) {
|
|
@@ -97024,7 +97042,7 @@ var outputSchema59 = z61.discriminatedUnion("success", [
|
|
|
97024
97042
|
error: z61.string()
|
|
97025
97043
|
})
|
|
97026
97044
|
]);
|
|
97027
|
-
var
|
|
97045
|
+
var requestTool34 = new ConnectorTool({
|
|
97028
97046
|
name: "request",
|
|
97029
97047
|
description: `Send authenticated GET requests to the Gmail API v1.
|
|
97030
97048
|
Authentication is handled automatically via OAuth proxy.
|
|
@@ -97043,7 +97061,7 @@ All paths are relative to https://gmail.googleapis.com/gmail/v1/users. Use '/me'
|
|
|
97043
97061
|
`[connector-request] gmail-oauth/${connection.name}: ${method} ${path5}`
|
|
97044
97062
|
);
|
|
97045
97063
|
try {
|
|
97046
|
-
let url = `${
|
|
97064
|
+
let url = `${BASE_URL30}${path5.startsWith("/") ? "" : "/"}${path5}`;
|
|
97047
97065
|
if (queryParams) {
|
|
97048
97066
|
const searchParams = new URLSearchParams(queryParams);
|
|
97049
97067
|
url += `?${searchParams.toString()}`;
|
|
@@ -97051,7 +97069,7 @@ All paths are relative to https://gmail.googleapis.com/gmail/v1/users. Use '/me'
|
|
|
97051
97069
|
const token = await getProxyToken21(config.oauthProxy);
|
|
97052
97070
|
const proxyUrl = `https://${config.oauthProxy.sandboxId}.${config.oauthProxy.previewBaseDomain}/_sqcore/connections/${connectionId}/request`;
|
|
97053
97071
|
const controller = new AbortController();
|
|
97054
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
97072
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS44);
|
|
97055
97073
|
try {
|
|
97056
97074
|
const response = await fetch(proxyUrl, {
|
|
97057
97075
|
method: "POST",
|
|
@@ -97082,16 +97100,16 @@ All paths are relative to https://gmail.googleapis.com/gmail/v1/users. Use '/me'
|
|
|
97082
97100
|
});
|
|
97083
97101
|
|
|
97084
97102
|
// ../connectors/src/connectors/gmail-oauth/setup.ts
|
|
97085
|
-
var
|
|
97103
|
+
var requestToolName9 = `gmail-oauth_${requestTool34.name}`;
|
|
97086
97104
|
var gmailOnboarding = new ConnectorOnboarding({
|
|
97087
97105
|
connectionSetupInstructions: {
|
|
97088
97106
|
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
|
|
97089
97107
|
|
|
97090
|
-
1. \`${
|
|
97108
|
+
1. \`${requestToolName9}\` \u3092\u547C\u3073\u51FA\u3057\u3066\u30E6\u30FC\u30B6\u30FC\u306E\u30D7\u30ED\u30D5\u30A3\u30FC\u30EB\u3092\u53D6\u5F97\u3059\u308B:
|
|
97091
97109
|
- \`method\`: \`"GET"\`
|
|
97092
97110
|
- \`path\`: \`"/me/profile"\`
|
|
97093
97111
|
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
|
|
97094
|
-
3. \`${
|
|
97112
|
+
3. \`${requestToolName9}\` \u3092\u547C\u3073\u51FA\u3057\u3066\u30E9\u30D9\u30EB\u4E00\u89A7\u3092\u53D6\u5F97\u3059\u308B:
|
|
97095
97113
|
- \`method\`: \`"GET"\`
|
|
97096
97114
|
- \`path\`: \`"/me/labels"\`
|
|
97097
97115
|
4. \`updateConnectionContext\` \u3092\u547C\u3073\u51FA\u3059:
|
|
@@ -97104,11 +97122,11 @@ var gmailOnboarding = new ConnectorOnboarding({
|
|
|
97104
97122
|
- \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`,
|
|
97105
97123
|
en: `Follow these steps to set up the Gmail connection.
|
|
97106
97124
|
|
|
97107
|
-
1. Call \`${
|
|
97125
|
+
1. Call \`${requestToolName9}\` to get the user's profile:
|
|
97108
97126
|
- \`method\`: \`"GET"\`
|
|
97109
97127
|
- \`path\`: \`"/me/profile"\`
|
|
97110
97128
|
2. If an error is returned, ask the user to verify that OAuth authentication completed correctly
|
|
97111
|
-
3. Call \`${
|
|
97129
|
+
3. Call \`${requestToolName9}\` to get the label list:
|
|
97112
97130
|
- \`method\`: \`"GET"\`
|
|
97113
97131
|
- \`path\`: \`"/me/labels"\`
|
|
97114
97132
|
4. Call \`updateConnectionContext\`:
|
|
@@ -97134,7 +97152,7 @@ var gmailOnboarding = new ConnectorOnboarding({
|
|
|
97134
97152
|
var parameters51 = {};
|
|
97135
97153
|
|
|
97136
97154
|
// ../connectors/src/connectors/gmail-oauth/index.ts
|
|
97137
|
-
var tools51 = { request:
|
|
97155
|
+
var tools51 = { request: requestTool34 };
|
|
97138
97156
|
var gmailOauthConnector = new ConnectorPlugin({
|
|
97139
97157
|
slug: "gmail",
|
|
97140
97158
|
authType: AUTH_TYPES.OAUTH,
|
|
@@ -97349,7 +97367,7 @@ var parameters52 = {
|
|
|
97349
97367
|
};
|
|
97350
97368
|
|
|
97351
97369
|
// ../connectors/src/connectors/linkedin-ads/tools/list-ad-accounts.ts
|
|
97352
|
-
var
|
|
97370
|
+
var REQUEST_TIMEOUT_MS45 = 6e4;
|
|
97353
97371
|
var LINKEDIN_VERSION = "202603";
|
|
97354
97372
|
var inputSchema60 = z62.object({
|
|
97355
97373
|
toolUseIntent: z62.string().optional().describe(
|
|
@@ -97392,7 +97410,7 @@ var listAdAccountsTool3 = new ConnectorTool({
|
|
|
97392
97410
|
const accessToken = parameters52.accessToken.getValue(connection);
|
|
97393
97411
|
const url = "https://api.linkedin.com/rest/adAccounts?q=search&search=(status:(values:List(ACTIVE)))&pageSize=100";
|
|
97394
97412
|
const controller = new AbortController();
|
|
97395
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
97413
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS45);
|
|
97396
97414
|
try {
|
|
97397
97415
|
const response = await fetch(url, {
|
|
97398
97416
|
method: "GET",
|
|
@@ -97472,9 +97490,9 @@ var linkedinAdsOnboarding = new ConnectorOnboarding({
|
|
|
97472
97490
|
|
|
97473
97491
|
// ../connectors/src/connectors/linkedin-ads/tools/request.ts
|
|
97474
97492
|
import { z as z63 } from "zod";
|
|
97475
|
-
var
|
|
97493
|
+
var BASE_URL31 = "https://api.linkedin.com/rest/";
|
|
97476
97494
|
var LINKEDIN_VERSION2 = "202603";
|
|
97477
|
-
var
|
|
97495
|
+
var REQUEST_TIMEOUT_MS46 = 6e4;
|
|
97478
97496
|
var inputSchema61 = z63.object({
|
|
97479
97497
|
toolUseIntent: z63.string().optional().describe(
|
|
97480
97498
|
"Brief description of what you intend to accomplish with this tool call"
|
|
@@ -97498,7 +97516,7 @@ var outputSchema61 = z63.discriminatedUnion("success", [
|
|
|
97498
97516
|
error: z63.string()
|
|
97499
97517
|
})
|
|
97500
97518
|
]);
|
|
97501
|
-
var
|
|
97519
|
+
var requestTool35 = new ConnectorTool({
|
|
97502
97520
|
name: "request",
|
|
97503
97521
|
description: `Send authenticated requests to the LinkedIn Marketing API (REST).
|
|
97504
97522
|
Authentication is handled via the configured access token.
|
|
@@ -97521,14 +97539,14 @@ Required headers (Authorization, LinkedIn-Version, X-Restli-Protocol-Version) ar
|
|
|
97521
97539
|
const accessToken = parameters52.accessToken.getValue(connection);
|
|
97522
97540
|
const adAccountId = parameters52.adAccountId.tryGetValue(connection) ?? "";
|
|
97523
97541
|
const resolvedPath = adAccountId ? path5.replace(/\{adAccountId\}/g, adAccountId) : path5;
|
|
97524
|
-
let url = `${
|
|
97542
|
+
let url = `${BASE_URL31}${resolvedPath}`;
|
|
97525
97543
|
if (queryParams && Object.keys(queryParams).length > 0) {
|
|
97526
97544
|
const params = new URLSearchParams(queryParams);
|
|
97527
97545
|
const separator = url.includes("?") ? "&" : "?";
|
|
97528
97546
|
url = `${url}${separator}${params.toString()}`;
|
|
97529
97547
|
}
|
|
97530
97548
|
const controller = new AbortController();
|
|
97531
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
97549
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS46);
|
|
97532
97550
|
try {
|
|
97533
97551
|
const headers = {
|
|
97534
97552
|
Authorization: `Bearer ${accessToken}`,
|
|
@@ -97567,7 +97585,7 @@ Required headers (Authorization, LinkedIn-Version, X-Restli-Protocol-Version) ar
|
|
|
97567
97585
|
|
|
97568
97586
|
// ../connectors/src/connectors/linkedin-ads/index.ts
|
|
97569
97587
|
var tools52 = {
|
|
97570
|
-
request:
|
|
97588
|
+
request: requestTool35,
|
|
97571
97589
|
listAdAccounts: listAdAccountsTool3
|
|
97572
97590
|
};
|
|
97573
97591
|
var linkedinAdsConnector = new ConnectorPlugin({
|
|
@@ -97829,9 +97847,9 @@ const data = await res.json();
|
|
|
97829
97847
|
|
|
97830
97848
|
// ../connectors/src/connectors/linkedin-ads-oauth/tools/list-ad-accounts.ts
|
|
97831
97849
|
import { z as z64 } from "zod";
|
|
97832
|
-
var
|
|
97850
|
+
var BASE_URL32 = "https://api.linkedin.com/rest/";
|
|
97833
97851
|
var LINKEDIN_VERSION3 = "202603";
|
|
97834
|
-
var
|
|
97852
|
+
var REQUEST_TIMEOUT_MS47 = 6e4;
|
|
97835
97853
|
var cachedToken22 = null;
|
|
97836
97854
|
async function getProxyToken22(config) {
|
|
97837
97855
|
if (cachedToken22 && cachedToken22.expiresAt > Date.now() + 6e4) {
|
|
@@ -97904,7 +97922,7 @@ var listAdAccountsTool4 = new ConnectorTool({
|
|
|
97904
97922
|
const token = await getProxyToken22(config.oauthProxy);
|
|
97905
97923
|
const proxyUrl = `https://${config.oauthProxy.sandboxId}.${config.oauthProxy.previewBaseDomain}/_sqcore/connections/${connectionId}/request`;
|
|
97906
97924
|
const controller = new AbortController();
|
|
97907
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
97925
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS47);
|
|
97908
97926
|
try {
|
|
97909
97927
|
const response = await fetch(proxyUrl, {
|
|
97910
97928
|
method: "POST",
|
|
@@ -97913,7 +97931,7 @@ var listAdAccountsTool4 = new ConnectorTool({
|
|
|
97913
97931
|
Authorization: `Bearer ${token}`
|
|
97914
97932
|
},
|
|
97915
97933
|
body: JSON.stringify({
|
|
97916
|
-
url: `${
|
|
97934
|
+
url: `${BASE_URL32}adAccounts?q=search&search=(status:(values:List(ACTIVE)))&pageSize=100`,
|
|
97917
97935
|
method: "GET",
|
|
97918
97936
|
headers: {
|
|
97919
97937
|
"LinkedIn-Version": LINKEDIN_VERSION3,
|
|
@@ -98004,9 +98022,9 @@ var parameters53 = {
|
|
|
98004
98022
|
|
|
98005
98023
|
// ../connectors/src/connectors/linkedin-ads-oauth/tools/request.ts
|
|
98006
98024
|
import { z as z65 } from "zod";
|
|
98007
|
-
var
|
|
98025
|
+
var BASE_URL33 = "https://api.linkedin.com/rest/";
|
|
98008
98026
|
var LINKEDIN_VERSION4 = "202603";
|
|
98009
|
-
var
|
|
98027
|
+
var REQUEST_TIMEOUT_MS48 = 6e4;
|
|
98010
98028
|
var cachedToken23 = null;
|
|
98011
98029
|
async function getProxyToken23(config) {
|
|
98012
98030
|
if (cachedToken23 && cachedToken23.expiresAt > Date.now() + 6e4) {
|
|
@@ -98061,7 +98079,7 @@ var outputSchema63 = z65.discriminatedUnion("success", [
|
|
|
98061
98079
|
error: z65.string()
|
|
98062
98080
|
})
|
|
98063
98081
|
]);
|
|
98064
|
-
var
|
|
98082
|
+
var requestTool36 = new ConnectorTool({
|
|
98065
98083
|
name: "request",
|
|
98066
98084
|
description: `Send authenticated requests to the LinkedIn Marketing API (REST).
|
|
98067
98085
|
Authentication is handled automatically via OAuth proxy.
|
|
@@ -98083,7 +98101,7 @@ Required headers (LinkedIn-Version, X-Restli-Protocol-Version) are set automatic
|
|
|
98083
98101
|
try {
|
|
98084
98102
|
const adAccountId = parameters53.adAccountId.tryGetValue(connection) ?? "";
|
|
98085
98103
|
const resolvedPath = adAccountId ? path5.replace(/\{adAccountId\}/g, adAccountId) : path5;
|
|
98086
|
-
let url = `${
|
|
98104
|
+
let url = `${BASE_URL33}${resolvedPath}`;
|
|
98087
98105
|
if (queryParams && Object.keys(queryParams).length > 0) {
|
|
98088
98106
|
const params = new URLSearchParams(queryParams);
|
|
98089
98107
|
const separator = url.includes("?") ? "&" : "?";
|
|
@@ -98092,7 +98110,7 @@ Required headers (LinkedIn-Version, X-Restli-Protocol-Version) are set automatic
|
|
|
98092
98110
|
const token = await getProxyToken23(config.oauthProxy);
|
|
98093
98111
|
const proxyUrl = `https://${config.oauthProxy.sandboxId}.${config.oauthProxy.previewBaseDomain}/_sqcore/connections/${connectionId}/request`;
|
|
98094
98112
|
const controller = new AbortController();
|
|
98095
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
98113
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS48);
|
|
98096
98114
|
try {
|
|
98097
98115
|
const additionalHeaders = {
|
|
98098
98116
|
"LinkedIn-Version": LINKEDIN_VERSION4,
|
|
@@ -98137,7 +98155,7 @@ Required headers (LinkedIn-Version, X-Restli-Protocol-Version) are set automatic
|
|
|
98137
98155
|
|
|
98138
98156
|
// ../connectors/src/connectors/linkedin-ads-oauth/index.ts
|
|
98139
98157
|
var tools53 = {
|
|
98140
|
-
request:
|
|
98158
|
+
request: requestTool36,
|
|
98141
98159
|
listAdAccounts: listAdAccountsTool4
|
|
98142
98160
|
};
|
|
98143
98161
|
var linkedinAdsOauthConnector = new ConnectorPlugin({
|
|
@@ -98421,7 +98439,7 @@ var parameters54 = {
|
|
|
98421
98439
|
|
|
98422
98440
|
// ../connectors/src/connectors/zendesk/tools/request.ts
|
|
98423
98441
|
import { z as z66 } from "zod";
|
|
98424
|
-
var
|
|
98442
|
+
var REQUEST_TIMEOUT_MS49 = 6e4;
|
|
98425
98443
|
var inputSchema64 = z66.object({
|
|
98426
98444
|
toolUseIntent: z66.string().optional().describe(
|
|
98427
98445
|
"Brief description of what you intend to accomplish with this tool call"
|
|
@@ -98446,7 +98464,7 @@ var outputSchema64 = z66.discriminatedUnion("success", [
|
|
|
98446
98464
|
error: z66.string()
|
|
98447
98465
|
})
|
|
98448
98466
|
]);
|
|
98449
|
-
var
|
|
98467
|
+
var requestTool37 = new ConnectorTool({
|
|
98450
98468
|
name: "request",
|
|
98451
98469
|
description: `Send authenticated requests to the Zendesk Support API.
|
|
98452
98470
|
Authentication is handled automatically using email/token Basic auth.
|
|
@@ -98474,7 +98492,7 @@ Zendesk uses cursor-based pagination with page[size] and page[after] parameters.
|
|
|
98474
98492
|
);
|
|
98475
98493
|
const url = `https://${subdomain}.zendesk.com${path5.startsWith("/") ? "" : "/"}${path5}`;
|
|
98476
98494
|
const controller = new AbortController();
|
|
98477
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
98495
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS49);
|
|
98478
98496
|
try {
|
|
98479
98497
|
const response = await fetch(url, {
|
|
98480
98498
|
method,
|
|
@@ -98502,7 +98520,7 @@ Zendesk uses cursor-based pagination with page[size] and page[after] parameters.
|
|
|
98502
98520
|
});
|
|
98503
98521
|
|
|
98504
98522
|
// ../connectors/src/connectors/zendesk/index.ts
|
|
98505
|
-
var tools54 = { request:
|
|
98523
|
+
var tools54 = { request: requestTool37 };
|
|
98506
98524
|
var zendeskConnector = new ConnectorPlugin({
|
|
98507
98525
|
slug: "zendesk",
|
|
98508
98526
|
authType: null,
|
|
@@ -98691,7 +98709,7 @@ export default async function handler(c: Context) {
|
|
|
98691
98709
|
|
|
98692
98710
|
// ../connectors/src/connectors/zendesk-oauth/tools/request.ts
|
|
98693
98711
|
import { z as z67 } from "zod";
|
|
98694
|
-
var
|
|
98712
|
+
var REQUEST_TIMEOUT_MS50 = 6e4;
|
|
98695
98713
|
var cachedToken24 = null;
|
|
98696
98714
|
async function getProxyToken24(config) {
|
|
98697
98715
|
if (cachedToken24 && cachedToken24.expiresAt > Date.now() + 6e4) {
|
|
@@ -98746,7 +98764,7 @@ var outputSchema65 = z67.discriminatedUnion("success", [
|
|
|
98746
98764
|
error: z67.string()
|
|
98747
98765
|
})
|
|
98748
98766
|
]);
|
|
98749
|
-
var
|
|
98767
|
+
var requestTool38 = new ConnectorTool({
|
|
98750
98768
|
name: "request",
|
|
98751
98769
|
description: `Send authenticated requests to the Zendesk Support API.
|
|
98752
98770
|
Authentication is handled automatically via OAuth proxy.
|
|
@@ -98775,7 +98793,7 @@ Zendesk uses cursor-based pagination with page[size] and page[after] parameters.
|
|
|
98775
98793
|
const token = await getProxyToken24(config.oauthProxy);
|
|
98776
98794
|
const proxyUrl = `https://${config.oauthProxy.sandboxId}.${config.oauthProxy.previewBaseDomain}/_sqcore/connections/${connectionId}/request`;
|
|
98777
98795
|
const controller = new AbortController();
|
|
98778
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
98796
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS50);
|
|
98779
98797
|
try {
|
|
98780
98798
|
const response = await fetch(proxyUrl, {
|
|
98781
98799
|
method: "POST",
|
|
@@ -98807,12 +98825,12 @@ Zendesk uses cursor-based pagination with page[size] and page[after] parameters.
|
|
|
98807
98825
|
});
|
|
98808
98826
|
|
|
98809
98827
|
// ../connectors/src/connectors/zendesk-oauth/setup.ts
|
|
98810
|
-
var
|
|
98828
|
+
var requestToolName10 = `zendesk-oauth_${requestTool38.name}`;
|
|
98811
98829
|
var zendeskOauthOnboarding = new ConnectorOnboarding({
|
|
98812
98830
|
connectionSetupInstructions: {
|
|
98813
98831
|
en: `Follow these steps to set up the Zendesk connection.
|
|
98814
98832
|
|
|
98815
|
-
1. Call \`${
|
|
98833
|
+
1. Call \`${requestToolName10}\` to fetch account info:
|
|
98816
98834
|
- \`method\`: \`"GET"\`
|
|
98817
98835
|
- \`path\`: \`"/api/v2/account/settings.json"\`
|
|
98818
98836
|
2. If an error is returned, ask the user to check the OAuth connection settings
|
|
@@ -98825,7 +98843,7 @@ var zendeskOauthOnboarding = new ConnectorOnboarding({
|
|
|
98825
98843
|
- Write only 1 sentence between tool calls, then immediately call the next tool. Skip unnecessary explanations and proceed efficiently`,
|
|
98826
98844
|
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
|
|
98827
98845
|
|
|
98828
|
-
1. \`${
|
|
98846
|
+
1. \`${requestToolName10}\` \u3092\u547C\u3073\u51FA\u3057\u3066\u3001\u30A2\u30AB\u30A6\u30F3\u30C8\u60C5\u5831\u3092\u53D6\u5F97\u3059\u308B:
|
|
98829
98847
|
- \`method\`: \`"GET"\`
|
|
98830
98848
|
- \`path\`: \`"/api/v2/account/settings.json"\`
|
|
98831
98849
|
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
|
|
@@ -98853,7 +98871,7 @@ var zendeskOauthOnboarding = new ConnectorOnboarding({
|
|
|
98853
98871
|
var parameters55 = {};
|
|
98854
98872
|
|
|
98855
98873
|
// ../connectors/src/connectors/zendesk-oauth/index.ts
|
|
98856
|
-
var tools55 = { request:
|
|
98874
|
+
var tools55 = { request: requestTool38 };
|
|
98857
98875
|
var zendeskOauthConnector = new ConnectorPlugin({
|
|
98858
98876
|
slug: "zendesk",
|
|
98859
98877
|
authType: AUTH_TYPES.OAUTH,
|
|
@@ -99042,9 +99060,9 @@ var parameters56 = {
|
|
|
99042
99060
|
|
|
99043
99061
|
// ../connectors/src/connectors/intercom/tools/request.ts
|
|
99044
99062
|
import { z as z68 } from "zod";
|
|
99045
|
-
var
|
|
99063
|
+
var BASE_URL34 = "https://api.intercom.io";
|
|
99046
99064
|
var API_VERSION = "2.11";
|
|
99047
|
-
var
|
|
99065
|
+
var REQUEST_TIMEOUT_MS51 = 6e4;
|
|
99048
99066
|
var inputSchema66 = z68.object({
|
|
99049
99067
|
toolUseIntent: z68.string().optional().describe(
|
|
99050
99068
|
"Brief description of what you intend to accomplish with this tool call"
|
|
@@ -99069,7 +99087,7 @@ var outputSchema66 = z68.discriminatedUnion("success", [
|
|
|
99069
99087
|
error: z68.string()
|
|
99070
99088
|
})
|
|
99071
99089
|
]);
|
|
99072
|
-
var
|
|
99090
|
+
var requestTool39 = new ConnectorTool({
|
|
99073
99091
|
name: "request",
|
|
99074
99092
|
description: `Send authenticated requests to the Intercom API.
|
|
99075
99093
|
Authentication is handled automatically using the Access Token (Bearer token).
|
|
@@ -99092,9 +99110,9 @@ The Intercom-Version header is set to 2.11 automatically.`,
|
|
|
99092
99110
|
);
|
|
99093
99111
|
try {
|
|
99094
99112
|
const accessToken = parameters56.accessToken.getValue(connection);
|
|
99095
|
-
const url = `${
|
|
99113
|
+
const url = `${BASE_URL34}${path5.startsWith("/") ? "" : "/"}${path5}`;
|
|
99096
99114
|
const controller = new AbortController();
|
|
99097
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
99115
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS51);
|
|
99098
99116
|
try {
|
|
99099
99117
|
const response = await fetch(url, {
|
|
99100
99118
|
method,
|
|
@@ -99125,7 +99143,7 @@ The Intercom-Version header is set to 2.11 automatically.`,
|
|
|
99125
99143
|
});
|
|
99126
99144
|
|
|
99127
99145
|
// ../connectors/src/connectors/intercom/index.ts
|
|
99128
|
-
var tools56 = { request:
|
|
99146
|
+
var tools56 = { request: requestTool39 };
|
|
99129
99147
|
var intercomConnector = new ConnectorPlugin({
|
|
99130
99148
|
slug: "intercom",
|
|
99131
99149
|
authType: null,
|
|
@@ -99334,8 +99352,8 @@ export default async function handler(c: Context) {
|
|
|
99334
99352
|
|
|
99335
99353
|
// ../connectors/src/connectors/intercom-oauth/tools/request.ts
|
|
99336
99354
|
import { z as z69 } from "zod";
|
|
99337
|
-
var
|
|
99338
|
-
var
|
|
99355
|
+
var BASE_URL35 = "https://api.intercom.io";
|
|
99356
|
+
var REQUEST_TIMEOUT_MS52 = 6e4;
|
|
99339
99357
|
var cachedToken25 = null;
|
|
99340
99358
|
async function getProxyToken25(config) {
|
|
99341
99359
|
if (cachedToken25 && cachedToken25.expiresAt > Date.now() + 6e4) {
|
|
@@ -99390,7 +99408,7 @@ var outputSchema67 = z69.discriminatedUnion("success", [
|
|
|
99390
99408
|
error: z69.string()
|
|
99391
99409
|
})
|
|
99392
99410
|
]);
|
|
99393
|
-
var
|
|
99411
|
+
var requestTool40 = new ConnectorTool({
|
|
99394
99412
|
name: "request",
|
|
99395
99413
|
description: `Send authenticated requests to the Intercom API.
|
|
99396
99414
|
Authentication is handled automatically via OAuth proxy.
|
|
@@ -99411,7 +99429,7 @@ Search endpoints (contacts/search, conversations/search) use POST with a query o
|
|
|
99411
99429
|
`[connector-request] intercom-oauth/${connection.name}: ${method} ${path5}`
|
|
99412
99430
|
);
|
|
99413
99431
|
try {
|
|
99414
|
-
let url = `${
|
|
99432
|
+
let url = `${BASE_URL35}${path5.startsWith("/") ? "" : "/"}${path5}`;
|
|
99415
99433
|
if (queryParams) {
|
|
99416
99434
|
const searchParams = new URLSearchParams(queryParams);
|
|
99417
99435
|
const separator = url.includes("?") ? "&" : "?";
|
|
@@ -99420,7 +99438,7 @@ Search endpoints (contacts/search, conversations/search) use POST with a query o
|
|
|
99420
99438
|
const token = await getProxyToken25(config.oauthProxy);
|
|
99421
99439
|
const proxyUrl = `https://${config.oauthProxy.sandboxId}.${config.oauthProxy.previewBaseDomain}/_sqcore/connections/${connectionId}/request`;
|
|
99422
99440
|
const controller = new AbortController();
|
|
99423
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
99441
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS52);
|
|
99424
99442
|
try {
|
|
99425
99443
|
const response = await fetch(proxyUrl, {
|
|
99426
99444
|
method: "POST",
|
|
@@ -99453,12 +99471,12 @@ Search endpoints (contacts/search, conversations/search) use POST with a query o
|
|
|
99453
99471
|
});
|
|
99454
99472
|
|
|
99455
99473
|
// ../connectors/src/connectors/intercom-oauth/setup.ts
|
|
99456
|
-
var
|
|
99474
|
+
var requestToolName11 = `intercom-oauth_${requestTool40.name}`;
|
|
99457
99475
|
var intercomOauthOnboarding = new ConnectorOnboarding({
|
|
99458
99476
|
connectionSetupInstructions: {
|
|
99459
99477
|
en: `Follow these steps to set up the Intercom connection.
|
|
99460
99478
|
|
|
99461
|
-
1. Call \`${
|
|
99479
|
+
1. Call \`${requestToolName11}\` to verify the connection:
|
|
99462
99480
|
- \`method\`: \`"GET"\`
|
|
99463
99481
|
- \`path\`: \`"/me"\`
|
|
99464
99482
|
2. If an error is returned, ask the user to check the OAuth connection settings
|
|
@@ -99471,7 +99489,7 @@ var intercomOauthOnboarding = new ConnectorOnboarding({
|
|
|
99471
99489
|
- Write only 1 sentence between tool calls, then immediately call the next tool. Skip unnecessary explanations and proceed efficiently`,
|
|
99472
99490
|
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
|
|
99473
99491
|
|
|
99474
|
-
1. \`${
|
|
99492
|
+
1. \`${requestToolName11}\` \u3092\u547C\u3073\u51FA\u3057\u3066\u3001\u63A5\u7D9A\u3092\u78BA\u8A8D\u3059\u308B:
|
|
99475
99493
|
- \`method\`: \`"GET"\`
|
|
99476
99494
|
- \`path\`: \`"/me"\`
|
|
99477
99495
|
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
|
|
@@ -99499,7 +99517,7 @@ var intercomOauthOnboarding = new ConnectorOnboarding({
|
|
|
99499
99517
|
var parameters57 = {};
|
|
99500
99518
|
|
|
99501
99519
|
// ../connectors/src/connectors/intercom-oauth/index.ts
|
|
99502
|
-
var tools57 = { request:
|
|
99520
|
+
var tools57 = { request: requestTool40 };
|
|
99503
99521
|
var intercomOauthConnector = new ConnectorPlugin({
|
|
99504
99522
|
slug: "intercom",
|
|
99505
99523
|
authType: AUTH_TYPES.OAUTH,
|
|
@@ -99721,7 +99739,7 @@ var parameters58 = {
|
|
|
99721
99739
|
|
|
99722
99740
|
// ../connectors/src/connectors/mixpanel/tools/request.ts
|
|
99723
99741
|
import { z as z70 } from "zod";
|
|
99724
|
-
var
|
|
99742
|
+
var REQUEST_TIMEOUT_MS53 = 6e4;
|
|
99725
99743
|
var inputSchema68 = z70.object({
|
|
99726
99744
|
toolUseIntent: z70.string().optional().describe(
|
|
99727
99745
|
"Brief description of what you intend to accomplish with this tool call"
|
|
@@ -99751,7 +99769,7 @@ var outputSchema68 = z70.discriminatedUnion("success", [
|
|
|
99751
99769
|
error: z70.string()
|
|
99752
99770
|
})
|
|
99753
99771
|
]);
|
|
99754
|
-
var
|
|
99772
|
+
var requestTool41 = new ConnectorTool({
|
|
99755
99773
|
name: "request",
|
|
99756
99774
|
description: `Send authenticated requests to the Mixpanel REST API.
|
|
99757
99775
|
Authentication is handled automatically using Basic auth (Service Account username + secret).
|
|
@@ -99794,7 +99812,7 @@ Rate limit: 60 queries/hour, 5 concurrent queries for Query API.`,
|
|
|
99794
99812
|
finalUrl = urlObj.toString();
|
|
99795
99813
|
}
|
|
99796
99814
|
const controller = new AbortController();
|
|
99797
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
99815
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS53);
|
|
99798
99816
|
try {
|
|
99799
99817
|
const headers = {
|
|
99800
99818
|
Authorization: `Basic ${authToken}`,
|
|
@@ -99845,7 +99863,7 @@ Rate limit: 60 queries/hour, 5 concurrent queries for Query API.`,
|
|
|
99845
99863
|
});
|
|
99846
99864
|
|
|
99847
99865
|
// ../connectors/src/connectors/mixpanel/index.ts
|
|
99848
|
-
var tools58 = { request:
|
|
99866
|
+
var tools58 = { request: requestTool41 };
|
|
99849
99867
|
var mixpanelConnector = new ConnectorPlugin({
|
|
99850
99868
|
slug: "mixpanel",
|
|
99851
99869
|
authType: null,
|
|
@@ -100029,7 +100047,7 @@ var parameters59 = {
|
|
|
100029
100047
|
|
|
100030
100048
|
// ../connectors/src/connectors/posthog/tools/request.ts
|
|
100031
100049
|
import { z as z71 } from "zod";
|
|
100032
|
-
var
|
|
100050
|
+
var REQUEST_TIMEOUT_MS54 = 6e4;
|
|
100033
100051
|
var inputSchema69 = z71.object({
|
|
100034
100052
|
toolUseIntent: z71.string().optional().describe(
|
|
100035
100053
|
"Brief description of what you intend to accomplish with this tool call"
|
|
@@ -100054,7 +100072,7 @@ var outputSchema69 = z71.discriminatedUnion("success", [
|
|
|
100054
100072
|
error: z71.string()
|
|
100055
100073
|
})
|
|
100056
100074
|
]);
|
|
100057
|
-
var
|
|
100075
|
+
var requestTool42 = new ConnectorTool({
|
|
100058
100076
|
name: "request",
|
|
100059
100077
|
description: `Send authenticated requests to the PostHog REST API.
|
|
100060
100078
|
Authentication is handled automatically using a Bearer token (Personal API Key).
|
|
@@ -100090,7 +100108,7 @@ Rate limit: 240/minute, 1200/hour for analytics endpoints.`,
|
|
|
100090
100108
|
const host = parameters59.host.tryGetValue(connection) ?? "https://us.posthog.com";
|
|
100091
100109
|
const url = `${host.replace(/\/$/, "")}${path5}`;
|
|
100092
100110
|
const controller = new AbortController();
|
|
100093
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
100111
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS54);
|
|
100094
100112
|
try {
|
|
100095
100113
|
const headers = {
|
|
100096
100114
|
Authorization: `Bearer ${apiKey}`,
|
|
@@ -100120,7 +100138,7 @@ Rate limit: 240/minute, 1200/hour for analytics endpoints.`,
|
|
|
100120
100138
|
});
|
|
100121
100139
|
|
|
100122
100140
|
// ../connectors/src/connectors/posthog/index.ts
|
|
100123
|
-
var tools59 = { request:
|
|
100141
|
+
var tools59 = { request: requestTool42 };
|
|
100124
100142
|
var posthogConnector = new ConnectorPlugin({
|
|
100125
100143
|
slug: "posthog",
|
|
100126
100144
|
authType: null,
|
|
@@ -100299,6 +100317,7 @@ var plugins = {
|
|
|
100299
100317
|
googleSheetsOauth: googleSheetsOauthConnector,
|
|
100300
100318
|
hubspotOauth: hubspotOauthConnector,
|
|
100301
100319
|
stripeOauth: stripeOauthConnector,
|
|
100320
|
+
stripeApiKey: stripeApiKeyConnector,
|
|
100302
100321
|
airtable: airtableConnector,
|
|
100303
100322
|
airtableOauth: airtableOauthConnector,
|
|
100304
100323
|
squadbaseDb: squadbaseDbConnector,
|
|
@@ -100319,7 +100338,6 @@ var plugins = {
|
|
|
100319
100338
|
jira: jiraConnector,
|
|
100320
100339
|
linear: linearConnector,
|
|
100321
100340
|
asana: asanaConnector,
|
|
100322
|
-
trino: trinoConnector,
|
|
100323
100341
|
clickhouse: clickhouseConnector,
|
|
100324
100342
|
mongodb: mongodbConnector,
|
|
100325
100343
|
notion: notionConnector,
|