@tangle-network/agent-integrations 0.45.0 → 0.47.0
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/catalog.js +2 -2
- package/dist/{chunk-WTMOFI3U.js → chunk-EPDUDWOD.js} +229 -36
- package/dist/{chunk-WTMOFI3U.js.map → chunk-EPDUDWOD.js.map} +1 -1
- package/dist/{chunk-E6BBOBYT.js → chunk-G3S6OGY6.js} +2 -2
- package/dist/connectors/adapters/index.d.ts +15 -4
- package/dist/connectors/adapters/index.js +1 -1
- package/dist/connectors/index.js +1 -1
- package/dist/index.js +2 -2
- package/dist/mcp.js +2 -2
- package/dist/registry.js +2 -2
- package/dist/runtime.js +2 -2
- package/package.json +1 -1
- /package/dist/{chunk-E6BBOBYT.js.map → chunk-G3S6OGY6.js.map} +0 -0
package/dist/catalog.js
CHANGED
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
parseIntegrationToolName,
|
|
8
8
|
searchIntegrationTools,
|
|
9
9
|
toMcpTools
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-G3S6OGY6.js";
|
|
11
11
|
import "./chunk-S2BUASSV.js";
|
|
12
12
|
import "./chunk-LA76XB7M.js";
|
|
13
13
|
import "./chunk-H4XYLS7T.js";
|
|
@@ -15,7 +15,7 @@ import "./chunk-VLVSP7SP.js";
|
|
|
15
15
|
import "./chunk-IA5GCKM6.js";
|
|
16
16
|
import "./chunk-7P2LN4VT.js";
|
|
17
17
|
import "./chunk-376UBTNB.js";
|
|
18
|
-
import "./chunk-
|
|
18
|
+
import "./chunk-EPDUDWOD.js";
|
|
19
19
|
import "./chunk-2TW2QKGZ.js";
|
|
20
20
|
import "./chunk-UWF33ESC.js";
|
|
21
21
|
import "./chunk-PZ5AY32C.js";
|
|
@@ -2350,6 +2350,119 @@ async function createSheet(inv, accessToken, timeoutMs) {
|
|
|
2350
2350
|
};
|
|
2351
2351
|
}
|
|
2352
2352
|
|
|
2353
|
+
// src/connectors/adapters/aws-sigv4.ts
|
|
2354
|
+
import { createHash as createHash3, createHmac } from "crypto";
|
|
2355
|
+
var ALGORITHM = "AWS4-HMAC-SHA256";
|
|
2356
|
+
function parseAwsCredentialBundle(credentials) {
|
|
2357
|
+
if (credentials.kind !== "api-key") {
|
|
2358
|
+
throw new Error(`AWS SigV4 connectors require api-key credentials, got ${credentials.kind}`);
|
|
2359
|
+
}
|
|
2360
|
+
let raw;
|
|
2361
|
+
try {
|
|
2362
|
+
raw = JSON.parse(credentials.apiKey);
|
|
2363
|
+
} catch {
|
|
2364
|
+
throw new Error(
|
|
2365
|
+
"AWS credential must be a JSON object with accessKeyId, secretAccessKey, and region \u2014 received a non-JSON string"
|
|
2366
|
+
);
|
|
2367
|
+
}
|
|
2368
|
+
if (!raw || typeof raw !== "object") {
|
|
2369
|
+
throw new Error("AWS credential bundle must be a JSON object with accessKeyId, secretAccessKey, and region");
|
|
2370
|
+
}
|
|
2371
|
+
const o = raw;
|
|
2372
|
+
const accessKeyId = pickString(o, ["accessKeyId", "access_key_id", "awsAccessKeyId", "AccessKeyId"]);
|
|
2373
|
+
const secretAccessKey = pickString(o, [
|
|
2374
|
+
"secretAccessKey",
|
|
2375
|
+
"secret_access_key",
|
|
2376
|
+
"awsSecretAccessKey",
|
|
2377
|
+
"SecretAccessKey",
|
|
2378
|
+
"secretKey"
|
|
2379
|
+
]);
|
|
2380
|
+
const region = pickString(o, ["region", "awsRegion", "Region"]) ?? "";
|
|
2381
|
+
const sessionToken = pickString(o, ["sessionToken", "session_token", "awsSessionToken", "SessionToken"]);
|
|
2382
|
+
const endpoint = pickString(o, ["endpoint", "Endpoint"]);
|
|
2383
|
+
if (!accessKeyId || !secretAccessKey) {
|
|
2384
|
+
throw new Error("AWS credential bundle is missing accessKeyId and/or secretAccessKey");
|
|
2385
|
+
}
|
|
2386
|
+
return { accessKeyId, secretAccessKey, region, sessionToken, endpoint };
|
|
2387
|
+
}
|
|
2388
|
+
function signSigV4(input) {
|
|
2389
|
+
const { method, url, body, service, region, accessKeyId, secretAccessKey, sessionToken, amzDate } = input;
|
|
2390
|
+
const dateStamp = amzDate.slice(0, 8);
|
|
2391
|
+
const payloadHash = hashSha256Hex(body);
|
|
2392
|
+
const headerMap = /* @__PURE__ */ new Map();
|
|
2393
|
+
for (const [key, value] of Object.entries(input.headers)) {
|
|
2394
|
+
const name = key.toLowerCase().trim();
|
|
2395
|
+
if (name === "authorization") continue;
|
|
2396
|
+
headerMap.set(name, collapseWhitespace(value));
|
|
2397
|
+
}
|
|
2398
|
+
headerMap.set("host", url.host);
|
|
2399
|
+
headerMap.set("x-amz-date", amzDate);
|
|
2400
|
+
if (sessionToken) headerMap.set("x-amz-security-token", sessionToken);
|
|
2401
|
+
const sortedNames = [...headerMap.keys()].sort();
|
|
2402
|
+
const canonicalHeaders = sortedNames.map((name) => `${name}:${headerMap.get(name)}
|
|
2403
|
+
`).join("");
|
|
2404
|
+
const signedHeaders = sortedNames.join(";");
|
|
2405
|
+
const canonicalRequest = [
|
|
2406
|
+
method.toUpperCase(),
|
|
2407
|
+
canonicalUri(url.pathname, service),
|
|
2408
|
+
canonicalizeAwsQuery(url.searchParams),
|
|
2409
|
+
canonicalHeaders,
|
|
2410
|
+
signedHeaders,
|
|
2411
|
+
payloadHash
|
|
2412
|
+
].join("\n");
|
|
2413
|
+
const credentialScope = `${dateStamp}/${region}/${service}/aws4_request`;
|
|
2414
|
+
const stringToSign = [ALGORITHM, amzDate, credentialScope, hashSha256Hex(canonicalRequest)].join("\n");
|
|
2415
|
+
const signingKey = deriveSigningKey(secretAccessKey, dateStamp, region, service);
|
|
2416
|
+
const signature = createHmac("sha256", signingKey).update(stringToSign, "utf8").digest("hex");
|
|
2417
|
+
const authorization = `${ALGORITHM} Credential=${accessKeyId}/${credentialScope}, SignedHeaders=${signedHeaders}, Signature=${signature}`;
|
|
2418
|
+
return { amzDate, signedHeaders, canonicalRequest, stringToSign, signature, authorization };
|
|
2419
|
+
}
|
|
2420
|
+
function amzDateNow(date = /* @__PURE__ */ new Date()) {
|
|
2421
|
+
return date.toISOString().replace(/[:-]|\.\d{3}/g, "");
|
|
2422
|
+
}
|
|
2423
|
+
function hashSha256Hex(data) {
|
|
2424
|
+
return createHash3("sha256").update(data, "utf8").digest("hex");
|
|
2425
|
+
}
|
|
2426
|
+
function deriveSigningKey(secretAccessKey, dateStamp, region, service) {
|
|
2427
|
+
const kDate = createHmac("sha256", `AWS4${secretAccessKey}`).update(dateStamp, "utf8").digest();
|
|
2428
|
+
const kRegion = createHmac("sha256", kDate).update(region, "utf8").digest();
|
|
2429
|
+
const kService = createHmac("sha256", kRegion).update(service, "utf8").digest();
|
|
2430
|
+
return createHmac("sha256", kService).update("aws4_request", "utf8").digest();
|
|
2431
|
+
}
|
|
2432
|
+
function canonicalUri(pathname, service) {
|
|
2433
|
+
if (!pathname) return "/";
|
|
2434
|
+
if (service === "s3") return pathname;
|
|
2435
|
+
const segments = [];
|
|
2436
|
+
for (const segment of pathname.split("/")) {
|
|
2437
|
+
if (segment.length === 0 || segment === ".") continue;
|
|
2438
|
+
if (segment === "..") segments.pop();
|
|
2439
|
+
else segments.push(segment);
|
|
2440
|
+
}
|
|
2441
|
+
const normalized = `/${segments.join("/")}${segments.length > 0 && pathname.endsWith("/") ? "/" : ""}`;
|
|
2442
|
+
return awsUriEncode(normalized).replace(/%2F/g, "/");
|
|
2443
|
+
}
|
|
2444
|
+
function canonicalizeAwsQuery(params) {
|
|
2445
|
+
const pairs = [];
|
|
2446
|
+
for (const [key, value] of params) {
|
|
2447
|
+
pairs.push([awsUriEncode(key), awsUriEncode(value)]);
|
|
2448
|
+
}
|
|
2449
|
+
pairs.sort((a, b) => a[0] < b[0] ? -1 : a[0] > b[0] ? 1 : a[1] < b[1] ? -1 : a[1] > b[1] ? 1 : 0);
|
|
2450
|
+
return pairs.map(([key, value]) => `${key}=${value}`).join("&");
|
|
2451
|
+
}
|
|
2452
|
+
function awsUriEncode(value) {
|
|
2453
|
+
return encodeURIComponent(value).replace(/[!'()*]/g, (ch) => `%${ch.charCodeAt(0).toString(16).toUpperCase()}`);
|
|
2454
|
+
}
|
|
2455
|
+
function collapseWhitespace(value) {
|
|
2456
|
+
return value.trim().replace(/\s+/g, " ");
|
|
2457
|
+
}
|
|
2458
|
+
function pickString(obj, keys) {
|
|
2459
|
+
for (const key of keys) {
|
|
2460
|
+
const value = obj[key];
|
|
2461
|
+
if (typeof value === "string" && value.length > 0) return value;
|
|
2462
|
+
}
|
|
2463
|
+
return void 0;
|
|
2464
|
+
}
|
|
2465
|
+
|
|
2353
2466
|
// src/connectors/adapters/declarative-rest.ts
|
|
2354
2467
|
function declarativeRestConnector(spec) {
|
|
2355
2468
|
const capabilities = spec.capabilities.map(operationToCapability);
|
|
@@ -2449,7 +2562,11 @@ function requiredArgsOf(parameters) {
|
|
|
2449
2562
|
return Array.isArray(required) ? required.filter((entry) => typeof entry === "string") : void 0;
|
|
2450
2563
|
}
|
|
2451
2564
|
async function executeRestRequest(spec, request, inv, requiredArgs) {
|
|
2452
|
-
const
|
|
2565
|
+
const placement = spec.credentialPlacement ?? { kind: "bearer" };
|
|
2566
|
+
const aws = placement.kind === "aws-sigv4" ? parseAwsCredentialBundle(inv.source.credentials) : void 0;
|
|
2567
|
+
const awsRegion = aws ? resolveAwsRegion(aws, inv.source.metadata, placement) : void 0;
|
|
2568
|
+
let baseUrl = resolveBaseUrl(spec.baseUrl, inv.source.metadata);
|
|
2569
|
+
if (aws) baseUrl = applyRegionTemplate(baseUrl, awsRegion, aws.endpoint);
|
|
2453
2570
|
const renderedPath = interpolate(request.path, inv.args).replace(/^\/+/, "");
|
|
2454
2571
|
const baseWithSlash = baseUrl.endsWith("/") ? baseUrl : `${baseUrl}/`;
|
|
2455
2572
|
const url = new URL(renderedPath, baseWithSlash);
|
|
@@ -2457,21 +2574,36 @@ async function executeRestRequest(spec, request, inv, requiredArgs) {
|
|
|
2457
2574
|
const rendered = renderQueryValue(value, inv.args);
|
|
2458
2575
|
if (rendered !== void 0 && rendered !== "") url.searchParams.set(key, String(rendered));
|
|
2459
2576
|
}
|
|
2577
|
+
const requestHeaders = request.headers ?? {};
|
|
2578
|
+
const hostOverride = aws ? Object.entries(requestHeaders).find(([key]) => key.toLowerCase() === "host")?.[1] : void 0;
|
|
2579
|
+
const renderableHeaders = hostOverride ? Object.fromEntries(Object.entries(requestHeaders).filter(([key]) => key.toLowerCase() !== "host")) : requestHeaders;
|
|
2460
2580
|
const headers = {
|
|
2461
2581
|
accept: "application/json",
|
|
2462
2582
|
...spec.defaultHeaders,
|
|
2463
|
-
...renderHeaders(
|
|
2583
|
+
...renderHeaders(renderableHeaders, inv.args)
|
|
2464
2584
|
};
|
|
2465
|
-
|
|
2585
|
+
if (hostOverride) url.host = hostOverride.replace(/\{region\}/g, awsRegion);
|
|
2466
2586
|
if (inv.expectedEtag) headers["if-match"] = inv.expectedEtag;
|
|
2467
2587
|
const sendsBody = request.method !== "GET" && (request.method !== "DELETE" || request.body !== void 0);
|
|
2468
|
-
if (sendsBody) {
|
|
2469
|
-
headers["content-type"] =
|
|
2588
|
+
if (sendsBody && getHeaderCI(headers, "content-type") === void 0) {
|
|
2589
|
+
headers["content-type"] = "application/json";
|
|
2590
|
+
}
|
|
2591
|
+
const bodyString = sendsBody ? JSON.stringify(resolveBody(request.body, inv.args, requiredArgs)) : void 0;
|
|
2592
|
+
if (placement.kind === "aws-sigv4") {
|
|
2593
|
+
signAwsRequest(headers, url, {
|
|
2594
|
+
method: request.method,
|
|
2595
|
+
body: bodyString ?? "",
|
|
2596
|
+
service: placement.service,
|
|
2597
|
+
region: awsRegion,
|
|
2598
|
+
bundle: aws
|
|
2599
|
+
});
|
|
2600
|
+
} else {
|
|
2601
|
+
applyCredentials(headers, url, placement, inv.source.credentials);
|
|
2470
2602
|
}
|
|
2471
2603
|
const res = await fetch(url, {
|
|
2472
2604
|
method: request.method,
|
|
2473
2605
|
headers,
|
|
2474
|
-
body:
|
|
2606
|
+
body: bodyString,
|
|
2475
2607
|
signal: AbortSignal.timeout(2e4)
|
|
2476
2608
|
});
|
|
2477
2609
|
if (res.status === 401 || res.status === 403) {
|
|
@@ -2530,6 +2662,42 @@ function credentialToken(credentials) {
|
|
|
2530
2662
|
if (credentials.kind === "api-key") return credentials.apiKey;
|
|
2531
2663
|
throw new Error(`declarative REST connectors require oauth2 or api-key credentials, got ${credentials.kind}`);
|
|
2532
2664
|
}
|
|
2665
|
+
function resolveAwsRegion(bundle, metadata, placement) {
|
|
2666
|
+
if (bundle.region) return bundle.region;
|
|
2667
|
+
if (typeof metadata.region === "string" && metadata.region.trim()) return metadata.region;
|
|
2668
|
+
return placement.defaultRegion ?? "us-east-1";
|
|
2669
|
+
}
|
|
2670
|
+
function applyRegionTemplate(baseUrl, region, endpoint) {
|
|
2671
|
+
if (endpoint) return endpoint;
|
|
2672
|
+
return baseUrl.replace(/\{region\}/g, region);
|
|
2673
|
+
}
|
|
2674
|
+
function getHeaderCI(headers, name) {
|
|
2675
|
+
const lower = name.toLowerCase();
|
|
2676
|
+
for (const [key, value] of Object.entries(headers)) {
|
|
2677
|
+
if (key.toLowerCase() === lower) return value;
|
|
2678
|
+
}
|
|
2679
|
+
return void 0;
|
|
2680
|
+
}
|
|
2681
|
+
function signAwsRequest(headers, url, opts) {
|
|
2682
|
+
const canonicalSearch = canonicalizeAwsQuery(url.searchParams);
|
|
2683
|
+
url.search = canonicalSearch ? `?${canonicalSearch}` : "";
|
|
2684
|
+
headers["x-amz-content-sha256"] = hashSha256Hex(opts.body);
|
|
2685
|
+
if (opts.bundle.sessionToken) headers["x-amz-security-token"] = opts.bundle.sessionToken;
|
|
2686
|
+
const signed = signSigV4({
|
|
2687
|
+
method: opts.method,
|
|
2688
|
+
url,
|
|
2689
|
+
headers,
|
|
2690
|
+
body: opts.body,
|
|
2691
|
+
service: opts.service,
|
|
2692
|
+
region: opts.region,
|
|
2693
|
+
accessKeyId: opts.bundle.accessKeyId,
|
|
2694
|
+
secretAccessKey: opts.bundle.secretAccessKey,
|
|
2695
|
+
sessionToken: opts.bundle.sessionToken,
|
|
2696
|
+
amzDate: amzDateNow()
|
|
2697
|
+
});
|
|
2698
|
+
headers["x-amz-date"] = signed.amzDate;
|
|
2699
|
+
headers.authorization = signed.authorization;
|
|
2700
|
+
}
|
|
2533
2701
|
function resolveBody(body, args, requiredArgs) {
|
|
2534
2702
|
if (!body || body === "args") return args;
|
|
2535
2703
|
if (typeof body === "string") return renderValue(body, args, requiredArgs);
|
|
@@ -4728,7 +4896,7 @@ async function uploadFile2(inv, accessToken, timeoutMs) {
|
|
|
4728
4896
|
}
|
|
4729
4897
|
|
|
4730
4898
|
// src/connectors/adapters/docuseal.ts
|
|
4731
|
-
import { createHmac, timingSafeEqual } from "crypto";
|
|
4899
|
+
import { createHmac as createHmac2, timingSafeEqual } from "crypto";
|
|
4732
4900
|
var DEFAULT_BASE = "https://api.docuseal.com";
|
|
4733
4901
|
function readDocuSealCredentials(creds) {
|
|
4734
4902
|
if (creds.kind === "api-key" && typeof creds.apiKey === "string" && creds.apiKey.length > 0) {
|
|
@@ -4853,7 +5021,7 @@ function docuseal(opts = {}) {
|
|
|
4853
5021
|
if (!creds?.webhookSecret) return { valid: false, reason: "missing_webhook_secret" };
|
|
4854
5022
|
const sig = firstHeader(headers, "x-docuseal-signature");
|
|
4855
5023
|
if (!sig) return { valid: false, reason: "missing_signature_header" };
|
|
4856
|
-
const expected =
|
|
5024
|
+
const expected = createHmac2("sha256", creds.webhookSecret).update(rawBody).digest("hex");
|
|
4857
5025
|
const a = Buffer.from(sig.toLowerCase(), "utf-8");
|
|
4858
5026
|
const b = Buffer.from(expected, "utf-8");
|
|
4859
5027
|
if (a.length !== b.length) return { valid: false, reason: "invalid_signature" };
|
|
@@ -7045,7 +7213,7 @@ function readApiKey(creds) {
|
|
|
7045
7213
|
}
|
|
7046
7214
|
|
|
7047
7215
|
// src/connectors/adapters/webhook.ts
|
|
7048
|
-
import { createHmac as
|
|
7216
|
+
import { createHmac as createHmac3 } from "crypto";
|
|
7049
7217
|
var webhookConnector = {
|
|
7050
7218
|
manifest: {
|
|
7051
7219
|
kind: "webhook",
|
|
@@ -7159,7 +7327,7 @@ function signHeaders(creds, body, idempotencyKey) {
|
|
|
7159
7327
|
"x-phony-idempotency-key": idempotencyKey
|
|
7160
7328
|
};
|
|
7161
7329
|
if (creds.kind === "hmac" && typeof creds.secret === "string" && creds.secret.length > 0) {
|
|
7162
|
-
const sig =
|
|
7330
|
+
const sig = createHmac3("sha256", creds.secret).update(`${ts}.${body}`).digest("hex");
|
|
7163
7331
|
headers["x-phony-signature"] = `sha256=${sig}`;
|
|
7164
7332
|
}
|
|
7165
7333
|
return headers;
|
|
@@ -37263,7 +37431,7 @@ var smooveConnector = declarativeRestConnector({
|
|
|
37263
37431
|
});
|
|
37264
37432
|
|
|
37265
37433
|
// src/connectors/adapters/hellosign.ts
|
|
37266
|
-
import { createHmac as
|
|
37434
|
+
import { createHmac as createHmac4, timingSafeEqual as timingSafeEqual2 } from "crypto";
|
|
37267
37435
|
var SCOPES7 = [
|
|
37268
37436
|
"basic_account_info",
|
|
37269
37437
|
"request_signature",
|
|
@@ -37486,7 +37654,7 @@ function hellosign(opts) {
|
|
|
37486
37654
|
if (!event || typeof event.event_time !== "string" || typeof event.event_type !== "string" || typeof event.event_hash !== "string") {
|
|
37487
37655
|
return { valid: false, reason: "missing_event_fields" };
|
|
37488
37656
|
}
|
|
37489
|
-
const expected =
|
|
37657
|
+
const expected = createHmac4("sha256", source.credentials.accessToken).update(`${event.event_time}${event.event_type}`).digest("hex");
|
|
37490
37658
|
const a = Buffer.from(event.event_hash.toLowerCase(), "utf-8");
|
|
37491
37659
|
const b = Buffer.from(expected.toLowerCase(), "utf-8");
|
|
37492
37660
|
if (a.length !== b.length) return { valid: false, reason: "invalid_signature" };
|
|
@@ -44857,16 +45025,17 @@ var amazonBedrockConnector = declarativeRestConnector({
|
|
|
44857
45025
|
kind: "amazon-bedrock",
|
|
44858
45026
|
displayName: "Amazon Bedrock",
|
|
44859
45027
|
description: "Invoke AWS Bedrock foundation models for text generation, image analysis, image generation, and embeddings; list available foundation models.",
|
|
44860
|
-
auth: { kind: "api-key", hint:
|
|
45028
|
+
auth: { kind: "api-key", hint: 'AWS credentials as JSON: {"accessKeyId":"AKIA\u2026","secretAccessKey":"\u2026","region":"us-east-1"}. Optional "sessionToken" and "endpoint". Requests are signed with AWS Signature V4; the region selects the bedrock-runtime.<region>.amazonaws.com endpoint.' },
|
|
44861
45029
|
category: "other",
|
|
44862
45030
|
// Bedrock model invocations are non-idempotent generative calls; the manifest
|
|
44863
45031
|
// surfaces are advisory (best-effort), not authoritative state.
|
|
44864
45032
|
defaultConsistencyModel: "advisory",
|
|
44865
45033
|
// bedrock-runtime is the workhorse endpoint for invoke/converse. Control-plane
|
|
44866
45034
|
// listing operations override the host on a per-capability basis below.
|
|
44867
|
-
|
|
45035
|
+
credentialPlacement: { kind: "aws-sigv4", service: "bedrock" },
|
|
45036
|
+
baseUrl: { metadataKey: "runtimeEndpoint", fallback: "https://bedrock-runtime.{region}.amazonaws.com" },
|
|
44868
45037
|
defaultHeaders: { "content-type": "application/json", accept: "application/json" },
|
|
44869
|
-
test: { method: "GET", path: "/foundation-models", headers: { host: "bedrock.
|
|
45038
|
+
test: { method: "GET", path: "/foundation-models", headers: { host: "bedrock.{region}.amazonaws.com" } },
|
|
44870
45039
|
capabilities: [
|
|
44871
45040
|
{
|
|
44872
45041
|
name: "models.list",
|
|
@@ -44888,9 +45057,10 @@ var amazonBedrockConnector = declarativeRestConnector({
|
|
|
44888
45057
|
byOutputModality: "{byOutputModality}",
|
|
44889
45058
|
byInferenceType: "{byInferenceType}"
|
|
44890
45059
|
},
|
|
44891
|
-
// Control-plane host override
|
|
44892
|
-
// the
|
|
44893
|
-
|
|
45060
|
+
// Control-plane host override: the runtime folds this `host` header into
|
|
45061
|
+
// the request URL (region substituted) so SigV4 signs the bedrock.<region>
|
|
45062
|
+
// control-plane host, not the bedrock-runtime base host.
|
|
45063
|
+
headers: { host: "bedrock.{region}.amazonaws.com" }
|
|
44894
45064
|
}
|
|
44895
45065
|
},
|
|
44896
45066
|
{
|
|
@@ -44907,7 +45077,7 @@ var amazonBedrockConnector = declarativeRestConnector({
|
|
|
44907
45077
|
request: {
|
|
44908
45078
|
method: "GET",
|
|
44909
45079
|
path: "/foundation-models/{modelIdentifier}",
|
|
44910
|
-
headers: { host: "bedrock.
|
|
45080
|
+
headers: { host: "bedrock.{region}.amazonaws.com" }
|
|
44911
45081
|
}
|
|
44912
45082
|
},
|
|
44913
45083
|
{
|
|
@@ -45020,13 +45190,14 @@ var amazonSecretsManagerConnector = declarativeRestConnector({
|
|
|
45020
45190
|
description: "Create, read, update, find, and delete secrets in AWS Secrets Manager, or generate a random password.",
|
|
45021
45191
|
auth: {
|
|
45022
45192
|
kind: "api-key",
|
|
45023
|
-
hint:
|
|
45193
|
+
hint: 'AWS credentials as JSON: {"accessKeyId":"AKIA\u2026","secretAccessKey":"\u2026","region":"us-east-1"}. Optional "sessionToken" and "endpoint". Requests are signed with AWS Signature V4; the region selects the secretsmanager.<region>.amazonaws.com endpoint.'
|
|
45024
45194
|
},
|
|
45025
45195
|
category: "other",
|
|
45026
45196
|
defaultConsistencyModel: "authoritative",
|
|
45197
|
+
credentialPlacement: { kind: "aws-sigv4", service: "secretsmanager" },
|
|
45027
45198
|
baseUrl: {
|
|
45028
45199
|
metadataKey: "endpoint",
|
|
45029
|
-
fallback: "https://secretsmanager.
|
|
45200
|
+
fallback: "https://secretsmanager.{region}.amazonaws.com"
|
|
45030
45201
|
},
|
|
45031
45202
|
defaultHeaders: {
|
|
45032
45203
|
"Content-Type": "application/x-amz-json-1.1"
|
|
@@ -45924,11 +46095,15 @@ var amazonSesConnector = declarativeRestConnector({
|
|
|
45924
46095
|
description: "Send transactional and templated email and manage SES email templates via the Amazon SES v2 REST API.",
|
|
45925
46096
|
auth: {
|
|
45926
46097
|
kind: "api-key",
|
|
45927
|
-
hint:
|
|
46098
|
+
hint: 'AWS credentials as JSON: {"accessKeyId":"AKIA\u2026","secretAccessKey":"\u2026","region":"us-east-1"} (the key needs ses:SendEmail / ses:SendTemplatedEmail / template-management permissions). Optional "sessionToken" and "endpoint". Requests are signed with AWS Signature V4; the region selects the email.<region>.amazonaws.com (SES v2) endpoint.'
|
|
45928
46099
|
},
|
|
45929
46100
|
category: "comms",
|
|
45930
46101
|
defaultConsistencyModel: "authoritative",
|
|
45931
|
-
|
|
46102
|
+
// SES v2 REST API: the SigV4 signing name is `ses`, but the regional host is
|
|
46103
|
+
// the `email.` subdomain. metadata.endpoint still overrides when a tenant
|
|
46104
|
+
// pins a host.
|
|
46105
|
+
credentialPlacement: { kind: "aws-sigv4", service: "ses" },
|
|
46106
|
+
baseUrl: { metadataKey: "endpoint", fallback: "https://email.{region}.amazonaws.com" },
|
|
45932
46107
|
test: { method: "GET", path: "/v2/email/identities" },
|
|
45933
46108
|
capabilities: [
|
|
45934
46109
|
{
|
|
@@ -46191,13 +46366,14 @@ var amazonSnsConnector = declarativeRestConnector({
|
|
|
46191
46366
|
description: "Publish messages to Amazon Simple Notification Service topics, manage topics, and manage subscriptions.",
|
|
46192
46367
|
auth: {
|
|
46193
46368
|
kind: "api-key",
|
|
46194
|
-
hint:
|
|
46369
|
+
hint: 'AWS credentials as JSON: {"accessKeyId":"AKIA\u2026","secretAccessKey":"\u2026","region":"us-east-1"}. Optional "sessionToken" and "endpoint". Requests are signed with AWS Signature V4; the region selects the sns.<region>.amazonaws.com endpoint.'
|
|
46195
46370
|
},
|
|
46196
46371
|
category: "comms",
|
|
46197
46372
|
defaultConsistencyModel: "authoritative",
|
|
46373
|
+
credentialPlacement: { kind: "aws-sigv4", service: "sns" },
|
|
46198
46374
|
baseUrl: {
|
|
46199
46375
|
metadataKey: "endpoint",
|
|
46200
|
-
fallback: "https://sns.
|
|
46376
|
+
fallback: "https://sns.{region}.amazonaws.com"
|
|
46201
46377
|
},
|
|
46202
46378
|
defaultHeaders: {
|
|
46203
46379
|
"Content-Type": "application/x-www-form-urlencoded; charset=utf-8",
|
|
@@ -46466,16 +46642,17 @@ var amazonSqsConnector = declarativeRestConnector({
|
|
|
46466
46642
|
description: "Send, receive, and delete messages on AWS SQS queues, and discover queue URLs and attributes.",
|
|
46467
46643
|
auth: {
|
|
46468
46644
|
kind: "api-key",
|
|
46469
|
-
hint:
|
|
46645
|
+
hint: 'AWS credentials as JSON: {"accessKeyId":"AKIA\u2026","secretAccessKey":"\u2026","region":"us-east-1"}. Optional "sessionToken" (STS temp creds) and "endpoint" (override host). Requests are signed with AWS Signature V4; the region selects the sqs.<region>.amazonaws.com endpoint.'
|
|
46470
46646
|
},
|
|
46471
46647
|
category: "other",
|
|
46472
46648
|
// SQS is an at-least-once durable queue: sends, deletes, and queue-attribute
|
|
46473
46649
|
// reads are authoritative against the service. Receive returns a transient
|
|
46474
46650
|
// visibility-locked view, but the queue state itself is authoritative.
|
|
46475
46651
|
defaultConsistencyModel: "authoritative",
|
|
46652
|
+
credentialPlacement: { kind: "aws-sigv4", service: "sqs" },
|
|
46476
46653
|
baseUrl: {
|
|
46477
46654
|
metadataKey: "endpoint",
|
|
46478
|
-
fallback: "https://sqs.
|
|
46655
|
+
fallback: "https://sqs.{region}.amazonaws.com"
|
|
46479
46656
|
},
|
|
46480
46657
|
defaultHeaders: {
|
|
46481
46658
|
"Content-Type": "application/x-amz-json-1.0"
|
|
@@ -46798,13 +46975,14 @@ var amazonTextractConnector = declarativeRestConnector({
|
|
|
46798
46975
|
description: "Extract text, forms, tables, signatures, and structured data (expense, identity) from documents using AWS Textract.",
|
|
46799
46976
|
auth: {
|
|
46800
46977
|
kind: "api-key",
|
|
46801
|
-
hint:
|
|
46978
|
+
hint: 'AWS credentials as JSON: {"accessKeyId":"AKIA\u2026","secretAccessKey":"\u2026","region":"us-east-1"}. Optional "sessionToken" and "endpoint". Requests are signed with AWS Signature V4; the region selects the textract.<region>.amazonaws.com endpoint.'
|
|
46802
46979
|
},
|
|
46803
46980
|
category: "other",
|
|
46804
46981
|
defaultConsistencyModel: "authoritative",
|
|
46982
|
+
credentialPlacement: { kind: "aws-sigv4", service: "textract" },
|
|
46805
46983
|
baseUrl: {
|
|
46806
46984
|
metadataKey: "endpoint",
|
|
46807
|
-
fallback: "https://textract.
|
|
46985
|
+
fallback: "https://textract.{region}.amazonaws.com"
|
|
46808
46986
|
},
|
|
46809
46987
|
defaultHeaders: {
|
|
46810
46988
|
"Content-Type": "application/x-amz-json-1.1"
|
|
@@ -52257,15 +52435,14 @@ var backblazeConnector = declarativeRestConnector({
|
|
|
52257
52435
|
description: "Read and upload objects on a Backblaze B2 bucket via the S3-compatible REST API at s3.{region}.backblazeb2.com.",
|
|
52258
52436
|
auth: {
|
|
52259
52437
|
kind: "api-key",
|
|
52260
|
-
hint:
|
|
52438
|
+
hint: 'Backblaze B2 application key pair as JSON: {"accessKeyId":"\u2026","secretAccessKey":"\u2026","region":"us-west-001"} scoped to the target bucket. Optional "endpoint" overrides the host. Requests are signed with AWS Signature V4 (S3-compatible); the region selects the s3.<region>.backblazeb2.com endpoint.'
|
|
52261
52439
|
},
|
|
52262
52440
|
category: "storage",
|
|
52263
52441
|
defaultConsistencyModel: "authoritative",
|
|
52264
|
-
//
|
|
52265
|
-
//
|
|
52266
|
-
//
|
|
52267
|
-
|
|
52268
|
-
// substitute the region placeholder from the credential metadata.
|
|
52442
|
+
// Backblaze B2 speaks the S3 API, so it signs with AWS SigV4 under the `s3`
|
|
52443
|
+
// service. The runtime substitutes {region} from the credential bundle into
|
|
52444
|
+
// the host template below (or honors an explicit bundle `endpoint`).
|
|
52445
|
+
credentialPlacement: { kind: "aws-sigv4", service: "s3" },
|
|
52269
52446
|
baseUrl: "https://s3.{region}.backblazeb2.com",
|
|
52270
52447
|
test: { method: "GET", path: "/{bucket}?list-type=2&max-keys=1" },
|
|
52271
52448
|
capabilities: [
|
|
@@ -113397,6 +113574,22 @@ var TWITTER_SPEC = {
|
|
|
113397
113574
|
query: { max_results: "{max_results}", pagination_token: "{pagination_token}" }
|
|
113398
113575
|
}
|
|
113399
113576
|
},
|
|
113577
|
+
{
|
|
113578
|
+
name: "users.by.username",
|
|
113579
|
+
class: "read",
|
|
113580
|
+
description: "Resolve a handle to its numeric user id (and name) \u2014 for followed_by (resolve target \u2192 list users.following) and mentioned-with-target (resolve target \u2192 filter users.mentions by author_id). Returns { id, name, username }.",
|
|
113581
|
+
parameters: {
|
|
113582
|
+
type: "object",
|
|
113583
|
+
properties: {
|
|
113584
|
+
username: {
|
|
113585
|
+
type: "string",
|
|
113586
|
+
description: "Twitter/X handle WITHOUT a leading @; resolves to a numeric user id."
|
|
113587
|
+
}
|
|
113588
|
+
},
|
|
113589
|
+
required: ["username"]
|
|
113590
|
+
},
|
|
113591
|
+
request: { method: "GET", path: "/users/by/username/{username}" }
|
|
113592
|
+
},
|
|
113400
113593
|
{
|
|
113401
113594
|
name: "users.tweets",
|
|
113402
113595
|
class: "read",
|
|
@@ -125313,4 +125506,4 @@ export {
|
|
|
125313
125506
|
demandbaseConnector,
|
|
125314
125507
|
adapters_exports
|
|
125315
125508
|
};
|
|
125316
|
-
//# sourceMappingURL=chunk-
|
|
125509
|
+
//# sourceMappingURL=chunk-EPDUDWOD.js.map
|