@5ss/ai-tools 2.11.1
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/CHANGELOG.md +112 -0
- package/LICENSE +21 -0
- package/README.md +221 -0
- package/dist/ai-sdk/index.d.ts +15 -0
- package/dist/ai-sdk/index.d.ts.map +1 -0
- package/dist/ai-sdk/index.js +24 -0
- package/dist/ai-sdk/index.js.map +1 -0
- package/dist/artifact-D064mHfK.js +44 -0
- package/dist/artifact-D064mHfK.js.map +1 -0
- package/dist/artifacts-O8g-40Pw.js +404 -0
- package/dist/artifacts-O8g-40Pw.js.map +1 -0
- package/dist/aws-json-CecFqzqX.js +23 -0
- package/dist/aws-json-CecFqzqX.js.map +1 -0
- package/dist/aws-service-msttbPrz.js +58 -0
- package/dist/aws-service-msttbPrz.js.map +1 -0
- package/dist/batch-BMM5dXqL.d.ts +22 -0
- package/dist/batch-BMM5dXqL.d.ts.map +1 -0
- package/dist/batch-Co1ujeAW.js +67 -0
- package/dist/batch-Co1ujeAW.js.map +1 -0
- package/dist/bedrock-agentcore-browser-a_qOs-NR.js +182 -0
- package/dist/bedrock-agentcore-browser-a_qOs-NR.js.map +1 -0
- package/dist/bedrock-agentcore-code-interpreter-MWK-8RhA.js +357 -0
- package/dist/bedrock-agentcore-code-interpreter-MWK-8RhA.js.map +1 -0
- package/dist/bytes-BxpimpQx.js +45 -0
- package/dist/bytes-BxpimpQx.js.map +1 -0
- package/dist/client-CCKGsTeI.js +743 -0
- package/dist/client-CCKGsTeI.js.map +1 -0
- package/dist/cloudflare/index.d.ts +37 -0
- package/dist/cloudflare/index.d.ts.map +1 -0
- package/dist/cloudflare/index.js +41 -0
- package/dist/cloudflare/index.js.map +1 -0
- package/dist/cloudflare-browser-B6Yolpin.js +428 -0
- package/dist/cloudflare-browser-B6Yolpin.js.map +1 -0
- package/dist/cloudflare-email-Dy0KHeDf.js +197 -0
- package/dist/cloudflare-email-Dy0KHeDf.js.map +1 -0
- package/dist/cloudflare-sandbox-Dp_uNaqW.js +982 -0
- package/dist/cloudflare-sandbox-Dp_uNaqW.js.map +1 -0
- package/dist/content-type-CORxaxcv.js +49 -0
- package/dist/content-type-CORxaxcv.js.map +1 -0
- package/dist/core/index.d.ts +4 -0
- package/dist/core/index.js +204 -0
- package/dist/core/index.js.map +1 -0
- package/dist/define-CvpJ_pNP.js +115 -0
- package/dist/define-CvpJ_pNP.js.map +1 -0
- package/dist/errors-DoSpNHvs.js +20 -0
- package/dist/errors-DoSpNHvs.js.map +1 -0
- package/dist/errors-aKhko9T1.d.ts +18 -0
- package/dist/errors-aKhko9T1.d.ts.map +1 -0
- package/dist/eventbridge-scheduler-Bh6GqZY2.js +349 -0
- package/dist/eventbridge-scheduler-Bh6GqZY2.js.map +1 -0
- package/dist/framework-context-DVIIY8ZO.js +24 -0
- package/dist/framework-context-DVIIY8ZO.js.map +1 -0
- package/dist/gotenberg-NuJjxyln.js +291 -0
- package/dist/gotenberg-NuJjxyln.js.map +1 -0
- package/dist/http/index.d.ts +47 -0
- package/dist/http/index.d.ts.map +1 -0
- package/dist/http/index.js +3 -0
- package/dist/http-service-DDNCO1s4.js +254 -0
- package/dist/http-service-DDNCO1s4.js.map +1 -0
- package/dist/http-service-T7E5UjP8.d.ts +80 -0
- package/dist/http-service-T7E5UjP8.d.ts.map +1 -0
- package/dist/imessage-BSAFOI8Z.js +154 -0
- package/dist/imessage-BSAFOI8Z.js.map +1 -0
- package/dist/index-BU4gmYO8.d.ts +254 -0
- package/dist/index-BU4gmYO8.d.ts.map +1 -0
- package/dist/index-CCivzmxO.d.ts +188 -0
- package/dist/index-CCivzmxO.d.ts.map +1 -0
- package/dist/index-CLmTrcu5.d.ts +22 -0
- package/dist/index-CLmTrcu5.d.ts.map +1 -0
- package/dist/index-CZX5OeOF.d.ts +235 -0
- package/dist/index-CZX5OeOF.d.ts.map +1 -0
- package/dist/index-CdFmEfZO.d.ts +359 -0
- package/dist/index-CdFmEfZO.d.ts.map +1 -0
- package/dist/index-Cuh6eMWc.d.ts +285 -0
- package/dist/index-Cuh6eMWc.d.ts.map +1 -0
- package/dist/index-DuOGj7vc.d.ts +107 -0
- package/dist/index-DuOGj7vc.d.ts.map +1 -0
- package/dist/index-ccZ1XOHw.d.ts +69 -0
- package/dist/index-ccZ1XOHw.d.ts.map +1 -0
- package/dist/index-n8JTpNf1.d.ts +247 -0
- package/dist/index-n8JTpNf1.d.ts.map +1 -0
- package/dist/index-pwW1OsOx.d.ts +134 -0
- package/dist/index-pwW1OsOx.d.ts.map +1 -0
- package/dist/index-zK1ZwS4m.d.ts +347 -0
- package/dist/index-zK1ZwS4m.d.ts.map +1 -0
- package/dist/limits-hjrO8zUG.js +80 -0
- package/dist/limits-hjrO8zUG.js.map +1 -0
- package/dist/mastra/index.d.ts +14 -0
- package/dist/mastra/index.d.ts.map +1 -0
- package/dist/mastra/index.js +26 -0
- package/dist/mastra/index.js.map +1 -0
- package/dist/mastra-vector-Dhc6XZ8l.js +234 -0
- package/dist/mastra-vector-Dhc6XZ8l.js.map +1 -0
- package/dist/mcp/index.d.ts +80 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +97 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/modules/artifacts/index.d.ts +337 -0
- package/dist/modules/artifacts/index.d.ts.map +1 -0
- package/dist/modules/artifacts/index.js +348 -0
- package/dist/modules/artifacts/index.js.map +1 -0
- package/dist/modules/browser/index.d.ts +516 -0
- package/dist/modules/browser/index.d.ts.map +1 -0
- package/dist/modules/browser/index.js +475 -0
- package/dist/modules/browser/index.js.map +1 -0
- package/dist/modules/calendar/index.d.ts +93 -0
- package/dist/modules/calendar/index.d.ts.map +1 -0
- package/dist/modules/calendar/index.js +131 -0
- package/dist/modules/calendar/index.js.map +1 -0
- package/dist/modules/code-sandbox/index.d.ts +317 -0
- package/dist/modules/code-sandbox/index.d.ts.map +1 -0
- package/dist/modules/code-sandbox/index.js +537 -0
- package/dist/modules/code-sandbox/index.js.map +1 -0
- package/dist/modules/content-type/index.d.ts +22 -0
- package/dist/modules/content-type/index.d.ts.map +1 -0
- package/dist/modules/content-type/index.js +66 -0
- package/dist/modules/content-type/index.js.map +1 -0
- package/dist/modules/crypto/index.d.ts +115 -0
- package/dist/modules/crypto/index.d.ts.map +1 -0
- package/dist/modules/crypto/index.js +139 -0
- package/dist/modules/crypto/index.js.map +1 -0
- package/dist/modules/document/index.d.ts +575 -0
- package/dist/modules/document/index.d.ts.map +1 -0
- package/dist/modules/document/index.js +444 -0
- package/dist/modules/document/index.js.map +1 -0
- package/dist/modules/document-extract/index.d.ts +438 -0
- package/dist/modules/document-extract/index.d.ts.map +1 -0
- package/dist/modules/document-extract/index.js +127 -0
- package/dist/modules/document-extract/index.js.map +1 -0
- package/dist/modules/document-render/index.d.ts +336 -0
- package/dist/modules/document-render/index.d.ts.map +1 -0
- package/dist/modules/document-render/index.js +155 -0
- package/dist/modules/document-render/index.js.map +1 -0
- package/dist/modules/email/index.d.ts +311 -0
- package/dist/modules/email/index.d.ts.map +1 -0
- package/dist/modules/email/index.js +167 -0
- package/dist/modules/email/index.js.map +1 -0
- package/dist/modules/email-message/index.d.ts +95 -0
- package/dist/modules/email-message/index.d.ts.map +1 -0
- package/dist/modules/email-message/index.js +264 -0
- package/dist/modules/email-message/index.js.map +1 -0
- package/dist/modules/file-convert/index.d.ts +273 -0
- package/dist/modules/file-convert/index.d.ts.map +1 -0
- package/dist/modules/file-convert/index.js +103 -0
- package/dist/modules/file-convert/index.js.map +1 -0
- package/dist/modules/files/index.d.ts +452 -0
- package/dist/modules/files/index.d.ts.map +1 -0
- package/dist/modules/files/index.js +733 -0
- package/dist/modules/files/index.js.map +1 -0
- package/dist/modules/image/index.d.ts +342 -0
- package/dist/modules/image/index.d.ts.map +1 -0
- package/dist/modules/image/index.js +281 -0
- package/dist/modules/image/index.js.map +1 -0
- package/dist/modules/messaging/index.d.ts +608 -0
- package/dist/modules/messaging/index.d.ts.map +1 -0
- package/dist/modules/messaging/index.js +1067 -0
- package/dist/modules/messaging/index.js.map +1 -0
- package/dist/modules/pdf/index.d.ts +287 -0
- package/dist/modules/pdf/index.d.ts.map +1 -0
- package/dist/modules/pdf/index.js +259 -0
- package/dist/modules/pdf/index.js.map +1 -0
- package/dist/modules/presentation/index.d.ts +247 -0
- package/dist/modules/presentation/index.d.ts.map +1 -0
- package/dist/modules/presentation/index.js +12657 -0
- package/dist/modules/presentation/index.js.map +1 -0
- package/dist/modules/queue/index.d.ts +129 -0
- package/dist/modules/queue/index.d.ts.map +1 -0
- package/dist/modules/queue/index.js +131 -0
- package/dist/modules/queue/index.js.map +1 -0
- package/dist/modules/rag/index.d.ts +250 -0
- package/dist/modules/rag/index.d.ts.map +1 -0
- package/dist/modules/rag/index.js +366 -0
- package/dist/modules/rag/index.js.map +1 -0
- package/dist/modules/scheduler/index.d.ts +216 -0
- package/dist/modules/scheduler/index.d.ts.map +1 -0
- package/dist/modules/scheduler/index.js +153 -0
- package/dist/modules/scheduler/index.js.map +1 -0
- package/dist/modules/skills/index.d.ts +205 -0
- package/dist/modules/skills/index.d.ts.map +1 -0
- package/dist/modules/skills/index.js +203 -0
- package/dist/modules/skills/index.js.map +1 -0
- package/dist/modules/tasks/index.d.ts +287 -0
- package/dist/modules/tasks/index.d.ts.map +1 -0
- package/dist/modules/tasks/index.js +207 -0
- package/dist/modules/tasks/index.js.map +1 -0
- package/dist/modules/vector-store/index.d.ts +3 -0
- package/dist/modules/vector-store/index.js +3 -0
- package/dist/modules/web-fetch/index.d.ts +99 -0
- package/dist/modules/web-fetch/index.d.ts.map +1 -0
- package/dist/modules/web-fetch/index.js +242 -0
- package/dist/modules/web-fetch/index.js.map +1 -0
- package/dist/object-artifact-store-CMTzCm_G.d.ts +7 -0
- package/dist/object-artifact-store-CMTzCm_G.d.ts.map +1 -0
- package/dist/object-artifact-store-wZ2j9cto.js +28 -0
- package/dist/object-artifact-store-wZ2j9cto.js.map +1 -0
- package/dist/pinecone-umY4t6OF.js +190 -0
- package/dist/pinecone-umY4t6OF.js.map +1 -0
- package/dist/provider-CgDAlg6K.js +34 -0
- package/dist/provider-CgDAlg6K.js.map +1 -0
- package/dist/qdrant-DMp4NhKR.js +253 -0
- package/dist/qdrant-DMp4NhKR.js.map +1 -0
- package/dist/resend-BAC38_dA.js +155 -0
- package/dist/resend-BAC38_dA.js.map +1 -0
- package/dist/s3-CsOaPWMP.js +955 -0
- package/dist/s3-CsOaPWMP.js.map +1 -0
- package/dist/schemas-ChOAhdo9.js +192 -0
- package/dist/schemas-ChOAhdo9.js.map +1 -0
- package/dist/slack-Di5BBNpt.js +1455 -0
- package/dist/slack-Di5BBNpt.js.map +1 -0
- package/dist/sqs-DCwS1i2N.js +225 -0
- package/dist/sqs-DCwS1i2N.js.map +1 -0
- package/dist/supabase-vector-Dpp9mmJR.js +218 -0
- package/dist/supabase-vector-Dpp9mmJR.js.map +1 -0
- package/dist/tanstack/index.d.ts +15 -0
- package/dist/tanstack/index.d.ts.map +1 -0
- package/dist/tanstack/index.js +28 -0
- package/dist/tanstack/index.js.map +1 -0
- package/dist/teams-DYAHNb39.js +835 -0
- package/dist/teams-DYAHNb39.js.map +1 -0
- package/dist/telegram-DDXWzkfL.js +734 -0
- package/dist/telegram-DDXWzkfL.js.map +1 -0
- package/dist/textract-CPLiB22H.js +554 -0
- package/dist/textract-CPLiB22H.js.map +1 -0
- package/dist/transport-B4vn-XiQ.js +157 -0
- package/dist/transport-B4vn-XiQ.js.map +1 -0
- package/dist/transport-i96ACAI_.d.ts +46 -0
- package/dist/transport-i96ACAI_.d.ts.map +1 -0
- package/dist/types-Ccb0DXY9.d.ts +150 -0
- package/dist/types-Ccb0DXY9.d.ts.map +1 -0
- package/dist/unique-EwBH1JPB.js +19 -0
- package/dist/unique-EwBH1JPB.js.map +1 -0
- package/dist/vector-store-C3nEO80e.js +193 -0
- package/dist/vector-store-C3nEO80e.js.map +1 -0
- package/dist/vendors/amazon-sp-api/index.d.ts +526 -0
- package/dist/vendors/amazon-sp-api/index.d.ts.map +1 -0
- package/dist/vendors/amazon-sp-api/index.js +975 -0
- package/dist/vendors/amazon-sp-api/index.js.map +1 -0
- package/dist/vendors/bedrock-agentcore-browser/index.d.ts +2 -0
- package/dist/vendors/bedrock-agentcore-browser/index.js +2 -0
- package/dist/vendors/bedrock-agentcore-code-interpreter/index.d.ts +228 -0
- package/dist/vendors/bedrock-agentcore-code-interpreter/index.d.ts.map +1 -0
- package/dist/vendors/bedrock-agentcore-code-interpreter/index.js +2 -0
- package/dist/vendors/cloudflare-browser/index.d.ts +2 -0
- package/dist/vendors/cloudflare-browser/index.js +2 -0
- package/dist/vendors/cloudflare-email/index.d.ts +260 -0
- package/dist/vendors/cloudflare-email/index.d.ts.map +1 -0
- package/dist/vendors/cloudflare-email/index.js +3 -0
- package/dist/vendors/cloudflare-sandbox/index.d.ts +565 -0
- package/dist/vendors/cloudflare-sandbox/index.d.ts.map +1 -0
- package/dist/vendors/cloudflare-sandbox/index.js +2 -0
- package/dist/vendors/eventbridge-scheduler/index.d.ts +2 -0
- package/dist/vendors/eventbridge-scheduler/index.js +2 -0
- package/dist/vendors/gotenberg/index.d.ts +306 -0
- package/dist/vendors/gotenberg/index.d.ts.map +1 -0
- package/dist/vendors/gotenberg/index.js +2 -0
- package/dist/vendors/imessage/index.d.ts +420 -0
- package/dist/vendors/imessage/index.d.ts.map +1 -0
- package/dist/vendors/imessage/index.js +4 -0
- package/dist/vendors/katana/index.d.ts +1570 -0
- package/dist/vendors/katana/index.d.ts.map +1 -0
- package/dist/vendors/katana/index.js +1639 -0
- package/dist/vendors/katana/index.js.map +1 -0
- package/dist/vendors/mastra-vector/index.d.ts +120 -0
- package/dist/vendors/mastra-vector/index.d.ts.map +1 -0
- package/dist/vendors/mastra-vector/index.js +3 -0
- package/dist/vendors/pinecone/index.d.ts +75 -0
- package/dist/vendors/pinecone/index.d.ts.map +1 -0
- package/dist/vendors/pinecone/index.js +3 -0
- package/dist/vendors/qdrant/index.d.ts +75 -0
- package/dist/vendors/qdrant/index.d.ts.map +1 -0
- package/dist/vendors/qdrant/index.js +3 -0
- package/dist/vendors/resend/index.d.ts +3 -0
- package/dist/vendors/resend/index.js +3 -0
- package/dist/vendors/s3/index.d.ts +2 -0
- package/dist/vendors/s3/index.js +2 -0
- package/dist/vendors/slack/index.d.ts +576 -0
- package/dist/vendors/slack/index.d.ts.map +1 -0
- package/dist/vendors/slack/index.js +3 -0
- package/dist/vendors/sqs/index.d.ts +2 -0
- package/dist/vendors/sqs/index.js +2 -0
- package/dist/vendors/supabase-vector/index.d.ts +89 -0
- package/dist/vendors/supabase-vector/index.d.ts.map +1 -0
- package/dist/vendors/supabase-vector/index.js +3 -0
- package/dist/vendors/teams/index.d.ts +303 -0
- package/dist/vendors/teams/index.d.ts.map +1 -0
- package/dist/vendors/teams/index.js +3 -0
- package/dist/vendors/telegram/index.d.ts +319 -0
- package/dist/vendors/telegram/index.d.ts.map +1 -0
- package/dist/vendors/telegram/index.js +3 -0
- package/dist/vendors/textract/index.d.ts +2 -0
- package/dist/vendors/textract/index.js +2 -0
- package/dist/vendors/woocommerce/index.d.ts +1700 -0
- package/dist/vendors/woocommerce/index.d.ts.map +1 -0
- package/dist/vendors/woocommerce/index.js +1427 -0
- package/dist/vendors/woocommerce/index.js.map +1 -0
- package/dist/with-auth-CpKqTrGK.js +240 -0
- package/dist/with-auth-CpKqTrGK.js.map +1 -0
- package/logos/LUCIDE-ATTRIBUTION.txt +4 -0
- package/logos/README.md +89 -0
- package/logos/amazon.svg +6 -0
- package/logos/artifacts.svg +9 -0
- package/logos/browser.svg +9 -0
- package/logos/calendar.svg +15 -0
- package/logos/cloudflare-browser.svg +5 -0
- package/logos/cloudflare-email.svg +5 -0
- package/logos/cloudflare.svg +4 -0
- package/logos/code-sandbox.svg +8 -0
- package/logos/content-type.svg +10 -0
- package/logos/crypto.svg +7 -0
- package/logos/document-extract.svg +12 -0
- package/logos/document-render.svg +8 -0
- package/logos/document.svg +10 -0
- package/logos/email-message.svg +8 -0
- package/logos/email.svg +7 -0
- package/logos/file-convert.svg +9 -0
- package/logos/files.svg +6 -0
- package/logos/gotenberg.svg +340 -0
- package/logos/image.svg +8 -0
- package/logos/imessage.svg +7 -0
- package/logos/katana.svg +13 -0
- package/logos/mastra.svg +7 -0
- package/logos/messaging.svg +7 -0
- package/logos/pack-logos.json +48 -0
- package/logos/pdf.svg +10 -0
- package/logos/pinecone.svg +25 -0
- package/logos/presentation.svg +8 -0
- package/logos/qdrant.svg +4 -0
- package/logos/queue.svg +11 -0
- package/logos/rag.svg +18 -0
- package/logos/resend.svg +5 -0
- package/logos/scheduler.svg +7 -0
- package/logos/skills.svg +10 -0
- package/logos/slack.svg +14 -0
- package/logos/supabase.svg +4 -0
- package/logos/tasks.svg +10 -0
- package/logos/teams.svg +6 -0
- package/logos/telegram.svg +10 -0
- package/logos/textract.svg +5 -0
- package/logos/vector-store.svg +8 -0
- package/logos/web-fetch.svg +8 -0
- package/logos/woocommerce.svg +4 -0
- package/package.json +373 -0
|
@@ -0,0 +1,349 @@
|
|
|
1
|
+
import { t as ToolError } from "./errors-DoSpNHvs.js";
|
|
2
|
+
import { n as defineModule, r as defineTool } from "./define-CvpJ_pNP.js";
|
|
3
|
+
import { n as requireAuth } from "./provider-CgDAlg6K.js";
|
|
4
|
+
import { t as AwsService } from "./aws-service-msttbPrz.js";
|
|
5
|
+
import { isPlainObject, isString } from "es-toolkit";
|
|
6
|
+
import { isArray } from "es-toolkit/compat";
|
|
7
|
+
import { z } from "zod";
|
|
8
|
+
//#region src/vendors/eventbridge-scheduler/contracts.ts
|
|
9
|
+
/**
|
|
10
|
+
* Amazon EventBridge Scheduler vendor contracts.
|
|
11
|
+
* Host auth holds target ARN / role ARN; tools schedule task_ref only.
|
|
12
|
+
*/
|
|
13
|
+
const MAX_SCHEDULE_NAME = 64;
|
|
14
|
+
const MAX_TASK_REF = 512;
|
|
15
|
+
const MAX_PAYLOAD_JSON = 8e3;
|
|
16
|
+
const MAX_LIST = 100;
|
|
17
|
+
const scheduleName = z.string().min(1).max(64).regex(/^[0-9a-zA-Z-_.]+$/, "Schedule name must match [0-9a-zA-Z-_.]+");
|
|
18
|
+
const eventBridgeSchedulerAuthSchema = z.object({
|
|
19
|
+
access_key_id: z.string().min(1).describe("AWS access key id"),
|
|
20
|
+
secret_access_key: z.string().min(1).describe("AWS secret access key"),
|
|
21
|
+
region: z.string().min(1).describe("AWS region for EventBridge Scheduler"),
|
|
22
|
+
session_token: z.string().min(1).optional().describe("Optional session token"),
|
|
23
|
+
target_arn: z.string().min(1).describe("Host-bound target ARN (Lambda, SQS, etc.)"),
|
|
24
|
+
role_arn: z.string().min(1).describe("Host-bound IAM role ARN for the scheduler target"),
|
|
25
|
+
group_name: z.string().min(1).max(64).optional().describe("Schedule group name (default group when omitted)"),
|
|
26
|
+
flexible_window_minutes: z.int().min(1).max(1440).optional().describe("When set, FlexibleTimeWindow Mode=FLEXIBLE with this window; otherwise Mode=OFF"),
|
|
27
|
+
dead_letter_arn: z.string().min(1).optional().describe("Optional DLQ ARN"),
|
|
28
|
+
max_retry_attempts: z.int().min(0).max(185).optional().describe("Target retry MaximumRetryAttempts"),
|
|
29
|
+
max_event_age_seconds: z.int().min(60).max(86400).optional().describe("Target retry MaximumEventAgeInSeconds")
|
|
30
|
+
});
|
|
31
|
+
const scheduleStateSchema = z.enum(["ENABLED", "DISABLED"]);
|
|
32
|
+
const scheduleCreateInputSchema = z.object({
|
|
33
|
+
name: scheduleName.describe("Schedule name"),
|
|
34
|
+
schedule_expression: z.string().min(1).max(256).describe("When to run: at(...), rate(...), or cron(...) expression"),
|
|
35
|
+
task_ref: z.string().min(1).max(512).describe("Opaque task definition reference. Not an ARN or infrastructure id"),
|
|
36
|
+
payload: z.record(z.string(), z.unknown()).optional().describe("Optional small JSON payload merged into the target input with task_ref"),
|
|
37
|
+
timezone: z.string().min(1).max(50).optional().describe("Timezone for the schedule expression"),
|
|
38
|
+
description: z.string().max(512).optional().describe("Human description"),
|
|
39
|
+
state: scheduleStateSchema.optional().describe("ENABLED or DISABLED (default ENABLED)"),
|
|
40
|
+
start_at: z.string().min(1).optional().describe("ISO-8601 start time (UTC) when the schedule may begin"),
|
|
41
|
+
end_at: z.string().min(1).optional().describe("ISO-8601 end time (UTC) when the schedule may stop"),
|
|
42
|
+
action_after_completion: z.enum(["NONE", "DELETE"]).optional().describe("What to do after a one-time schedule completes")
|
|
43
|
+
});
|
|
44
|
+
const scheduleUpdateInputSchema = scheduleCreateInputSchema;
|
|
45
|
+
const scheduleNameInputSchema = z.object({ name: scheduleName.describe("Schedule name") });
|
|
46
|
+
const scheduleListInputSchema = z.object({
|
|
47
|
+
name_prefix: z.string().min(1).max(64).optional().describe("Filter by name prefix"),
|
|
48
|
+
state: scheduleStateSchema.optional().describe("Filter by state"),
|
|
49
|
+
max_results: z.int().min(1).max(100).optional().describe("Page size (default 100)"),
|
|
50
|
+
next_token: z.string().min(1).optional().describe("Pagination token from a prior list call")
|
|
51
|
+
});
|
|
52
|
+
const scheduleSummarySchema = z.object({
|
|
53
|
+
name: z.string().describe("Schedule name"),
|
|
54
|
+
group_name: z.string().optional().describe("Schedule group"),
|
|
55
|
+
state: scheduleStateSchema.optional().describe("ENABLED or DISABLED"),
|
|
56
|
+
schedule_expression: z.string().optional().describe("Schedule expression when known"),
|
|
57
|
+
arn: z.string().optional().describe("Schedule ARN when returned by the provider")
|
|
58
|
+
});
|
|
59
|
+
const scheduleDetailSchema = scheduleSummarySchema.extend({
|
|
60
|
+
description: z.string().optional(),
|
|
61
|
+
timezone: z.string().optional(),
|
|
62
|
+
task_ref: z.string().optional().describe("task_ref parsed from target input when present"),
|
|
63
|
+
creation_date: z.string().optional(),
|
|
64
|
+
last_modification_date: z.string().optional()
|
|
65
|
+
});
|
|
66
|
+
const scheduleWriteOutputSchema = z.object({
|
|
67
|
+
name: z.string().describe("Schedule name"),
|
|
68
|
+
arn: z.string().optional().describe("Schedule ARN when returned")
|
|
69
|
+
});
|
|
70
|
+
const scheduleGetOutputSchema = z.object({ schedule: scheduleDetailSchema });
|
|
71
|
+
const scheduleListOutputSchema = z.object({
|
|
72
|
+
schedules: z.array(scheduleSummarySchema),
|
|
73
|
+
next_token: z.string().optional().describe("Pagination token when more results exist")
|
|
74
|
+
});
|
|
75
|
+
const scheduleDeleteOutputSchema = z.object({
|
|
76
|
+
name: z.string().describe("Deleted schedule name"),
|
|
77
|
+
deleted: z.literal(true)
|
|
78
|
+
});
|
|
79
|
+
//#endregion
|
|
80
|
+
//#region src/vendors/eventbridge-scheduler/domain.ts
|
|
81
|
+
/**
|
|
82
|
+
* EventBridge Scheduler pure helpers (no HTTP).
|
|
83
|
+
*/
|
|
84
|
+
function buildTargetInput(taskRef, payload) {
|
|
85
|
+
const body = { task_ref: taskRef };
|
|
86
|
+
if (payload !== void 0) for (const [key, value] of Object.entries(payload)) {
|
|
87
|
+
if (key === "task_ref") continue;
|
|
88
|
+
body[key] = value;
|
|
89
|
+
}
|
|
90
|
+
const json = JSON.stringify(body);
|
|
91
|
+
if (json.length > 8e3) throw new ToolError("Schedule target payload is too large", {
|
|
92
|
+
code: "too_large",
|
|
93
|
+
details: {
|
|
94
|
+
max_chars: MAX_PAYLOAD_JSON,
|
|
95
|
+
length: json.length
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
return json;
|
|
99
|
+
}
|
|
100
|
+
function parseTaskRefFromInput(input) {
|
|
101
|
+
if (!isString(input) || input.length === 0) return void 0;
|
|
102
|
+
try {
|
|
103
|
+
const parsed = JSON.parse(input);
|
|
104
|
+
if (!isPlainObject(parsed)) return void 0;
|
|
105
|
+
const ref = parsed["task_ref"];
|
|
106
|
+
return isString(ref) ? ref : void 0;
|
|
107
|
+
} catch {
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
function flexibleTimeWindow(auth) {
|
|
112
|
+
if (auth.flexible_window_minutes !== void 0) return {
|
|
113
|
+
Mode: "FLEXIBLE",
|
|
114
|
+
MaximumWindowInMinutes: auth.flexible_window_minutes
|
|
115
|
+
};
|
|
116
|
+
return { Mode: "OFF" };
|
|
117
|
+
}
|
|
118
|
+
function isoToUnixSeconds(iso, field) {
|
|
119
|
+
const ms = Date.parse(iso);
|
|
120
|
+
if (!Number.isFinite(ms)) throw new ToolError(`Invalid ${field} timestamp`, {
|
|
121
|
+
code: "bad_input",
|
|
122
|
+
details: {
|
|
123
|
+
field,
|
|
124
|
+
value: iso
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
return Math.floor(ms / 1e3);
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* EventBridge Scheduler rejects empty ClientToken on the raw HTTP API even when
|
|
131
|
+
* docs mark it optional (SDKs / CLI always send one).
|
|
132
|
+
* Pattern: [a-zA-Z0-9-_]+, max 64.
|
|
133
|
+
*/
|
|
134
|
+
function newClientToken() {
|
|
135
|
+
return crypto.randomUUID().replaceAll("-", "");
|
|
136
|
+
}
|
|
137
|
+
function buildCreateBody(auth, input) {
|
|
138
|
+
const target = {
|
|
139
|
+
Arn: auth.target_arn,
|
|
140
|
+
RoleArn: auth.role_arn,
|
|
141
|
+
Input: buildTargetInput(input.task_ref, input.payload)
|
|
142
|
+
};
|
|
143
|
+
if (auth.dead_letter_arn) target["DeadLetterConfig"] = { Arn: auth.dead_letter_arn };
|
|
144
|
+
if (auth.max_retry_attempts !== void 0 || auth.max_event_age_seconds !== void 0) {
|
|
145
|
+
const retry = {};
|
|
146
|
+
if (auth.max_retry_attempts !== void 0) retry["MaximumRetryAttempts"] = auth.max_retry_attempts;
|
|
147
|
+
if (auth.max_event_age_seconds !== void 0) retry["MaximumEventAgeInSeconds"] = auth.max_event_age_seconds;
|
|
148
|
+
target["RetryPolicy"] = retry;
|
|
149
|
+
}
|
|
150
|
+
const body = {
|
|
151
|
+
ClientToken: newClientToken(),
|
|
152
|
+
ScheduleExpression: input.schedule_expression,
|
|
153
|
+
FlexibleTimeWindow: flexibleTimeWindow(auth),
|
|
154
|
+
Target: target,
|
|
155
|
+
State: input.state ?? "ENABLED"
|
|
156
|
+
};
|
|
157
|
+
if (auth.group_name) body["GroupName"] = auth.group_name;
|
|
158
|
+
if (input.timezone) body["ScheduleExpressionTimezone"] = input.timezone;
|
|
159
|
+
if (input.description) body["Description"] = input.description;
|
|
160
|
+
if (input.action_after_completion) body["ActionAfterCompletion"] = input.action_after_completion;
|
|
161
|
+
if (input.start_at) body["StartDate"] = isoToUnixSeconds(input.start_at, "start_at");
|
|
162
|
+
if (input.end_at) body["EndDate"] = isoToUnixSeconds(input.end_at, "end_at");
|
|
163
|
+
return body;
|
|
164
|
+
}
|
|
165
|
+
function mapScheduleSummary(raw) {
|
|
166
|
+
const out = { name: isString(raw["Name"]) ? raw["Name"] : "" };
|
|
167
|
+
if (isString(raw["GroupName"])) out.group_name = raw["GroupName"];
|
|
168
|
+
if (raw["State"] === "ENABLED" || raw["State"] === "DISABLED") out.state = raw["State"];
|
|
169
|
+
if (isString(raw["ScheduleExpression"])) out.schedule_expression = raw["ScheduleExpression"];
|
|
170
|
+
if (isString(raw["Arn"])) out.arn = raw["Arn"];
|
|
171
|
+
return out;
|
|
172
|
+
}
|
|
173
|
+
function mapScheduleDetail(raw) {
|
|
174
|
+
const base = mapScheduleSummary(raw);
|
|
175
|
+
const target = isPlainObject(raw["Target"]) ? raw["Target"] : void 0;
|
|
176
|
+
const taskRef = target ? parseTaskRefFromInput(target["Input"]) : void 0;
|
|
177
|
+
const out = { ...base };
|
|
178
|
+
if (isString(raw["Description"])) out.description = raw["Description"];
|
|
179
|
+
if (isString(raw["ScheduleExpressionTimezone"])) out.timezone = raw["ScheduleExpressionTimezone"];
|
|
180
|
+
if (taskRef !== void 0) out.task_ref = taskRef;
|
|
181
|
+
if (isString(raw["CreationDate"])) out.creation_date = raw["CreationDate"];
|
|
182
|
+
if (isString(raw["LastModificationDate"])) out.last_modification_date = raw["LastModificationDate"];
|
|
183
|
+
if (typeof raw["CreationDate"] === "number") out.creation_date = (/* @__PURE__ */ new Date(raw["CreationDate"] * 1e3)).toISOString();
|
|
184
|
+
if (typeof raw["LastModificationDate"] === "number") out.last_modification_date = (/* @__PURE__ */ new Date(raw["LastModificationDate"] * 1e3)).toISOString();
|
|
185
|
+
return out;
|
|
186
|
+
}
|
|
187
|
+
//#endregion
|
|
188
|
+
//#region src/vendors/eventbridge-scheduler/client.ts
|
|
189
|
+
/**
|
|
190
|
+
* Amazon EventBridge Scheduler vendor client (AwsService SigV4).
|
|
191
|
+
* Host: `new EventBridgeSchedulerClient(auth)`. Agent: `fromContext(ctx)`.
|
|
192
|
+
*/
|
|
193
|
+
var EventBridgeSchedulerClient = class EventBridgeSchedulerClient {
|
|
194
|
+
#auth;
|
|
195
|
+
#aws;
|
|
196
|
+
constructor(auth, options = {}) {
|
|
197
|
+
const parsed = eventBridgeSchedulerAuthSchema.safeParse(auth);
|
|
198
|
+
if (!parsed.success) throw new ToolError("Invalid EventBridge Scheduler auth credentials", {
|
|
199
|
+
code: "bad_auth",
|
|
200
|
+
details: { issues: parsed.error.issues.map((issue) => issue.message) }
|
|
201
|
+
});
|
|
202
|
+
this.#auth = parsed.data;
|
|
203
|
+
const awsOptions = {
|
|
204
|
+
accessKeyId: this.#auth.access_key_id,
|
|
205
|
+
secretAccessKey: this.#auth.secret_access_key,
|
|
206
|
+
region: this.#auth.region,
|
|
207
|
+
service: "scheduler",
|
|
208
|
+
baseURL: `https://scheduler.${this.#auth.region}.amazonaws.com`,
|
|
209
|
+
label: "EventBridge Scheduler"
|
|
210
|
+
};
|
|
211
|
+
if (options.fetch) awsOptions.fetch = options.fetch;
|
|
212
|
+
if (options.signal) awsOptions.signal = options.signal;
|
|
213
|
+
if (this.#auth.session_token) awsOptions.sessionToken = this.#auth.session_token;
|
|
214
|
+
this.#aws = new AwsService(awsOptions);
|
|
215
|
+
}
|
|
216
|
+
static fromContext(ctx) {
|
|
217
|
+
const auth = requireAuth(ctx, eventBridgeSchedulerAuthSchema);
|
|
218
|
+
const options = {};
|
|
219
|
+
if (ctx.fetch) options.fetch = ctx.fetch;
|
|
220
|
+
if (ctx.signal) options.signal = ctx.signal;
|
|
221
|
+
return new EventBridgeSchedulerClient(auth, options);
|
|
222
|
+
}
|
|
223
|
+
async create(input) {
|
|
224
|
+
const body = buildCreateBody(this.#auth, input);
|
|
225
|
+
const { data } = await this.#aws.post(`/schedules/${encodeURIComponent(input.name)}`, body);
|
|
226
|
+
return this.#writeResult(input.name, data);
|
|
227
|
+
}
|
|
228
|
+
async update(input) {
|
|
229
|
+
const body = buildCreateBody(this.#auth, input);
|
|
230
|
+
const { data } = await this.#aws.put(`/schedules/${encodeURIComponent(input.name)}`, body);
|
|
231
|
+
return this.#writeResult(input.name, data);
|
|
232
|
+
}
|
|
233
|
+
async get(input) {
|
|
234
|
+
const path = `/schedules/${encodeURIComponent(input.name)}${this.#scheduleQuery()}`;
|
|
235
|
+
const { data } = await this.#aws.get(path);
|
|
236
|
+
if (!isPlainObject(data)) throw new ToolError("Unexpected GetSchedule response", { code: "upstream" });
|
|
237
|
+
return { schedule: mapScheduleDetail(data) };
|
|
238
|
+
}
|
|
239
|
+
async list(input = {}) {
|
|
240
|
+
const params = new URLSearchParams();
|
|
241
|
+
if (input.name_prefix) params.set("NamePrefix", input.name_prefix);
|
|
242
|
+
if (input.state) params.set("State", input.state);
|
|
243
|
+
if (input.max_results !== void 0) params.set("MaxResults", String(input.max_results));
|
|
244
|
+
if (input.next_token) params.set("NextToken", input.next_token);
|
|
245
|
+
if (this.#auth.group_name) params.set("ScheduleGroup", this.#auth.group_name);
|
|
246
|
+
const qs = params.toString();
|
|
247
|
+
const { data } = await this.#aws.get(`/schedules${qs ? `?${qs}` : ""}`);
|
|
248
|
+
if (!isPlainObject(data)) throw new ToolError("Unexpected ListSchedules response", { code: "upstream" });
|
|
249
|
+
const items = data["Schedules"];
|
|
250
|
+
const out = { schedules: isArray(items) ? items.filter(isPlainObject).map((row) => mapScheduleSummary(row)) : [] };
|
|
251
|
+
if (isString(data["NextToken"])) out.next_token = data["NextToken"];
|
|
252
|
+
return out;
|
|
253
|
+
}
|
|
254
|
+
async delete(input) {
|
|
255
|
+
const path = `/schedules/${encodeURIComponent(input.name)}${this.#scheduleQuery({ clientToken: newClientToken() })}`;
|
|
256
|
+
await this.#aws.delete(path);
|
|
257
|
+
return {
|
|
258
|
+
name: input.name,
|
|
259
|
+
deleted: true
|
|
260
|
+
};
|
|
261
|
+
}
|
|
262
|
+
#scheduleQuery(extra = {}) {
|
|
263
|
+
const params = new URLSearchParams(extra);
|
|
264
|
+
if (this.#auth.group_name) params.set("groupName", this.#auth.group_name);
|
|
265
|
+
const qs = params.toString();
|
|
266
|
+
return qs ? `?${qs}` : "";
|
|
267
|
+
}
|
|
268
|
+
#writeResult(name, raw) {
|
|
269
|
+
const out = { name };
|
|
270
|
+
if (isPlainObject(raw) && isString(raw["ScheduleArn"])) out.arn = raw["ScheduleArn"];
|
|
271
|
+
return out;
|
|
272
|
+
}
|
|
273
|
+
};
|
|
274
|
+
//#endregion
|
|
275
|
+
//#region src/vendors/eventbridge-scheduler/module.ts
|
|
276
|
+
const eventBridgeSchedulerCreateTool = defineTool({
|
|
277
|
+
id: "eventbridge-scheduler-create",
|
|
278
|
+
name: "eventBridgeSchedulerCreate",
|
|
279
|
+
description: "Create an EventBridge Scheduler schedule for the configured target. Provide schedule name, schedule_expression (at/rate/cron), and task_ref (opaque task definition reference).",
|
|
280
|
+
inputSchema: scheduleCreateInputSchema,
|
|
281
|
+
outputSchema: scheduleWriteOutputSchema,
|
|
282
|
+
sideEffect: "write",
|
|
283
|
+
runtime: "both",
|
|
284
|
+
execute: async (input, ctx) => EventBridgeSchedulerClient.fromContext(ctx).create(input)
|
|
285
|
+
});
|
|
286
|
+
const eventBridgeSchedulerUpdateTool = defineTool({
|
|
287
|
+
id: "eventbridge-scheduler-update",
|
|
288
|
+
name: "eventBridgeSchedulerUpdate",
|
|
289
|
+
description: "Replace an EventBridge Scheduler schedule (AWS full update). Same fields as create: name, schedule_expression, task_ref, optional timezone/state/description.",
|
|
290
|
+
inputSchema: scheduleUpdateInputSchema,
|
|
291
|
+
outputSchema: scheduleWriteOutputSchema,
|
|
292
|
+
sideEffect: "write",
|
|
293
|
+
runtime: "both",
|
|
294
|
+
execute: async (input, ctx) => EventBridgeSchedulerClient.fromContext(ctx).update(input)
|
|
295
|
+
});
|
|
296
|
+
const eventBridgeSchedulerGetTool = defineTool({
|
|
297
|
+
id: "eventbridge-scheduler-get",
|
|
298
|
+
name: "eventBridgeSchedulerGet",
|
|
299
|
+
description: "Get one EventBridge Scheduler schedule by name, including task_ref when present in target input.",
|
|
300
|
+
inputSchema: scheduleNameInputSchema,
|
|
301
|
+
outputSchema: scheduleGetOutputSchema,
|
|
302
|
+
sideEffect: "read",
|
|
303
|
+
runtime: "both",
|
|
304
|
+
execute: async (input, ctx) => EventBridgeSchedulerClient.fromContext(ctx).get(input)
|
|
305
|
+
});
|
|
306
|
+
const eventBridgeSchedulerListTool = defineTool({
|
|
307
|
+
id: "eventbridge-scheduler-list",
|
|
308
|
+
name: "eventBridgeSchedulerList",
|
|
309
|
+
description: "List EventBridge Scheduler schedules with optional name prefix, state filter, and pagination token.",
|
|
310
|
+
inputSchema: scheduleListInputSchema,
|
|
311
|
+
outputSchema: scheduleListOutputSchema,
|
|
312
|
+
sideEffect: "read",
|
|
313
|
+
runtime: "both",
|
|
314
|
+
execute: async (input, ctx) => EventBridgeSchedulerClient.fromContext(ctx).list(input)
|
|
315
|
+
});
|
|
316
|
+
const eventBridgeSchedulerDeleteTool = defineTool({
|
|
317
|
+
id: "eventbridge-scheduler-delete",
|
|
318
|
+
name: "eventBridgeSchedulerDelete",
|
|
319
|
+
description: "Delete an EventBridge Scheduler schedule by name.",
|
|
320
|
+
inputSchema: scheduleNameInputSchema,
|
|
321
|
+
outputSchema: scheduleDeleteOutputSchema,
|
|
322
|
+
sideEffect: "write",
|
|
323
|
+
runtime: "both",
|
|
324
|
+
execute: async (input, ctx) => EventBridgeSchedulerClient.fromContext(ctx).delete(input)
|
|
325
|
+
});
|
|
326
|
+
const eventBridgeSchedulerModule = defineModule({
|
|
327
|
+
id: "eventbridge-scheduler",
|
|
328
|
+
title: "EventBridge Scheduler",
|
|
329
|
+
description: "Amazon EventBridge Scheduler vendor pack: create, fully update, get, list, and delete schedules for a configured target.",
|
|
330
|
+
runtime: "both",
|
|
331
|
+
auth: {
|
|
332
|
+
type: "custom",
|
|
333
|
+
schema: eventBridgeSchedulerAuthSchema
|
|
334
|
+
},
|
|
335
|
+
categories: ["scheduler", "aws"],
|
|
336
|
+
classification: "standard",
|
|
337
|
+
tags: ["eventbridge"],
|
|
338
|
+
tools: [
|
|
339
|
+
eventBridgeSchedulerCreateTool,
|
|
340
|
+
eventBridgeSchedulerUpdateTool,
|
|
341
|
+
eventBridgeSchedulerGetTool,
|
|
342
|
+
eventBridgeSchedulerListTool,
|
|
343
|
+
eventBridgeSchedulerDeleteTool
|
|
344
|
+
]
|
|
345
|
+
});
|
|
346
|
+
//#endregion
|
|
347
|
+
export { scheduleWriteOutputSchema as C, scheduleUpdateInputSchema as S, scheduleListInputSchema as _, eventBridgeSchedulerModule as a, scheduleStateSchema as b, MAX_LIST as c, MAX_TASK_REF as d, eventBridgeSchedulerAuthSchema as f, scheduleGetOutputSchema as g, scheduleDetailSchema as h, eventBridgeSchedulerListTool as i, MAX_PAYLOAD_JSON as l, scheduleDeleteOutputSchema as m, eventBridgeSchedulerDeleteTool as n, eventBridgeSchedulerUpdateTool as o, scheduleCreateInputSchema as p, eventBridgeSchedulerGetTool as r, EventBridgeSchedulerClient as s, eventBridgeSchedulerCreateTool as t, MAX_SCHEDULE_NAME as u, scheduleListOutputSchema as v, scheduleSummarySchema as x, scheduleNameInputSchema as y };
|
|
348
|
+
|
|
349
|
+
//# sourceMappingURL=eventbridge-scheduler-Bh6GqZY2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eventbridge-scheduler-Bh6GqZY2.js","names":["#auth","#aws","#writeResult","#scheduleQuery"],"sources":["../src/vendors/eventbridge-scheduler/contracts.ts","../src/vendors/eventbridge-scheduler/domain.ts","../src/vendors/eventbridge-scheduler/client.ts","../src/vendors/eventbridge-scheduler/module.ts"],"sourcesContent":["/**\n * Amazon EventBridge Scheduler vendor contracts.\n * Host auth holds target ARN / role ARN; tools schedule task_ref only.\n */\n\nimport { z } from 'zod'\n\nexport const MAX_SCHEDULE_NAME = 64\nexport const MAX_TASK_REF = 512\nexport const MAX_PAYLOAD_JSON = 8_000\nexport const MAX_LIST = 100\n\nconst scheduleName = z\n\t.string()\n\t.min(1)\n\t.max(MAX_SCHEDULE_NAME)\n\t.regex(/^[0-9a-zA-Z-_.]+$/, 'Schedule name must match [0-9a-zA-Z-_.]+')\n\nexport const eventBridgeSchedulerAuthSchema = z.object({\n\taccess_key_id: z.string().min(1).describe('AWS access key id'),\n\tsecret_access_key: z.string().min(1).describe('AWS secret access key'),\n\tregion: z.string().min(1).describe('AWS region for EventBridge Scheduler'),\n\tsession_token: z.string().min(1).optional().describe('Optional session token'),\n\ttarget_arn: z.string().min(1).describe('Host-bound target ARN (Lambda, SQS, etc.)'),\n\trole_arn: z.string().min(1).describe('Host-bound IAM role ARN for the scheduler target'),\n\tgroup_name: z.string().min(1).max(64).optional().describe('Schedule group name (default group when omitted)'),\n\tflexible_window_minutes: z\n\t\t.int()\n\t\t.min(1)\n\t\t.max(1440)\n\t\t.optional()\n\t\t.describe('When set, FlexibleTimeWindow Mode=FLEXIBLE with this window; otherwise Mode=OFF'),\n\tdead_letter_arn: z.string().min(1).optional().describe('Optional DLQ ARN'),\n\tmax_retry_attempts: z.int().min(0).max(185).optional().describe('Target retry MaximumRetryAttempts'),\n\tmax_event_age_seconds: z.int().min(60).max(86400).optional().describe('Target retry MaximumEventAgeInSeconds')\n})\n\nexport type EventBridgeSchedulerAuth = z.infer<typeof eventBridgeSchedulerAuthSchema>\n\nexport const scheduleStateSchema = z.enum(['ENABLED', 'DISABLED'])\n\nexport type ScheduleState = z.infer<typeof scheduleStateSchema>\n\nexport const scheduleCreateInputSchema = z.object({\n\tname: scheduleName.describe('Schedule name'),\n\tschedule_expression: z.string().min(1).max(256).describe('When to run: at(...), rate(...), or cron(...) expression'),\n\ttask_ref: z\n\t\t.string()\n\t\t.min(1)\n\t\t.max(MAX_TASK_REF)\n\t\t.describe('Opaque task definition reference. Not an ARN or infrastructure id'),\n\tpayload: z\n\t\t.record(z.string(), z.unknown())\n\t\t.optional()\n\t\t.describe('Optional small JSON payload merged into the target input with task_ref'),\n\ttimezone: z.string().min(1).max(50).optional().describe('Timezone for the schedule expression'),\n\tdescription: z.string().max(512).optional().describe('Human description'),\n\tstate: scheduleStateSchema.optional().describe('ENABLED or DISABLED (default ENABLED)'),\n\tstart_at: z.string().min(1).optional().describe('ISO-8601 start time (UTC) when the schedule may begin'),\n\tend_at: z.string().min(1).optional().describe('ISO-8601 end time (UTC) when the schedule may stop'),\n\taction_after_completion: z\n\t\t.enum(['NONE', 'DELETE'])\n\t\t.optional()\n\t\t.describe('What to do after a one-time schedule completes')\n})\n\nexport const scheduleUpdateInputSchema = scheduleCreateInputSchema\n\nexport const scheduleNameInputSchema = z.object({\n\tname: scheduleName.describe('Schedule name')\n})\n\nexport const scheduleListInputSchema = z.object({\n\tname_prefix: z.string().min(1).max(64).optional().describe('Filter by name prefix'),\n\tstate: scheduleStateSchema.optional().describe('Filter by state'),\n\tmax_results: z.int().min(1).max(MAX_LIST).optional().describe('Page size (default 100)'),\n\tnext_token: z.string().min(1).optional().describe('Pagination token from a prior list call')\n})\n\nexport const scheduleSummarySchema = z.object({\n\tname: z.string().describe('Schedule name'),\n\tgroup_name: z.string().optional().describe('Schedule group'),\n\tstate: scheduleStateSchema.optional().describe('ENABLED or DISABLED'),\n\tschedule_expression: z.string().optional().describe('Schedule expression when known'),\n\tarn: z.string().optional().describe('Schedule ARN when returned by the provider')\n})\n\nexport const scheduleDetailSchema = scheduleSummarySchema.extend({\n\tdescription: z.string().optional(),\n\ttimezone: z.string().optional(),\n\ttask_ref: z.string().optional().describe('task_ref parsed from target input when present'),\n\tcreation_date: z.string().optional(),\n\tlast_modification_date: z.string().optional()\n})\n\nexport const scheduleWriteOutputSchema = z.object({\n\tname: z.string().describe('Schedule name'),\n\tarn: z.string().optional().describe('Schedule ARN when returned')\n})\n\nexport const scheduleGetOutputSchema = z.object({\n\tschedule: scheduleDetailSchema\n})\n\nexport const scheduleListOutputSchema = z.object({\n\tschedules: z.array(scheduleSummarySchema),\n\tnext_token: z.string().optional().describe('Pagination token when more results exist')\n})\n\nexport const scheduleDeleteOutputSchema = z.object({\n\tname: z.string().describe('Deleted schedule name'),\n\tdeleted: z.literal(true)\n})\n\nexport type ScheduleCreateInput = z.infer<typeof scheduleCreateInputSchema>\nexport type ScheduleUpdateInput = z.infer<typeof scheduleUpdateInputSchema>\nexport type ScheduleNameInput = z.infer<typeof scheduleNameInputSchema>\nexport type ScheduleListInput = z.infer<typeof scheduleListInputSchema>\nexport type ScheduleSummary = z.infer<typeof scheduleSummarySchema>\nexport type ScheduleDetail = z.infer<typeof scheduleDetailSchema>\nexport type ScheduleWriteOutput = z.infer<typeof scheduleWriteOutputSchema>\nexport type ScheduleGetOutput = z.infer<typeof scheduleGetOutputSchema>\nexport type ScheduleListOutput = z.infer<typeof scheduleListOutputSchema>\nexport type ScheduleDeleteOutput = z.infer<typeof scheduleDeleteOutputSchema>\n","/**\n * EventBridge Scheduler pure helpers (no HTTP).\n */\n\nimport { isPlainObject, isString } from 'es-toolkit'\n\nimport { ToolError } from '../../core/errors'\nimport type { EventBridgeSchedulerAuth, ScheduleCreateInput, ScheduleDetail, ScheduleSummary } from './contracts'\nimport { MAX_PAYLOAD_JSON } from './contracts'\n\nexport function buildTargetInput(taskRef: string, payload?: Record<string, unknown>): string {\n\tconst body: Record<string, unknown> = { task_ref: taskRef }\n\tif (payload !== undefined) {\n\t\tfor (const [key, value] of Object.entries(payload)) {\n\t\t\tif (key === 'task_ref') continue\n\t\t\tbody[key] = value\n\t\t}\n\t}\n\tconst json = JSON.stringify(body)\n\tif (json.length > MAX_PAYLOAD_JSON) {\n\t\tthrow new ToolError('Schedule target payload is too large', {\n\t\t\tcode: 'too_large',\n\t\t\tdetails: { max_chars: MAX_PAYLOAD_JSON, length: json.length }\n\t\t})\n\t}\n\treturn json\n}\n\nexport function parseTaskRefFromInput(input: unknown): string | undefined {\n\tif (!isString(input) || input.length === 0) return undefined\n\ttry {\n\t\tconst parsed: unknown = JSON.parse(input)\n\t\tif (!isPlainObject(parsed)) return undefined\n\t\tconst ref = parsed['task_ref']\n\t\treturn isString(ref) ? ref : undefined\n\t} catch {\n\t\treturn undefined\n\t}\n}\n\nexport function flexibleTimeWindow(auth: EventBridgeSchedulerAuth): {\n\tMode: 'OFF' | 'FLEXIBLE'\n\tMaximumWindowInMinutes?: number\n} {\n\tif (auth.flexible_window_minutes !== undefined) {\n\t\treturn { Mode: 'FLEXIBLE', MaximumWindowInMinutes: auth.flexible_window_minutes }\n\t}\n\treturn { Mode: 'OFF' }\n}\n\nexport function isoToUnixSeconds(iso: string, field: string): number {\n\tconst ms = Date.parse(iso)\n\tif (!Number.isFinite(ms)) {\n\t\tthrow new ToolError(`Invalid ${field} timestamp`, { code: 'bad_input', details: { field, value: iso } })\n\t}\n\treturn Math.floor(ms / 1000)\n}\n\n/**\n * EventBridge Scheduler rejects empty ClientToken on the raw HTTP API even when\n * docs mark it optional (SDKs / CLI always send one).\n * Pattern: [a-zA-Z0-9-_]+, max 64.\n */\nexport function newClientToken(): string {\n\treturn crypto.randomUUID().replaceAll('-', '')\n}\n\nexport function buildCreateBody(auth: EventBridgeSchedulerAuth, input: ScheduleCreateInput): Record<string, unknown> {\n\tconst target: Record<string, unknown> = {\n\t\tArn: auth.target_arn,\n\t\tRoleArn: auth.role_arn,\n\t\tInput: buildTargetInput(input.task_ref, input.payload)\n\t}\n\tif (auth.dead_letter_arn) {\n\t\ttarget['DeadLetterConfig'] = { Arn: auth.dead_letter_arn }\n\t}\n\tif (auth.max_retry_attempts !== undefined || auth.max_event_age_seconds !== undefined) {\n\t\tconst retry: Record<string, number> = {}\n\t\tif (auth.max_retry_attempts !== undefined) retry['MaximumRetryAttempts'] = auth.max_retry_attempts\n\t\tif (auth.max_event_age_seconds !== undefined) retry['MaximumEventAgeInSeconds'] = auth.max_event_age_seconds\n\t\ttarget['RetryPolicy'] = retry\n\t}\n\n\tconst body: Record<string, unknown> = {\n\t\tClientToken: newClientToken(),\n\t\tScheduleExpression: input.schedule_expression,\n\t\tFlexibleTimeWindow: flexibleTimeWindow(auth),\n\t\tTarget: target,\n\t\tState: input.state ?? 'ENABLED'\n\t}\n\tif (auth.group_name) body['GroupName'] = auth.group_name\n\tif (input.timezone) body['ScheduleExpressionTimezone'] = input.timezone\n\tif (input.description) body['Description'] = input.description\n\tif (input.action_after_completion) body['ActionAfterCompletion'] = input.action_after_completion\n\tif (input.start_at) body['StartDate'] = isoToUnixSeconds(input.start_at, 'start_at')\n\tif (input.end_at) body['EndDate'] = isoToUnixSeconds(input.end_at, 'end_at')\n\treturn body\n}\n\nexport function mapScheduleSummary(raw: Record<string, unknown>): ScheduleSummary {\n\tconst out: ScheduleSummary = {\n\t\tname: isString(raw['Name']) ? raw['Name'] : ''\n\t}\n\tif (isString(raw['GroupName'])) out.group_name = raw['GroupName']\n\tif (raw['State'] === 'ENABLED' || raw['State'] === 'DISABLED') out.state = raw['State']\n\tif (isString(raw['ScheduleExpression'])) out.schedule_expression = raw['ScheduleExpression']\n\tif (isString(raw['Arn'])) out.arn = raw['Arn']\n\treturn out\n}\n\nexport function mapScheduleDetail(raw: Record<string, unknown>): ScheduleDetail {\n\tconst base = mapScheduleSummary(raw)\n\tconst target = isPlainObject(raw['Target']) ? raw['Target'] : undefined\n\tconst taskRef = target ? parseTaskRefFromInput(target['Input']) : undefined\n\tconst out: ScheduleDetail = { ...base }\n\tif (isString(raw['Description'])) out.description = raw['Description']\n\tif (isString(raw['ScheduleExpressionTimezone'])) out.timezone = raw['ScheduleExpressionTimezone']\n\tif (taskRef !== undefined) out.task_ref = taskRef\n\tif (isString(raw['CreationDate'])) out.creation_date = raw['CreationDate']\n\tif (isString(raw['LastModificationDate'])) out.last_modification_date = raw['LastModificationDate']\n\t// AWS may return timestamps as numbers\n\tif (typeof raw['CreationDate'] === 'number') out.creation_date = new Date(raw['CreationDate'] * 1000).toISOString()\n\tif (typeof raw['LastModificationDate'] === 'number') {\n\t\tout.last_modification_date = new Date(raw['LastModificationDate'] * 1000).toISOString()\n\t}\n\treturn out\n}\n","/**\n * Amazon EventBridge Scheduler vendor client (AwsService SigV4).\n * Host: `new EventBridgeSchedulerClient(auth)`. Agent: `fromContext(ctx)`.\n */\n\nimport { isPlainObject, isString } from 'es-toolkit'\nimport { isArray } from 'es-toolkit/compat'\n\nimport { ToolError } from '../../core/errors'\nimport { requireAuth } from '../../core/provider'\nimport type { ToolContext } from '../../core/types'\nimport { AwsService } from '../../transport/aws-service'\nimport type { AwsServiceOptions } from '../../transport/aws-service'\nimport type { HttpServiceOptions } from '../../transport/http-service'\nimport type {\n\tEventBridgeSchedulerAuth,\n\tScheduleCreateInput,\n\tScheduleDeleteOutput,\n\tScheduleGetOutput,\n\tScheduleListInput,\n\tScheduleListOutput,\n\tScheduleNameInput,\n\tScheduleUpdateInput,\n\tScheduleWriteOutput\n} from './contracts'\nimport { eventBridgeSchedulerAuthSchema } from './contracts'\nimport { buildCreateBody, mapScheduleDetail, mapScheduleSummary, newClientToken } from './domain'\n\nexport type EventBridgeSchedulerClientOptions = Pick<HttpServiceOptions, 'fetch' | 'signal'>\n\nexport class EventBridgeSchedulerClient {\n\treadonly #auth: EventBridgeSchedulerAuth\n\treadonly #aws: AwsService\n\n\tconstructor(auth: EventBridgeSchedulerAuth, options: EventBridgeSchedulerClientOptions = {}) {\n\t\tconst parsed = eventBridgeSchedulerAuthSchema.safeParse(auth)\n\t\tif (!parsed.success) {\n\t\t\tthrow new ToolError('Invalid EventBridge Scheduler auth credentials', {\n\t\t\t\tcode: 'bad_auth',\n\t\t\t\tdetails: { issues: parsed.error.issues.map((issue) => issue.message) }\n\t\t\t})\n\t\t}\n\t\tthis.#auth = parsed.data\n\t\tconst awsOptions: AwsServiceOptions = {\n\t\t\taccessKeyId: this.#auth.access_key_id,\n\t\t\tsecretAccessKey: this.#auth.secret_access_key,\n\t\t\tregion: this.#auth.region,\n\t\t\tservice: 'scheduler',\n\t\t\tbaseURL: `https://scheduler.${this.#auth.region}.amazonaws.com`,\n\t\t\tlabel: 'EventBridge Scheduler'\n\t\t}\n\t\tif (options.fetch) awsOptions.fetch = options.fetch\n\t\tif (options.signal) awsOptions.signal = options.signal\n\t\tif (this.#auth.session_token) awsOptions.sessionToken = this.#auth.session_token\n\t\tthis.#aws = new AwsService(awsOptions)\n\t}\n\n\tstatic fromContext(ctx: ToolContext): EventBridgeSchedulerClient {\n\t\tconst auth = requireAuth(ctx, eventBridgeSchedulerAuthSchema)\n\t\tconst options: EventBridgeSchedulerClientOptions = {}\n\t\tif (ctx.fetch) options.fetch = ctx.fetch\n\t\tif (ctx.signal) options.signal = ctx.signal\n\t\treturn new EventBridgeSchedulerClient(auth, options)\n\t}\n\n\tasync create(input: ScheduleCreateInput): Promise<ScheduleWriteOutput> {\n\t\tconst body = buildCreateBody(this.#auth, input)\n\t\tconst { data } = await this.#aws.post(`/schedules/${encodeURIComponent(input.name)}`, body)\n\t\treturn this.#writeResult(input.name, data)\n\t}\n\n\tasync update(input: ScheduleUpdateInput): Promise<ScheduleWriteOutput> {\n\t\tconst body = buildCreateBody(this.#auth, input)\n\t\tconst { data } = await this.#aws.put(`/schedules/${encodeURIComponent(input.name)}`, body)\n\t\treturn this.#writeResult(input.name, data)\n\t}\n\n\tasync get(input: ScheduleNameInput): Promise<ScheduleGetOutput> {\n\t\tconst path = `/schedules/${encodeURIComponent(input.name)}${this.#scheduleQuery()}`\n\t\tconst { data } = await this.#aws.get(path)\n\t\tif (!isPlainObject(data)) {\n\t\t\tthrow new ToolError('Unexpected GetSchedule response', { code: 'upstream' })\n\t\t}\n\t\treturn { schedule: mapScheduleDetail(data) }\n\t}\n\n\tasync list(input: ScheduleListInput = {}): Promise<ScheduleListOutput> {\n\t\tconst params = new URLSearchParams()\n\t\tif (input.name_prefix) params.set('NamePrefix', input.name_prefix)\n\t\tif (input.state) params.set('State', input.state)\n\t\tif (input.max_results !== undefined) params.set('MaxResults', String(input.max_results))\n\t\tif (input.next_token) params.set('NextToken', input.next_token)\n\t\tif (this.#auth.group_name) params.set('ScheduleGroup', this.#auth.group_name)\n\t\tconst qs = params.toString()\n\t\tconst { data } = await this.#aws.get(`/schedules${qs ? `?${qs}` : ''}`)\n\t\tif (!isPlainObject(data)) {\n\t\t\tthrow new ToolError('Unexpected ListSchedules response', { code: 'upstream' })\n\t\t}\n\t\tconst items = data['Schedules']\n\t\tconst schedules = isArray(items) ? items.filter(isPlainObject).map((row) => mapScheduleSummary(row)) : []\n\t\tconst out: ScheduleListOutput = { schedules }\n\t\tif (isString(data['NextToken'])) out.next_token = data['NextToken']\n\t\treturn out\n\t}\n\n\tasync delete(input: ScheduleNameInput): Promise<ScheduleDeleteOutput> {\n\t\t// DeleteSchedule takes clientToken as a query param; empty/missing fails live API.\n\t\tconst path = `/schedules/${encodeURIComponent(input.name)}${this.#scheduleQuery({ clientToken: newClientToken() })}`\n\t\tawait this.#aws.delete(path)\n\t\treturn { name: input.name, deleted: true }\n\t}\n\n\t#scheduleQuery(extra: Record<string, string> = {}): string {\n\t\tconst params = new URLSearchParams(extra)\n\t\tif (this.#auth.group_name) params.set('groupName', this.#auth.group_name)\n\t\tconst qs = params.toString()\n\t\treturn qs ? `?${qs}` : ''\n\t}\n\n\t#writeResult(name: string, raw: unknown): ScheduleWriteOutput {\n\t\tconst out: ScheduleWriteOutput = { name }\n\t\tif (isPlainObject(raw) && isString(raw['ScheduleArn'])) out.arn = raw['ScheduleArn']\n\t\treturn out\n\t}\n}\n","import { defineModule, defineTool } from '../../core/define'\nimport { EventBridgeSchedulerClient } from './client'\nimport {\n\teventBridgeSchedulerAuthSchema,\n\tscheduleCreateInputSchema,\n\tscheduleDeleteOutputSchema,\n\tscheduleGetOutputSchema,\n\tscheduleListInputSchema,\n\tscheduleListOutputSchema,\n\tscheduleNameInputSchema,\n\tscheduleUpdateInputSchema,\n\tscheduleWriteOutputSchema\n} from './contracts'\n\nexport const eventBridgeSchedulerCreateTool = defineTool({\n\tid: 'eventbridge-scheduler-create',\n\tname: 'eventBridgeSchedulerCreate',\n\tdescription:\n\t\t'Create an EventBridge Scheduler schedule for the configured target. Provide schedule name, schedule_expression (at/rate/cron), and task_ref (opaque task definition reference).',\n\tinputSchema: scheduleCreateInputSchema,\n\toutputSchema: scheduleWriteOutputSchema,\n\tsideEffect: 'write',\n\truntime: 'both',\n\texecute: async (input, ctx) => EventBridgeSchedulerClient.fromContext(ctx).create(input)\n})\n\nexport const eventBridgeSchedulerUpdateTool = defineTool({\n\tid: 'eventbridge-scheduler-update',\n\tname: 'eventBridgeSchedulerUpdate',\n\tdescription:\n\t\t'Replace an EventBridge Scheduler schedule (AWS full update). Same fields as create: name, schedule_expression, task_ref, optional timezone/state/description.',\n\tinputSchema: scheduleUpdateInputSchema,\n\toutputSchema: scheduleWriteOutputSchema,\n\tsideEffect: 'write',\n\truntime: 'both',\n\texecute: async (input, ctx) => EventBridgeSchedulerClient.fromContext(ctx).update(input)\n})\n\nexport const eventBridgeSchedulerGetTool = defineTool({\n\tid: 'eventbridge-scheduler-get',\n\tname: 'eventBridgeSchedulerGet',\n\tdescription: 'Get one EventBridge Scheduler schedule by name, including task_ref when present in target input.',\n\tinputSchema: scheduleNameInputSchema,\n\toutputSchema: scheduleGetOutputSchema,\n\tsideEffect: 'read',\n\truntime: 'both',\n\texecute: async (input, ctx) => EventBridgeSchedulerClient.fromContext(ctx).get(input)\n})\n\nexport const eventBridgeSchedulerListTool = defineTool({\n\tid: 'eventbridge-scheduler-list',\n\tname: 'eventBridgeSchedulerList',\n\tdescription: 'List EventBridge Scheduler schedules with optional name prefix, state filter, and pagination token.',\n\tinputSchema: scheduleListInputSchema,\n\toutputSchema: scheduleListOutputSchema,\n\tsideEffect: 'read',\n\truntime: 'both',\n\texecute: async (input, ctx) => EventBridgeSchedulerClient.fromContext(ctx).list(input)\n})\n\nexport const eventBridgeSchedulerDeleteTool = defineTool({\n\tid: 'eventbridge-scheduler-delete',\n\tname: 'eventBridgeSchedulerDelete',\n\tdescription: 'Delete an EventBridge Scheduler schedule by name.',\n\tinputSchema: scheduleNameInputSchema,\n\toutputSchema: scheduleDeleteOutputSchema,\n\tsideEffect: 'write',\n\truntime: 'both',\n\texecute: async (input, ctx) => EventBridgeSchedulerClient.fromContext(ctx).delete(input)\n})\n\nexport const eventBridgeSchedulerModule = defineModule({\n\tid: 'eventbridge-scheduler',\n\ttitle: 'EventBridge Scheduler',\n\tdescription:\n\t\t'Amazon EventBridge Scheduler vendor pack: create, fully update, get, list, and delete schedules for a configured target.',\n\truntime: 'both',\n\tauth: { type: 'custom', schema: eventBridgeSchedulerAuthSchema },\n\tcategories: ['scheduler', 'aws'],\n\tclassification: 'standard',\n\ttags: ['eventbridge'],\n\ttools: [\n\t\teventBridgeSchedulerCreateTool,\n\t\teventBridgeSchedulerUpdateTool,\n\t\teventBridgeSchedulerGetTool,\n\t\teventBridgeSchedulerListTool,\n\t\teventBridgeSchedulerDeleteTool\n\t]\n})\n"],"mappings":";;;;;;;;;;;;AAOA,MAAa,oBAAoB;AACjC,MAAa,eAAe;AAC5B,MAAa,mBAAmB;AAChC,MAAa,WAAW;AAExB,MAAM,eAAe,EACnB,OAAO,CAAC,CACR,IAAI,CAAC,CAAC,CACN,IAAA,EAAqB,CAAC,CACtB,MAAM,qBAAqB,0CAA0C;AAEvE,MAAa,iCAAiC,EAAE,OAAO;CACtD,eAAe,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,mBAAmB;CAC7D,mBAAmB,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,uBAAuB;CACrE,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,sCAAsC;CACzE,eAAe,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,wBAAwB;CAC7E,YAAY,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,2CAA2C;CAClF,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,kDAAkD;CACvF,YAAY,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,kDAAkD;CAC5G,yBAAyB,EACvB,IAAI,CAAC,CACL,IAAI,CAAC,CAAC,CACN,IAAI,IAAI,CAAC,CACT,SAAS,CAAC,CACV,SAAS,iFAAiF;CAC5F,iBAAiB,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,kBAAkB;CACzE,oBAAoB,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,mCAAmC;CACnG,uBAAuB,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,uCAAuC;AAC9G,CAAC;AAID,MAAa,sBAAsB,EAAE,KAAK,CAAC,WAAW,UAAU,CAAC;AAIjE,MAAa,4BAA4B,EAAE,OAAO;CACjD,MAAM,aAAa,SAAS,eAAe;CAC3C,qBAAqB,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,SAAS,0DAA0D;CACnH,UAAU,EACR,OAAO,CAAC,CACR,IAAI,CAAC,CAAC,CACN,IAAA,GAAgB,CAAC,CACjB,SAAS,mEAAmE;CAC9E,SAAS,EACP,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,CAAC,CAC/B,SAAS,CAAC,CACV,SAAS,wEAAwE;CACnF,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,sCAAsC;CAC9F,aAAa,EAAE,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,mBAAmB;CACxE,OAAO,oBAAoB,SAAS,CAAC,CAAC,SAAS,uCAAuC;CACtF,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,uDAAuD;CACvG,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,oDAAoD;CAClG,yBAAyB,EACvB,KAAK,CAAC,QAAQ,QAAQ,CAAC,CAAC,CACxB,SAAS,CAAC,CACV,SAAS,gDAAgD;AAC5D,CAAC;AAED,MAAa,4BAA4B;AAEzC,MAAa,0BAA0B,EAAE,OAAO,EAC/C,MAAM,aAAa,SAAS,eAAe,EAC5C,CAAC;AAED,MAAa,0BAA0B,EAAE,OAAO;CAC/C,aAAa,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,uBAAuB;CAClF,OAAO,oBAAoB,SAAS,CAAC,CAAC,SAAS,iBAAiB;CAChE,aAAa,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,GAAY,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,yBAAyB;CACvF,YAAY,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,yCAAyC;AAC5F,CAAC;AAED,MAAa,wBAAwB,EAAE,OAAO;CAC7C,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,eAAe;CACzC,YAAY,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,gBAAgB;CAC3D,OAAO,oBAAoB,SAAS,CAAC,CAAC,SAAS,qBAAqB;CACpE,qBAAqB,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,gCAAgC;CACpF,KAAK,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,4CAA4C;AACjF,CAAC;AAED,MAAa,uBAAuB,sBAAsB,OAAO;CAChE,aAAa,EAAE,OAAO,CAAC,CAAC,SAAS;CACjC,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS;CAC9B,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,gDAAgD;CACzF,eAAe,EAAE,OAAO,CAAC,CAAC,SAAS;CACnC,wBAAwB,EAAE,OAAO,CAAC,CAAC,SAAS;AAC7C,CAAC;AAED,MAAa,4BAA4B,EAAE,OAAO;CACjD,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,eAAe;CACzC,KAAK,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,4BAA4B;AACjE,CAAC;AAED,MAAa,0BAA0B,EAAE,OAAO,EAC/C,UAAU,qBACX,CAAC;AAED,MAAa,2BAA2B,EAAE,OAAO;CAChD,WAAW,EAAE,MAAM,qBAAqB;CACxC,YAAY,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,0CAA0C;AACtF,CAAC;AAED,MAAa,6BAA6B,EAAE,OAAO;CAClD,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,uBAAuB;CACjD,SAAS,EAAE,QAAQ,IAAI;AACxB,CAAC;;;;;;ACtGD,SAAgB,iBAAiB,SAAiB,SAA2C;CAC5F,MAAM,OAAgC,EAAE,UAAU,QAAQ;CAC1D,IAAI,YAAY,KAAA,GACf,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,OAAO,GAAG;EACnD,IAAI,QAAQ,YAAY;EACxB,KAAK,OAAO;CACb;CAED,MAAM,OAAO,KAAK,UAAU,IAAI;CAChC,IAAI,KAAK,SAAA,KACR,MAAM,IAAI,UAAU,wCAAwC;EAC3D,MAAM;EACN,SAAS;GAAE,WAAW;GAAkB,QAAQ,KAAK;EAAO;CAC7D,CAAC;CAEF,OAAO;AACR;AAEA,SAAgB,sBAAsB,OAAoC;CACzE,IAAI,CAAC,SAAS,KAAK,KAAK,MAAM,WAAW,GAAG,OAAO,KAAA;CACnD,IAAI;EACH,MAAM,SAAkB,KAAK,MAAM,KAAK;EACxC,IAAI,CAAC,cAAc,MAAM,GAAG,OAAO,KAAA;EACnC,MAAM,MAAM,OAAO;EACnB,OAAO,SAAS,GAAG,IAAI,MAAM,KAAA;CAC9B,QAAQ;EACP;CACD;AACD;AAEA,SAAgB,mBAAmB,MAGjC;CACD,IAAI,KAAK,4BAA4B,KAAA,GACpC,OAAO;EAAE,MAAM;EAAY,wBAAwB,KAAK;CAAwB;CAEjF,OAAO,EAAE,MAAM,MAAM;AACtB;AAEA,SAAgB,iBAAiB,KAAa,OAAuB;CACpE,MAAM,KAAK,KAAK,MAAM,GAAG;CACzB,IAAI,CAAC,OAAO,SAAS,EAAE,GACtB,MAAM,IAAI,UAAU,WAAW,MAAM,aAAa;EAAE,MAAM;EAAa,SAAS;GAAE;GAAO,OAAO;EAAI;CAAE,CAAC;CAExG,OAAO,KAAK,MAAM,KAAK,GAAI;AAC5B;;;;;;AAOA,SAAgB,iBAAyB;CACxC,OAAO,OAAO,WAAW,CAAC,CAAC,WAAW,KAAK,EAAE;AAC9C;AAEA,SAAgB,gBAAgB,MAAgC,OAAqD;CACpH,MAAM,SAAkC;EACvC,KAAK,KAAK;EACV,SAAS,KAAK;EACd,OAAO,iBAAiB,MAAM,UAAU,MAAM,OAAO;CACtD;CACA,IAAI,KAAK,iBACR,OAAO,sBAAsB,EAAE,KAAK,KAAK,gBAAgB;CAE1D,IAAI,KAAK,uBAAuB,KAAA,KAAa,KAAK,0BAA0B,KAAA,GAAW;EACtF,MAAM,QAAgC,CAAC;EACvC,IAAI,KAAK,uBAAuB,KAAA,GAAW,MAAM,0BAA0B,KAAK;EAChF,IAAI,KAAK,0BAA0B,KAAA,GAAW,MAAM,8BAA8B,KAAK;EACvF,OAAO,iBAAiB;CACzB;CAEA,MAAM,OAAgC;EACrC,aAAa,eAAe;EAC5B,oBAAoB,MAAM;EAC1B,oBAAoB,mBAAmB,IAAI;EAC3C,QAAQ;EACR,OAAO,MAAM,SAAS;CACvB;CACA,IAAI,KAAK,YAAY,KAAK,eAAe,KAAK;CAC9C,IAAI,MAAM,UAAU,KAAK,gCAAgC,MAAM;CAC/D,IAAI,MAAM,aAAa,KAAK,iBAAiB,MAAM;CACnD,IAAI,MAAM,yBAAyB,KAAK,2BAA2B,MAAM;CACzE,IAAI,MAAM,UAAU,KAAK,eAAe,iBAAiB,MAAM,UAAU,UAAU;CACnF,IAAI,MAAM,QAAQ,KAAK,aAAa,iBAAiB,MAAM,QAAQ,QAAQ;CAC3E,OAAO;AACR;AAEA,SAAgB,mBAAmB,KAA+C;CACjF,MAAM,MAAuB,EAC5B,MAAM,SAAS,IAAI,OAAO,IAAI,IAAI,UAAU,GAC7C;CACA,IAAI,SAAS,IAAI,YAAY,GAAG,IAAI,aAAa,IAAI;CACrD,IAAI,IAAI,aAAa,aAAa,IAAI,aAAa,YAAY,IAAI,QAAQ,IAAI;CAC/E,IAAI,SAAS,IAAI,qBAAqB,GAAG,IAAI,sBAAsB,IAAI;CACvE,IAAI,SAAS,IAAI,MAAM,GAAG,IAAI,MAAM,IAAI;CACxC,OAAO;AACR;AAEA,SAAgB,kBAAkB,KAA8C;CAC/E,MAAM,OAAO,mBAAmB,GAAG;CACnC,MAAM,SAAS,cAAc,IAAI,SAAS,IAAI,IAAI,YAAY,KAAA;CAC9D,MAAM,UAAU,SAAS,sBAAsB,OAAO,QAAQ,IAAI,KAAA;CAClE,MAAM,MAAsB,EAAE,GAAG,KAAK;CACtC,IAAI,SAAS,IAAI,cAAc,GAAG,IAAI,cAAc,IAAI;CACxD,IAAI,SAAS,IAAI,6BAA6B,GAAG,IAAI,WAAW,IAAI;CACpE,IAAI,YAAY,KAAA,GAAW,IAAI,WAAW;CAC1C,IAAI,SAAS,IAAI,eAAe,GAAG,IAAI,gBAAgB,IAAI;CAC3D,IAAI,SAAS,IAAI,uBAAuB,GAAG,IAAI,yBAAyB,IAAI;CAE5E,IAAI,OAAO,IAAI,oBAAoB,UAAU,IAAI,iCAAgB,IAAI,KAAK,IAAI,kBAAkB,GAAI,EAAA,CAAE,YAAY;CAClH,IAAI,OAAO,IAAI,4BAA4B,UAC1C,IAAI,0CAAyB,IAAI,KAAK,IAAI,0BAA0B,GAAI,EAAA,CAAE,YAAY;CAEvF,OAAO;AACR;;;;;;;AChGA,IAAa,6BAAb,MAAa,2BAA2B;CACvC;CACA;CAEA,YAAY,MAAgC,UAA6C,CAAC,GAAG;EAC5F,MAAM,SAAS,+BAA+B,UAAU,IAAI;EAC5D,IAAI,CAAC,OAAO,SACX,MAAM,IAAI,UAAU,kDAAkD;GACrE,MAAM;GACN,SAAS,EAAE,QAAQ,OAAO,MAAM,OAAO,KAAK,UAAU,MAAM,OAAO,EAAE;EACtE,CAAC;EAEF,KAAKA,QAAQ,OAAO;EACpB,MAAM,aAAgC;GACrC,aAAa,KAAKA,MAAM;GACxB,iBAAiB,KAAKA,MAAM;GAC5B,QAAQ,KAAKA,MAAM;GACnB,SAAS;GACT,SAAS,qBAAqB,KAAKA,MAAM,OAAO;GAChD,OAAO;EACR;EACA,IAAI,QAAQ,OAAO,WAAW,QAAQ,QAAQ;EAC9C,IAAI,QAAQ,QAAQ,WAAW,SAAS,QAAQ;EAChD,IAAI,KAAKA,MAAM,eAAe,WAAW,eAAe,KAAKA,MAAM;EACnE,KAAKC,OAAO,IAAI,WAAW,UAAU;CACtC;CAEA,OAAO,YAAY,KAA8C;EAChE,MAAM,OAAO,YAAY,KAAK,8BAA8B;EAC5D,MAAM,UAA6C,CAAC;EACpD,IAAI,IAAI,OAAO,QAAQ,QAAQ,IAAI;EACnC,IAAI,IAAI,QAAQ,QAAQ,SAAS,IAAI;EACrC,OAAO,IAAI,2BAA2B,MAAM,OAAO;CACpD;CAEA,MAAM,OAAO,OAA0D;EACtE,MAAM,OAAO,gBAAgB,KAAKD,OAAO,KAAK;EAC9C,MAAM,EAAE,SAAS,MAAM,KAAKC,KAAK,KAAK,cAAc,mBAAmB,MAAM,IAAI,KAAK,IAAI;EAC1F,OAAO,KAAKC,aAAa,MAAM,MAAM,IAAI;CAC1C;CAEA,MAAM,OAAO,OAA0D;EACtE,MAAM,OAAO,gBAAgB,KAAKF,OAAO,KAAK;EAC9C,MAAM,EAAE,SAAS,MAAM,KAAKC,KAAK,IAAI,cAAc,mBAAmB,MAAM,IAAI,KAAK,IAAI;EACzF,OAAO,KAAKC,aAAa,MAAM,MAAM,IAAI;CAC1C;CAEA,MAAM,IAAI,OAAsD;EAC/D,MAAM,OAAO,cAAc,mBAAmB,MAAM,IAAI,IAAI,KAAKC,eAAe;EAChF,MAAM,EAAE,SAAS,MAAM,KAAKF,KAAK,IAAI,IAAI;EACzC,IAAI,CAAC,cAAc,IAAI,GACtB,MAAM,IAAI,UAAU,mCAAmC,EAAE,MAAM,WAAW,CAAC;EAE5E,OAAO,EAAE,UAAU,kBAAkB,IAAI,EAAE;CAC5C;CAEA,MAAM,KAAK,QAA2B,CAAC,GAAgC;EACtE,MAAM,SAAS,IAAI,gBAAgB;EACnC,IAAI,MAAM,aAAa,OAAO,IAAI,cAAc,MAAM,WAAW;EACjE,IAAI,MAAM,OAAO,OAAO,IAAI,SAAS,MAAM,KAAK;EAChD,IAAI,MAAM,gBAAgB,KAAA,GAAW,OAAO,IAAI,cAAc,OAAO,MAAM,WAAW,CAAC;EACvF,IAAI,MAAM,YAAY,OAAO,IAAI,aAAa,MAAM,UAAU;EAC9D,IAAI,KAAKD,MAAM,YAAY,OAAO,IAAI,iBAAiB,KAAKA,MAAM,UAAU;EAC5E,MAAM,KAAK,OAAO,SAAS;EAC3B,MAAM,EAAE,SAAS,MAAM,KAAKC,KAAK,IAAI,aAAa,KAAK,IAAI,OAAO,IAAI;EACtE,IAAI,CAAC,cAAc,IAAI,GACtB,MAAM,IAAI,UAAU,qCAAqC,EAAE,MAAM,WAAW,CAAC;EAE9E,MAAM,QAAQ,KAAK;EAEnB,MAAM,MAA0B,EAAE,WADhB,QAAQ,KAAK,IAAI,MAAM,OAAO,aAAa,CAAC,CAAC,KAAK,QAAQ,mBAAmB,GAAG,CAAC,IAAI,CAAC,EAC5D;EAC5C,IAAI,SAAS,KAAK,YAAY,GAAG,IAAI,aAAa,KAAK;EACvD,OAAO;CACR;CAEA,MAAM,OAAO,OAAyD;EAErE,MAAM,OAAO,cAAc,mBAAmB,MAAM,IAAI,IAAI,KAAKE,eAAe,EAAE,aAAa,eAAe,EAAE,CAAC;EACjH,MAAM,KAAKF,KAAK,OAAO,IAAI;EAC3B,OAAO;GAAE,MAAM,MAAM;GAAM,SAAS;EAAK;CAC1C;CAEA,eAAe,QAAgC,CAAC,GAAW;EAC1D,MAAM,SAAS,IAAI,gBAAgB,KAAK;EACxC,IAAI,KAAKD,MAAM,YAAY,OAAO,IAAI,aAAa,KAAKA,MAAM,UAAU;EACxE,MAAM,KAAK,OAAO,SAAS;EAC3B,OAAO,KAAK,IAAI,OAAO;CACxB;CAEA,aAAa,MAAc,KAAmC;EAC7D,MAAM,MAA2B,EAAE,KAAK;EACxC,IAAI,cAAc,GAAG,KAAK,SAAS,IAAI,cAAc,GAAG,IAAI,MAAM,IAAI;EACtE,OAAO;CACR;AACD;;;AC9GA,MAAa,iCAAiC,WAAW;CACxD,IAAI;CACJ,MAAM;CACN,aACC;CACD,aAAa;CACb,cAAc;CACd,YAAY;CACZ,SAAS;CACT,SAAS,OAAO,OAAO,QAAQ,2BAA2B,YAAY,GAAG,CAAC,CAAC,OAAO,KAAK;AACxF,CAAC;AAED,MAAa,iCAAiC,WAAW;CACxD,IAAI;CACJ,MAAM;CACN,aACC;CACD,aAAa;CACb,cAAc;CACd,YAAY;CACZ,SAAS;CACT,SAAS,OAAO,OAAO,QAAQ,2BAA2B,YAAY,GAAG,CAAC,CAAC,OAAO,KAAK;AACxF,CAAC;AAED,MAAa,8BAA8B,WAAW;CACrD,IAAI;CACJ,MAAM;CACN,aAAa;CACb,aAAa;CACb,cAAc;CACd,YAAY;CACZ,SAAS;CACT,SAAS,OAAO,OAAO,QAAQ,2BAA2B,YAAY,GAAG,CAAC,CAAC,IAAI,KAAK;AACrF,CAAC;AAED,MAAa,+BAA+B,WAAW;CACtD,IAAI;CACJ,MAAM;CACN,aAAa;CACb,aAAa;CACb,cAAc;CACd,YAAY;CACZ,SAAS;CACT,SAAS,OAAO,OAAO,QAAQ,2BAA2B,YAAY,GAAG,CAAC,CAAC,KAAK,KAAK;AACtF,CAAC;AAED,MAAa,iCAAiC,WAAW;CACxD,IAAI;CACJ,MAAM;CACN,aAAa;CACb,aAAa;CACb,cAAc;CACd,YAAY;CACZ,SAAS;CACT,SAAS,OAAO,OAAO,QAAQ,2BAA2B,YAAY,GAAG,CAAC,CAAC,OAAO,KAAK;AACxF,CAAC;AAED,MAAa,6BAA6B,aAAa;CACtD,IAAI;CACJ,OAAO;CACP,aACC;CACD,SAAS;CACT,MAAM;EAAE,MAAM;EAAU,QAAQ;CAA+B;CAC/D,YAAY,CAAC,aAAa,KAAK;CAC/B,gBAAgB;CAChB,MAAM,CAAC,aAAa;CACpB,OAAO;EACN;EACA;EACA;EACA;EACA;CACD;AACD,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { m as mergeToolContext } from "./with-auth-CpKqTrGK.js";
|
|
2
|
+
//#region src/adapters/framework-context.ts
|
|
3
|
+
function readAbortSignal(context, key) {
|
|
4
|
+
if (context === null || typeof context !== "object") return void 0;
|
|
5
|
+
const value = Reflect.get(context, key);
|
|
6
|
+
return value instanceof AbortSignal ? value : void 0;
|
|
7
|
+
}
|
|
8
|
+
function frameworkSignalContext(context, key = "abortSignal") {
|
|
9
|
+
const signal = readAbortSignal(context, key);
|
|
10
|
+
return signal ? { signal } : {};
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* framework signal ← static context ← createContext(bag).
|
|
14
|
+
* `undefined` overlay fields do not erase base values.
|
|
15
|
+
*/
|
|
16
|
+
async function mergeAdapterToolContext(frameworkContext, options = {}, signalKey = "abortSignal") {
|
|
17
|
+
let ctx = mergeToolContext(frameworkSignalContext(frameworkContext, signalKey), options.context ?? {});
|
|
18
|
+
if (options.createContext) ctx = mergeToolContext(ctx, await options.createContext(frameworkContext));
|
|
19
|
+
return ctx;
|
|
20
|
+
}
|
|
21
|
+
//#endregion
|
|
22
|
+
export { mergeAdapterToolContext as t };
|
|
23
|
+
|
|
24
|
+
//# sourceMappingURL=framework-context-DVIIY8ZO.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"framework-context-DVIIY8ZO.js","names":[],"sources":["../src/adapters/framework-context.ts"],"sourcesContent":["import { mergeToolContext } from '../core/context'\nimport type { ToolContext } from '../core/types'\n\nexport function readAbortSignal(context: unknown, key: 'abortSignal' | 'signal'): AbortSignal | undefined {\n\tif (context === null || typeof context !== 'object') return undefined\n\tconst value = Reflect.get(context, key)\n\treturn value instanceof AbortSignal ? value : undefined\n}\n\nexport function frameworkSignalContext(context: unknown, key: 'abortSignal' | 'signal' = 'abortSignal'): ToolContext {\n\tconst signal = readAbortSignal(context, key)\n\treturn signal ? { signal } : {}\n}\n\n/**\n * framework signal ← static context ← createContext(bag).\n * `undefined` overlay fields do not erase base values.\n */\nexport async function mergeAdapterToolContext<TFrameworkContext>(\n\tframeworkContext: TFrameworkContext,\n\toptions: {\n\t\tcontext?: ToolContext | undefined\n\t\tcreateContext?: ((context: TFrameworkContext) => ToolContext | Promise<ToolContext>) | undefined\n\t} = {},\n\tsignalKey: 'abortSignal' | 'signal' = 'abortSignal'\n): Promise<ToolContext> {\n\tlet ctx = mergeToolContext(frameworkSignalContext(frameworkContext, signalKey), options.context ?? {})\n\tif (options.createContext) {\n\t\tctx = mergeToolContext(ctx, await options.createContext(frameworkContext))\n\t}\n\treturn ctx\n}\n"],"mappings":";;AAGA,SAAgB,gBAAgB,SAAkB,KAAwD;CACzG,IAAI,YAAY,QAAQ,OAAO,YAAY,UAAU,OAAO,KAAA;CAC5D,MAAM,QAAQ,QAAQ,IAAI,SAAS,GAAG;CACtC,OAAO,iBAAiB,cAAc,QAAQ,KAAA;AAC/C;AAEA,SAAgB,uBAAuB,SAAkB,MAAgC,eAA4B;CACpH,MAAM,SAAS,gBAAgB,SAAS,GAAG;CAC3C,OAAO,SAAS,EAAE,OAAO,IAAI,CAAC;AAC/B;;;;;AAMA,eAAsB,wBACrB,kBACA,UAGI,CAAC,GACL,YAAsC,eACf;CACvB,IAAI,MAAM,iBAAiB,uBAAuB,kBAAkB,SAAS,GAAG,QAAQ,WAAW,CAAC,CAAC;CACrG,IAAI,QAAQ,eACX,MAAM,iBAAiB,KAAK,MAAM,QAAQ,cAAc,gBAAgB,CAAC;CAE1E,OAAO;AACR"}
|