@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,475 @@
|
|
|
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 artifactRefSchema } from "../../artifact-D064mHfK.js";
|
|
5
|
+
import { a as BedrockAgentCoreBrowserClient, c as browserSessionIdInputSchema, d as browserStreamSchema, l as browserSessionOutputSchema, s as bedrockAgentCoreBrowserAuthSchema, u as browserStartSessionInputSchema } from "../../bedrock-agentcore-browser-a_qOs-NR.js";
|
|
6
|
+
import { c as CloudflareBrowserClient, l as plainTextFromHtml, p as cloudflareBrowserClientAuthSchema } from "../../cloudflare-browser-B6Yolpin.js";
|
|
7
|
+
import { z } from "zod";
|
|
8
|
+
//#region src/modules/browser/contracts.ts
|
|
9
|
+
const agentCoreBrowserSeamAuthSchema = bedrockAgentCoreBrowserAuthSchema.extend({ provider: z.literal("bedrock-agentcore") });
|
|
10
|
+
/** Optional storage for screenshot ArtifactRef on Cloudflare. */
|
|
11
|
+
const cloudflareBrowserSeamAuthSchema = cloudflareBrowserClientAuthSchema.extend({ provider: z.literal("cloudflare") });
|
|
12
|
+
const browserAuthSchema = z.discriminatedUnion("provider", [agentCoreBrowserSeamAuthSchema, cloudflareBrowserSeamAuthSchema]);
|
|
13
|
+
const sessionId = z.string().min(1).describe("Browser session id from start-session");
|
|
14
|
+
const browserNavigateInputSchema = z.object({
|
|
15
|
+
session_id: sessionId,
|
|
16
|
+
url: z.url().describe("Absolute http(s) URL to open")
|
|
17
|
+
});
|
|
18
|
+
const browserNavigateOutputSchema = z.object({
|
|
19
|
+
session_id: z.string(),
|
|
20
|
+
url: z.string(),
|
|
21
|
+
title: z.string().optional().describe("Document title when available"),
|
|
22
|
+
html: z.string().optional().describe("Rendered HTML when the bound provider returns it")
|
|
23
|
+
});
|
|
24
|
+
const browserSnapshotInputSchema = z.object({
|
|
25
|
+
session_id: sessionId,
|
|
26
|
+
url: z.url().optional().describe("URL to open before snapshot when the provider is one-shot REST"),
|
|
27
|
+
format: z.enum(["html", "text"]).optional().describe("Snapshot format (default html)")
|
|
28
|
+
});
|
|
29
|
+
const browserSnapshotOutputSchema = z.object({
|
|
30
|
+
session_id: z.string(),
|
|
31
|
+
format: z.enum(["html", "text"]),
|
|
32
|
+
content: z.string().describe("Page HTML or extracted text"),
|
|
33
|
+
url: z.string().optional()
|
|
34
|
+
});
|
|
35
|
+
const browserClickInputSchema = z.object({
|
|
36
|
+
session_id: sessionId,
|
|
37
|
+
selector: z.string().min(1).describe("CSS selector of the element to click")
|
|
38
|
+
});
|
|
39
|
+
const browserTypeInputSchema = z.object({
|
|
40
|
+
session_id: sessionId,
|
|
41
|
+
selector: z.string().min(1).describe("CSS selector of the input to type into"),
|
|
42
|
+
text: z.string().describe("Text to type"),
|
|
43
|
+
clear: z.boolean().optional().describe("Clear existing value before typing when supported")
|
|
44
|
+
});
|
|
45
|
+
const browserWaitInputSchema = z.object({
|
|
46
|
+
session_id: sessionId,
|
|
47
|
+
selector: z.string().min(1).optional().describe("Wait for this selector when supported"),
|
|
48
|
+
timeout_ms: z.int().min(1).max(12e4).optional().describe("Max wait ms (default provider-specific)"),
|
|
49
|
+
url: z.url().optional().describe("Wait until navigation to this URL when supported")
|
|
50
|
+
});
|
|
51
|
+
const browserScreenshotInputSchema = z.object({
|
|
52
|
+
session_id: sessionId,
|
|
53
|
+
url: z.url().optional().describe("URL to capture when the provider is one-shot REST"),
|
|
54
|
+
output_key: z.string().min(1).optional().describe("Object key for the PNG ArtifactRef"),
|
|
55
|
+
full_page: z.boolean().optional().describe("Capture full page when supported")
|
|
56
|
+
});
|
|
57
|
+
const browserScreenshotOutputSchema = z.object({
|
|
58
|
+
session_id: z.string(),
|
|
59
|
+
result: artifactRefSchema.describe("PNG screenshot in object storage")
|
|
60
|
+
});
|
|
61
|
+
const browserGetStateInputSchema = z.object({ session_id: sessionId });
|
|
62
|
+
const browserGetStateOutputSchema = z.object({
|
|
63
|
+
session_id: z.string(),
|
|
64
|
+
status: z.string().optional(),
|
|
65
|
+
url: z.string().optional().describe("Current page URL when known"),
|
|
66
|
+
title: z.string().optional(),
|
|
67
|
+
streams: browserStreamSchema.optional()
|
|
68
|
+
});
|
|
69
|
+
const browserActionOkSchema = z.object({
|
|
70
|
+
session_id: z.string(),
|
|
71
|
+
ok: z.literal(true)
|
|
72
|
+
});
|
|
73
|
+
//#endregion
|
|
74
|
+
//#region src/modules/browser/providers/bedrock-agentcore.ts
|
|
75
|
+
function unsupportedInteractive$1(action) {
|
|
76
|
+
throw new ToolError(`Bound browser provider exposes automation via CDP stream only; ${action} is not available as a REST tool`, {
|
|
77
|
+
code: "unsupported",
|
|
78
|
+
details: { action }
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
var AgentCoreBrowserProvider = class {
|
|
82
|
+
#client;
|
|
83
|
+
constructor(auth, options = {}) {
|
|
84
|
+
const { provider: _provider, ...vendorAuth } = auth;
|
|
85
|
+
this.#client = new BedrockAgentCoreBrowserClient(vendorAuth, options);
|
|
86
|
+
}
|
|
87
|
+
startSession(input = {}) {
|
|
88
|
+
return this.#client.startSession(input);
|
|
89
|
+
}
|
|
90
|
+
getSession(input) {
|
|
91
|
+
return this.#client.getSession(input);
|
|
92
|
+
}
|
|
93
|
+
stopSession(input) {
|
|
94
|
+
return this.#client.stopSession(input);
|
|
95
|
+
}
|
|
96
|
+
navigate(_input) {
|
|
97
|
+
unsupportedInteractive$1("navigate");
|
|
98
|
+
}
|
|
99
|
+
snapshot(_input) {
|
|
100
|
+
unsupportedInteractive$1("snapshot");
|
|
101
|
+
}
|
|
102
|
+
click(_input) {
|
|
103
|
+
unsupportedInteractive$1("click");
|
|
104
|
+
}
|
|
105
|
+
type(_input) {
|
|
106
|
+
unsupportedInteractive$1("type");
|
|
107
|
+
}
|
|
108
|
+
wait(_input) {
|
|
109
|
+
unsupportedInteractive$1("wait");
|
|
110
|
+
}
|
|
111
|
+
screenshot(_input) {
|
|
112
|
+
unsupportedInteractive$1("screenshot");
|
|
113
|
+
}
|
|
114
|
+
async getState(input) {
|
|
115
|
+
const session = await this.getSession({ session_id: input.session_id });
|
|
116
|
+
return {
|
|
117
|
+
session_id: session.session_id,
|
|
118
|
+
...session.status && { status: session.status },
|
|
119
|
+
...session.streams && { streams: session.streams }
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
//#endregion
|
|
124
|
+
//#region src/modules/browser/providers/cloudflare.ts
|
|
125
|
+
function mapSession(input) {
|
|
126
|
+
const streams = {};
|
|
127
|
+
if (input.websocket_debugger_url) streams.automation_stream_endpoint = input.websocket_debugger_url;
|
|
128
|
+
if (input.devtools_frontend_url) streams.live_view_stream_endpoint = input.devtools_frontend_url;
|
|
129
|
+
return browserSessionOutputSchema.parse({
|
|
130
|
+
session_id: input.session_id,
|
|
131
|
+
status: input.status,
|
|
132
|
+
...Object.keys(streams).length > 0 && { streams }
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
function unsupportedInteractive(action) {
|
|
136
|
+
throw new ToolError(`Bound browser provider does not support ${action} over REST; use the automation stream (CDP) from start-session`, {
|
|
137
|
+
code: "unsupported",
|
|
138
|
+
details: { action }
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
var CloudflareBrowserProvider = class {
|
|
142
|
+
#client;
|
|
143
|
+
constructor(auth, options = {}) {
|
|
144
|
+
const { provider: _provider, ...vendorAuth } = auth;
|
|
145
|
+
this.#client = new CloudflareBrowserClient(vendorAuth, options);
|
|
146
|
+
}
|
|
147
|
+
async startSession(input = {}) {
|
|
148
|
+
const unsupported = [
|
|
149
|
+
...input.name ? ["name"] : [],
|
|
150
|
+
...input.viewport_width !== void 0 ? ["viewport_width"] : [],
|
|
151
|
+
...input.viewport_height !== void 0 ? ["viewport_height"] : []
|
|
152
|
+
];
|
|
153
|
+
if (unsupported.length > 0) throw new ToolError("Bound browser provider does not support these start-session fields", {
|
|
154
|
+
code: "bad_input",
|
|
155
|
+
details: { fields: unsupported }
|
|
156
|
+
});
|
|
157
|
+
if (input.session_timeout_seconds !== void 0 && (input.session_timeout_seconds < 60 || input.session_timeout_seconds > 600)) throw new ToolError("Bound browser provider requires a session timeout from 60 to 600 seconds", { code: "bad_input" });
|
|
158
|
+
return mapSession(await this.#client.startSession({ ...input.session_timeout_seconds !== void 0 && { keep_alive_seconds: input.session_timeout_seconds } }));
|
|
159
|
+
}
|
|
160
|
+
async getSession(input) {
|
|
161
|
+
return mapSession(await this.#client.getSession(input));
|
|
162
|
+
}
|
|
163
|
+
async stopSession(input) {
|
|
164
|
+
return mapSession(await this.#client.stopSession(input));
|
|
165
|
+
}
|
|
166
|
+
async navigate(input) {
|
|
167
|
+
const page = await this.#client.fetchContent({ url: input.url });
|
|
168
|
+
return {
|
|
169
|
+
session_id: input.session_id,
|
|
170
|
+
url: input.url,
|
|
171
|
+
html: page.html,
|
|
172
|
+
...page.title && { title: page.title }
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
async snapshot(input) {
|
|
176
|
+
const format = input.format ?? "html";
|
|
177
|
+
const url = input.url;
|
|
178
|
+
if (!url) throw new ToolError("Bound browser provider requires url for snapshot (one-shot REST content API)", { code: "bad_input" });
|
|
179
|
+
const page = await this.#client.fetchContent({ url });
|
|
180
|
+
if (format === "text") return {
|
|
181
|
+
session_id: input.session_id,
|
|
182
|
+
format: "text",
|
|
183
|
+
content: plainTextFromHtml(page.html),
|
|
184
|
+
url
|
|
185
|
+
};
|
|
186
|
+
return {
|
|
187
|
+
session_id: input.session_id,
|
|
188
|
+
format: "html",
|
|
189
|
+
content: page.html,
|
|
190
|
+
url
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
async click(_input) {
|
|
194
|
+
unsupportedInteractive("click");
|
|
195
|
+
}
|
|
196
|
+
async type(_input) {
|
|
197
|
+
unsupportedInteractive("type");
|
|
198
|
+
}
|
|
199
|
+
async wait(_input) {
|
|
200
|
+
unsupportedInteractive("wait");
|
|
201
|
+
}
|
|
202
|
+
async screenshot(input) {
|
|
203
|
+
const url = input.url;
|
|
204
|
+
if (!url) throw new ToolError("Bound browser provider requires url for screenshot (one-shot REST API)", { code: "bad_input" });
|
|
205
|
+
const out = await this.#client.renderScreenshot({
|
|
206
|
+
source: { url },
|
|
207
|
+
...input.output_key && { output_key: input.output_key }
|
|
208
|
+
});
|
|
209
|
+
return {
|
|
210
|
+
session_id: input.session_id,
|
|
211
|
+
result: out.result
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
async getState(input) {
|
|
215
|
+
const session = await this.getSession({ session_id: input.session_id });
|
|
216
|
+
return {
|
|
217
|
+
session_id: session.session_id,
|
|
218
|
+
...session.status && { status: session.status },
|
|
219
|
+
...session.streams && { streams: session.streams }
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
};
|
|
223
|
+
//#endregion
|
|
224
|
+
//#region src/modules/browser/client.ts
|
|
225
|
+
function providerFor(auth, ctx) {
|
|
226
|
+
switch (auth.provider) {
|
|
227
|
+
case "bedrock-agentcore": return new AgentCoreBrowserProvider(auth, {
|
|
228
|
+
...ctx.fetch && { fetch: ctx.fetch },
|
|
229
|
+
...ctx.signal && { signal: ctx.signal }
|
|
230
|
+
});
|
|
231
|
+
case "cloudflare": return new CloudflareBrowserProvider(auth, {
|
|
232
|
+
...ctx.fetch && { fetch: ctx.fetch },
|
|
233
|
+
...ctx.signal && { signal: ctx.signal }
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
var BrowserClient = class BrowserClient {
|
|
238
|
+
#ops;
|
|
239
|
+
constructor(ops) {
|
|
240
|
+
this.#ops = ops;
|
|
241
|
+
}
|
|
242
|
+
static fromContext(ctx) {
|
|
243
|
+
return new BrowserClient(providerFor(requireAuth(ctx, browserAuthSchema), ctx));
|
|
244
|
+
}
|
|
245
|
+
static fromAuth(auth, ctx = {}) {
|
|
246
|
+
return new BrowserClient(providerFor(auth, ctx));
|
|
247
|
+
}
|
|
248
|
+
startSession(input = {}) {
|
|
249
|
+
return this.#ops.startSession(input);
|
|
250
|
+
}
|
|
251
|
+
getSession(input) {
|
|
252
|
+
return this.#ops.getSession(input);
|
|
253
|
+
}
|
|
254
|
+
stopSession(input) {
|
|
255
|
+
return this.#ops.stopSession(input);
|
|
256
|
+
}
|
|
257
|
+
navigate(input) {
|
|
258
|
+
return this.#ops.navigate(input);
|
|
259
|
+
}
|
|
260
|
+
snapshot(input) {
|
|
261
|
+
return this.#ops.snapshot(input);
|
|
262
|
+
}
|
|
263
|
+
click(input) {
|
|
264
|
+
return this.#ops.click(input);
|
|
265
|
+
}
|
|
266
|
+
type(input) {
|
|
267
|
+
return this.#ops.type(input);
|
|
268
|
+
}
|
|
269
|
+
wait(input) {
|
|
270
|
+
return this.#ops.wait(input);
|
|
271
|
+
}
|
|
272
|
+
screenshot(input) {
|
|
273
|
+
return this.#ops.screenshot(input);
|
|
274
|
+
}
|
|
275
|
+
getState(input) {
|
|
276
|
+
return this.#ops.getState(input);
|
|
277
|
+
}
|
|
278
|
+
};
|
|
279
|
+
//#endregion
|
|
280
|
+
//#region src/modules/browser/domain.ts
|
|
281
|
+
/**
|
|
282
|
+
* Browser session helpers (no HTTP).
|
|
283
|
+
* CDP mint for host AgentBrowser / Playwright — interactive loop stays outside this pack.
|
|
284
|
+
*/
|
|
285
|
+
/**
|
|
286
|
+
* Build a CDP connection object from a browser session (start/get/get-state).
|
|
287
|
+
* Prefer this over driving click/type tools when the host runs a hybrid agent browser.
|
|
288
|
+
*
|
|
289
|
+
* @throws ToolError `bad_input` when the session has no automation stream endpoint.
|
|
290
|
+
*/
|
|
291
|
+
function mintBrowserCdpConnection(session, options = {}) {
|
|
292
|
+
const websocket_url = session.streams?.automation_stream_endpoint?.trim() || void 0;
|
|
293
|
+
if (!websocket_url) throw new ToolError("Browser session has no automation stream (CDP) endpoint; start or get the session and ensure the provider returns streams.automation_stream_endpoint", {
|
|
294
|
+
code: "bad_input",
|
|
295
|
+
details: { session_id: session.session_id }
|
|
296
|
+
});
|
|
297
|
+
const headers = { ...options.headers };
|
|
298
|
+
const out = {
|
|
299
|
+
session_id: session.session_id,
|
|
300
|
+
websocket_url,
|
|
301
|
+
headers
|
|
302
|
+
};
|
|
303
|
+
const live = session.streams?.live_view_stream_endpoint?.trim();
|
|
304
|
+
if (live) out.live_view_url = live;
|
|
305
|
+
if (session.status) out.status = session.status;
|
|
306
|
+
return out;
|
|
307
|
+
}
|
|
308
|
+
//#endregion
|
|
309
|
+
//#region src/modules/browser/module.ts
|
|
310
|
+
const browserStartSessionTool = defineTool({
|
|
311
|
+
id: "browser-start-session",
|
|
312
|
+
name: "startBrowserSession",
|
|
313
|
+
description: "Start a browser session and return stream metadata. Prefer mintBrowserCdpConnection + host CDP client for multi-step interaction; keep REST tools for one-shot navigate/snapshot/screenshot.",
|
|
314
|
+
inputSchema: browserStartSessionInputSchema,
|
|
315
|
+
outputSchema: browserSessionOutputSchema,
|
|
316
|
+
sideEffect: "write",
|
|
317
|
+
runtime: "both",
|
|
318
|
+
network: true,
|
|
319
|
+
tags: ["session", "lifecycle"],
|
|
320
|
+
execute: async (input, ctx) => BrowserClient.fromContext(ctx).startSession(input)
|
|
321
|
+
});
|
|
322
|
+
const browserGetSessionTool = defineTool({
|
|
323
|
+
id: "browser-get-session",
|
|
324
|
+
name: "getBrowserSession",
|
|
325
|
+
description: "Get session status and stream metadata (including CDP automation endpoint when available).",
|
|
326
|
+
inputSchema: browserSessionIdInputSchema,
|
|
327
|
+
outputSchema: browserSessionOutputSchema,
|
|
328
|
+
sideEffect: "read",
|
|
329
|
+
runtime: "both",
|
|
330
|
+
network: true,
|
|
331
|
+
tags: ["session", "lifecycle"],
|
|
332
|
+
execute: async (input, ctx) => BrowserClient.fromContext(ctx).getSession(input)
|
|
333
|
+
});
|
|
334
|
+
const browserStopSessionTool = defineTool({
|
|
335
|
+
id: "browser-stop-session",
|
|
336
|
+
name: "stopBrowserSession",
|
|
337
|
+
description: "Stop a browser session on the bound provider.",
|
|
338
|
+
inputSchema: browserSessionIdInputSchema,
|
|
339
|
+
outputSchema: browserSessionOutputSchema,
|
|
340
|
+
sideEffect: "write",
|
|
341
|
+
runtime: "both",
|
|
342
|
+
network: true,
|
|
343
|
+
tags: ["session", "lifecycle"],
|
|
344
|
+
execute: async (input, ctx) => BrowserClient.fromContext(ctx).stopSession(input)
|
|
345
|
+
});
|
|
346
|
+
const browserNavigateTool = defineTool({
|
|
347
|
+
id: "browser-navigate",
|
|
348
|
+
name: "browserNavigate",
|
|
349
|
+
description: "One-shot or session navigate when the bound provider supports REST. For multi-step browsing prefer the CDP automation stream from start-session. Returns HTML/title when supported.",
|
|
350
|
+
inputSchema: browserNavigateInputSchema,
|
|
351
|
+
outputSchema: browserNavigateOutputSchema,
|
|
352
|
+
sideEffect: "write",
|
|
353
|
+
runtime: "both",
|
|
354
|
+
network: true,
|
|
355
|
+
tags: ["one-shot", "secondary"],
|
|
356
|
+
execute: async (input, ctx) => BrowserClient.fromContext(ctx).navigate(input)
|
|
357
|
+
});
|
|
358
|
+
const browserSnapshotTool = defineTool({
|
|
359
|
+
id: "browser-snapshot",
|
|
360
|
+
name: "browserSnapshot",
|
|
361
|
+
description: "One-shot page HTML or text capture. Some providers require url. Prefer this for a single read; use CDP for agent-driven multi-step flows.",
|
|
362
|
+
inputSchema: browserSnapshotInputSchema,
|
|
363
|
+
outputSchema: browserSnapshotOutputSchema,
|
|
364
|
+
sideEffect: "read",
|
|
365
|
+
runtime: "both",
|
|
366
|
+
network: true,
|
|
367
|
+
tags: ["one-shot"],
|
|
368
|
+
execute: async (input, ctx) => BrowserClient.fromContext(ctx).snapshot(input)
|
|
369
|
+
});
|
|
370
|
+
const browserClickTool = defineTool({
|
|
371
|
+
id: "browser-click",
|
|
372
|
+
name: "browserClick",
|
|
373
|
+
description: "Session-agent path: click by CSS selector when the bound provider supports interactive REST (often unsupported — use CDP from start-session instead).",
|
|
374
|
+
inputSchema: browserClickInputSchema,
|
|
375
|
+
outputSchema: browserActionOkSchema,
|
|
376
|
+
sideEffect: "write",
|
|
377
|
+
runtime: "both",
|
|
378
|
+
network: true,
|
|
379
|
+
tags: [
|
|
380
|
+
"session-agent",
|
|
381
|
+
"interactive",
|
|
382
|
+
"secondary"
|
|
383
|
+
],
|
|
384
|
+
execute: async (input, ctx) => BrowserClient.fromContext(ctx).click(input)
|
|
385
|
+
});
|
|
386
|
+
const browserTypeTool = defineTool({
|
|
387
|
+
id: "browser-type",
|
|
388
|
+
name: "browserType",
|
|
389
|
+
description: "Session-agent path: type into a selector when interactive REST is supported (often unsupported — use CDP).",
|
|
390
|
+
inputSchema: browserTypeInputSchema,
|
|
391
|
+
outputSchema: browserActionOkSchema,
|
|
392
|
+
sideEffect: "write",
|
|
393
|
+
runtime: "both",
|
|
394
|
+
network: true,
|
|
395
|
+
tags: [
|
|
396
|
+
"session-agent",
|
|
397
|
+
"interactive",
|
|
398
|
+
"secondary"
|
|
399
|
+
],
|
|
400
|
+
execute: async (input, ctx) => BrowserClient.fromContext(ctx).type(input)
|
|
401
|
+
});
|
|
402
|
+
const browserWaitTool = defineTool({
|
|
403
|
+
id: "browser-wait",
|
|
404
|
+
name: "browserWait",
|
|
405
|
+
description: "Session-agent path: wait for selector/navigation when interactive REST is supported (often unsupported — use CDP).",
|
|
406
|
+
inputSchema: browserWaitInputSchema,
|
|
407
|
+
outputSchema: browserActionOkSchema,
|
|
408
|
+
sideEffect: "read",
|
|
409
|
+
runtime: "both",
|
|
410
|
+
network: true,
|
|
411
|
+
tags: [
|
|
412
|
+
"session-agent",
|
|
413
|
+
"interactive",
|
|
414
|
+
"secondary"
|
|
415
|
+
],
|
|
416
|
+
execute: async (input, ctx) => BrowserClient.fromContext(ctx).wait(input)
|
|
417
|
+
});
|
|
418
|
+
const browserScreenshotTool = defineTool({
|
|
419
|
+
id: "browser-screenshot",
|
|
420
|
+
name: "browserScreenshot",
|
|
421
|
+
description: "One-shot or session PNG screenshot as ArtifactRef. Prefer for visual capture; multi-step interaction should use CDP.",
|
|
422
|
+
inputSchema: browserScreenshotInputSchema,
|
|
423
|
+
outputSchema: browserScreenshotOutputSchema,
|
|
424
|
+
sideEffect: "write",
|
|
425
|
+
runtime: "both",
|
|
426
|
+
network: true,
|
|
427
|
+
artifacts: true,
|
|
428
|
+
tags: ["one-shot", "artifacts"],
|
|
429
|
+
execute: async (input, ctx) => BrowserClient.fromContext(ctx).screenshot(input)
|
|
430
|
+
});
|
|
431
|
+
const browserGetStateTool = defineTool({
|
|
432
|
+
id: "browser-get-state",
|
|
433
|
+
name: "browserGetState",
|
|
434
|
+
description: "Get session status and stream metadata (CDP endpoint when available).",
|
|
435
|
+
inputSchema: browserGetStateInputSchema,
|
|
436
|
+
outputSchema: browserGetStateOutputSchema,
|
|
437
|
+
sideEffect: "read",
|
|
438
|
+
runtime: "both",
|
|
439
|
+
network: true,
|
|
440
|
+
tags: ["session", "lifecycle"],
|
|
441
|
+
execute: async (input, ctx) => BrowserClient.fromContext(ctx).getState(input)
|
|
442
|
+
});
|
|
443
|
+
const browserModule = defineModule({
|
|
444
|
+
id: "browser",
|
|
445
|
+
title: "Browser",
|
|
446
|
+
description: "Browser session lifecycle, one-shot navigate/snapshot/screenshot, and optional interactive tools. Prefer mintBrowserCdpConnection + host CDP agent for multi-step click/type; REST interactive tools stay for migration.",
|
|
447
|
+
runtime: "both",
|
|
448
|
+
auth: {
|
|
449
|
+
type: "custom",
|
|
450
|
+
schema: browserAuthSchema
|
|
451
|
+
},
|
|
452
|
+
categories: ["browser", "automation"],
|
|
453
|
+
classification: "standard",
|
|
454
|
+
tags: [
|
|
455
|
+
"session",
|
|
456
|
+
"cdp",
|
|
457
|
+
"one-shot"
|
|
458
|
+
],
|
|
459
|
+
tools: [
|
|
460
|
+
browserStartSessionTool,
|
|
461
|
+
browserGetSessionTool,
|
|
462
|
+
browserStopSessionTool,
|
|
463
|
+
browserNavigateTool,
|
|
464
|
+
browserSnapshotTool,
|
|
465
|
+
browserClickTool,
|
|
466
|
+
browserTypeTool,
|
|
467
|
+
browserWaitTool,
|
|
468
|
+
browserScreenshotTool,
|
|
469
|
+
browserGetStateTool
|
|
470
|
+
]
|
|
471
|
+
});
|
|
472
|
+
//#endregion
|
|
473
|
+
export { AgentCoreBrowserProvider, BrowserClient, CloudflareBrowserProvider, agentCoreBrowserSeamAuthSchema, browserActionOkSchema, browserAuthSchema, browserClickInputSchema, browserClickTool, browserGetSessionTool, browserGetStateInputSchema, browserGetStateOutputSchema, browserGetStateTool, browserModule, browserNavigateInputSchema, browserNavigateOutputSchema, browserNavigateTool, browserScreenshotInputSchema, browserScreenshotOutputSchema, browserScreenshotTool, browserSessionIdInputSchema, browserSessionOutputSchema, browserSnapshotInputSchema, browserSnapshotOutputSchema, browserSnapshotTool, browserStartSessionInputSchema, browserStartSessionTool, browserStopSessionTool, browserStreamSchema, browserTypeInputSchema, browserTypeTool, browserWaitInputSchema, browserWaitTool, cloudflareBrowserSeamAuthSchema, mintBrowserCdpConnection };
|
|
474
|
+
|
|
475
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["unsupportedInteractive","#client","#client","#ops"],"sources":["../../../src/modules/browser/contracts.ts","../../../src/modules/browser/providers/bedrock-agentcore.ts","../../../src/modules/browser/providers/cloudflare.ts","../../../src/modules/browser/client.ts","../../../src/modules/browser/domain.ts","../../../src/modules/browser/module.ts"],"sourcesContent":["import { z } from 'zod'\n\nimport { artifactRefSchema } from '../../shared/artifact'\nimport {\n\tbedrockAgentCoreBrowserAuthSchema,\n\tbrowserSessionIdInputSchema,\n\tbrowserSessionOutputSchema,\n\tbrowserStartSessionInputSchema,\n\tbrowserStreamSchema\n} from '../../vendors/bedrock-agentcore-browser'\nimport { cloudflareBrowserClientAuthSchema } from '../../vendors/cloudflare-browser'\nimport type {\n\tBrowserSessionIdInput,\n\tBrowserSessionOutput,\n\tBrowserStartSessionInput\n} from '../../vendors/bedrock-agentcore-browser'\n\nexport { browserSessionIdInputSchema, browserSessionOutputSchema, browserStartSessionInputSchema, browserStreamSchema }\nexport type {\n\tBrowserSessionIdInput,\n\tBrowserSessionOutput,\n\tBrowserStartSessionInput\n} from '../../vendors/bedrock-agentcore-browser'\n\nexport const agentCoreBrowserSeamAuthSchema = bedrockAgentCoreBrowserAuthSchema.extend({\n\tprovider: z.literal('bedrock-agentcore')\n})\n\n/** Optional storage for screenshot ArtifactRef on Cloudflare. */\nexport const cloudflareBrowserSeamAuthSchema = cloudflareBrowserClientAuthSchema.extend({\n\tprovider: z.literal('cloudflare')\n})\n\nexport const browserAuthSchema = z.discriminatedUnion('provider', [\n\tagentCoreBrowserSeamAuthSchema,\n\tcloudflareBrowserSeamAuthSchema\n])\n\nexport type AgentCoreBrowserSeamAuth = z.infer<typeof agentCoreBrowserSeamAuthSchema>\nexport type CloudflareBrowserSeamAuth = z.infer<typeof cloudflareBrowserSeamAuthSchema>\nexport type BrowserAuth = z.infer<typeof browserAuthSchema>\n\nconst sessionId = z.string().min(1).describe('Browser session id from start-session')\n\nexport const browserNavigateInputSchema = z.object({\n\tsession_id: sessionId,\n\turl: z.url().describe('Absolute http(s) URL to open')\n})\n\nexport const browserNavigateOutputSchema = z.object({\n\tsession_id: z.string(),\n\turl: z.string(),\n\ttitle: z.string().optional().describe('Document title when available'),\n\thtml: z.string().optional().describe('Rendered HTML when the bound provider returns it')\n})\n\nexport const browserSnapshotInputSchema = z.object({\n\tsession_id: sessionId,\n\turl: z.url().optional().describe('URL to open before snapshot when the provider is one-shot REST'),\n\tformat: z.enum(['html', 'text']).optional().describe('Snapshot format (default html)')\n})\n\nexport const browserSnapshotOutputSchema = z.object({\n\tsession_id: z.string(),\n\tformat: z.enum(['html', 'text']),\n\tcontent: z.string().describe('Page HTML or extracted text'),\n\turl: z.string().optional()\n})\n\nexport const browserClickInputSchema = z.object({\n\tsession_id: sessionId,\n\tselector: z.string().min(1).describe('CSS selector of the element to click')\n})\n\nexport const browserTypeInputSchema = z.object({\n\tsession_id: sessionId,\n\tselector: z.string().min(1).describe('CSS selector of the input to type into'),\n\ttext: z.string().describe('Text to type'),\n\tclear: z.boolean().optional().describe('Clear existing value before typing when supported')\n})\n\nexport const browserWaitInputSchema = z.object({\n\tsession_id: sessionId,\n\tselector: z.string().min(1).optional().describe('Wait for this selector when supported'),\n\ttimeout_ms: z.int().min(1).max(120_000).optional().describe('Max wait ms (default provider-specific)'),\n\turl: z.url().optional().describe('Wait until navigation to this URL when supported')\n})\n\nexport const browserScreenshotInputSchema = z.object({\n\tsession_id: sessionId,\n\turl: z.url().optional().describe('URL to capture when the provider is one-shot REST'),\n\toutput_key: z.string().min(1).optional().describe('Object key for the PNG ArtifactRef'),\n\tfull_page: z.boolean().optional().describe('Capture full page when supported')\n})\n\nexport const browserScreenshotOutputSchema = z.object({\n\tsession_id: z.string(),\n\tresult: artifactRefSchema.describe('PNG screenshot in object storage')\n})\n\nexport const browserGetStateInputSchema = z.object({\n\tsession_id: sessionId\n})\n\nexport const browserGetStateOutputSchema = z.object({\n\tsession_id: z.string(),\n\tstatus: z.string().optional(),\n\turl: z.string().optional().describe('Current page URL when known'),\n\ttitle: z.string().optional(),\n\tstreams: browserStreamSchema.optional()\n})\n\nexport const browserActionOkSchema = z.object({\n\tsession_id: z.string(),\n\tok: z.literal(true)\n})\n\nexport type BrowserNavigateInput = z.infer<typeof browserNavigateInputSchema>\nexport type BrowserNavigateOutput = z.infer<typeof browserNavigateOutputSchema>\nexport type BrowserSnapshotInput = z.infer<typeof browserSnapshotInputSchema>\nexport type BrowserSnapshotOutput = z.infer<typeof browserSnapshotOutputSchema>\nexport type BrowserClickInput = z.infer<typeof browserClickInputSchema>\nexport type BrowserTypeInput = z.infer<typeof browserTypeInputSchema>\nexport type BrowserWaitInput = z.infer<typeof browserWaitInputSchema>\nexport type BrowserScreenshotInput = z.infer<typeof browserScreenshotInputSchema>\nexport type BrowserScreenshotOutput = z.infer<typeof browserScreenshotOutputSchema>\nexport type BrowserGetStateInput = z.infer<typeof browserGetStateInputSchema>\nexport type BrowserGetStateOutput = z.infer<typeof browserGetStateOutputSchema>\nexport type BrowserActionOk = z.infer<typeof browserActionOkSchema>\n\nexport type BrowserOps = {\n\tstartSession(input?: BrowserStartSessionInput): Promise<BrowserSessionOutput>\n\tgetSession(input: BrowserSessionIdInput): Promise<BrowserSessionOutput>\n\tstopSession(input: BrowserSessionIdInput): Promise<BrowserSessionOutput>\n\tnavigate(input: BrowserNavigateInput): Promise<BrowserNavigateOutput>\n\tsnapshot(input: BrowserSnapshotInput): Promise<BrowserSnapshotOutput>\n\tclick(input: BrowserClickInput): Promise<BrowserActionOk>\n\ttype(input: BrowserTypeInput): Promise<BrowserActionOk>\n\twait(input: BrowserWaitInput): Promise<BrowserActionOk>\n\tscreenshot(input: BrowserScreenshotInput): Promise<BrowserScreenshotOutput>\n\tgetState(input: BrowserGetStateInput): Promise<BrowserGetStateOutput>\n}\n","import { ToolError } from '../../../core/errors'\nimport { BedrockAgentCoreBrowserClient } from '../../../vendors/bedrock-agentcore-browser'\nimport type { BedrockAgentCoreBrowserClientOptions } from '../../../vendors/bedrock-agentcore-browser'\nimport type {\n\tAgentCoreBrowserSeamAuth,\n\tBrowserActionOk,\n\tBrowserClickInput,\n\tBrowserGetStateInput,\n\tBrowserGetStateOutput,\n\tBrowserNavigateInput,\n\tBrowserNavigateOutput,\n\tBrowserOps,\n\tBrowserScreenshotInput,\n\tBrowserScreenshotOutput,\n\tBrowserSessionIdInput,\n\tBrowserSnapshotInput,\n\tBrowserSnapshotOutput,\n\tBrowserStartSessionInput,\n\tBrowserTypeInput,\n\tBrowserWaitInput\n} from '../contracts'\n\nexport type AgentCoreBrowserProviderOptions = BedrockAgentCoreBrowserClientOptions\n\nfunction unsupportedInteractive(action: string): never {\n\tthrow new ToolError(\n\t\t`Bound browser provider exposes automation via CDP stream only; ${action} is not available as a REST tool`,\n\t\t{ code: 'unsupported', details: { action } }\n\t)\n}\n\nexport class AgentCoreBrowserProvider implements BrowserOps {\n\treadonly #client: BedrockAgentCoreBrowserClient\n\n\tconstructor(auth: AgentCoreBrowserSeamAuth, options: AgentCoreBrowserProviderOptions = {}) {\n\t\tconst { provider: _provider, ...vendorAuth } = auth\n\t\tthis.#client = new BedrockAgentCoreBrowserClient(vendorAuth, options)\n\t}\n\n\tstartSession(input: BrowserStartSessionInput = {}) {\n\t\treturn this.#client.startSession(input)\n\t}\n\n\tgetSession(input: BrowserSessionIdInput) {\n\t\treturn this.#client.getSession(input)\n\t}\n\n\tstopSession(input: BrowserSessionIdInput) {\n\t\treturn this.#client.stopSession(input)\n\t}\n\n\tnavigate(_input: BrowserNavigateInput): Promise<BrowserNavigateOutput> {\n\t\tunsupportedInteractive('navigate')\n\t}\n\n\tsnapshot(_input: BrowserSnapshotInput): Promise<BrowserSnapshotOutput> {\n\t\tunsupportedInteractive('snapshot')\n\t}\n\n\tclick(_input: BrowserClickInput): Promise<BrowserActionOk> {\n\t\tunsupportedInteractive('click')\n\t}\n\n\ttype(_input: BrowserTypeInput): Promise<BrowserActionOk> {\n\t\tunsupportedInteractive('type')\n\t}\n\n\twait(_input: BrowserWaitInput): Promise<BrowserActionOk> {\n\t\tunsupportedInteractive('wait')\n\t}\n\n\tscreenshot(_input: BrowserScreenshotInput): Promise<BrowserScreenshotOutput> {\n\t\tunsupportedInteractive('screenshot')\n\t}\n\n\tasync getState(input: BrowserGetStateInput): Promise<BrowserGetStateOutput> {\n\t\tconst session = await this.getSession({ session_id: input.session_id })\n\t\treturn {\n\t\t\tsession_id: session.session_id,\n\t\t\t...(session.status && { status: session.status }),\n\t\t\t...(session.streams && { streams: session.streams })\n\t\t}\n\t}\n}\n","import { ToolError } from '../../../core/errors'\nimport { CloudflareBrowserClient, plainTextFromHtml } from '../../../vendors/cloudflare-browser'\nimport type {\n\tCloudflareBrowserClientOptions,\n\tCloudflareBrowserSessionOutput\n} from '../../../vendors/cloudflare-browser'\nimport type {\n\tBrowserActionOk,\n\tBrowserClickInput,\n\tBrowserGetStateInput,\n\tBrowserGetStateOutput,\n\tBrowserNavigateInput,\n\tBrowserNavigateOutput,\n\tBrowserOps,\n\tBrowserScreenshotInput,\n\tBrowserScreenshotOutput,\n\tBrowserSessionIdInput,\n\tBrowserSessionOutput,\n\tBrowserSnapshotInput,\n\tBrowserSnapshotOutput,\n\tBrowserStartSessionInput,\n\tBrowserTypeInput,\n\tBrowserWaitInput,\n\tCloudflareBrowserSeamAuth\n} from '../contracts'\nimport { browserSessionOutputSchema } from '../contracts'\n\nexport type CloudflareBrowserProviderOptions = CloudflareBrowserClientOptions\n\nfunction mapSession(input: CloudflareBrowserSessionOutput): BrowserSessionOutput {\n\tconst streams: NonNullable<BrowserSessionOutput['streams']> = {}\n\tif (input.websocket_debugger_url) streams.automation_stream_endpoint = input.websocket_debugger_url\n\tif (input.devtools_frontend_url) streams.live_view_stream_endpoint = input.devtools_frontend_url\n\treturn browserSessionOutputSchema.parse({\n\t\tsession_id: input.session_id,\n\t\tstatus: input.status,\n\t\t...(Object.keys(streams).length > 0 && { streams })\n\t})\n}\n\nfunction unsupportedInteractive(action: string): never {\n\tthrow new ToolError(\n\t\t`Bound browser provider does not support ${action} over REST; use the automation stream (CDP) from start-session`,\n\t\t{ code: 'unsupported', details: { action } }\n\t)\n}\n\nexport class CloudflareBrowserProvider implements BrowserOps {\n\treadonly #client: CloudflareBrowserClient\n\n\tconstructor(auth: CloudflareBrowserSeamAuth, options: CloudflareBrowserProviderOptions = {}) {\n\t\tconst { provider: _provider, ...vendorAuth } = auth\n\t\tthis.#client = new CloudflareBrowserClient(vendorAuth, options)\n\t}\n\n\tasync startSession(input: BrowserStartSessionInput = {}) {\n\t\tconst unsupported = [\n\t\t\t...(input.name ? ['name'] : []),\n\t\t\t...(input.viewport_width !== undefined ? ['viewport_width'] : []),\n\t\t\t...(input.viewport_height !== undefined ? ['viewport_height'] : [])\n\t\t]\n\t\tif (unsupported.length > 0) {\n\t\t\tthrow new ToolError('Bound browser provider does not support these start-session fields', {\n\t\t\t\tcode: 'bad_input',\n\t\t\t\tdetails: { fields: unsupported }\n\t\t\t})\n\t\t}\n\t\tif (\n\t\t\tinput.session_timeout_seconds !== undefined &&\n\t\t\t(input.session_timeout_seconds < 60 || input.session_timeout_seconds > 600)\n\t\t) {\n\t\t\tthrow new ToolError('Bound browser provider requires a session timeout from 60 to 600 seconds', {\n\t\t\t\tcode: 'bad_input'\n\t\t\t})\n\t\t}\n\t\treturn mapSession(\n\t\t\tawait this.#client.startSession({\n\t\t\t\t...(input.session_timeout_seconds !== undefined && {\n\t\t\t\t\tkeep_alive_seconds: input.session_timeout_seconds\n\t\t\t\t})\n\t\t\t})\n\t\t)\n\t}\n\n\tasync getSession(input: BrowserSessionIdInput) {\n\t\treturn mapSession(await this.#client.getSession(input))\n\t}\n\n\tasync stopSession(input: BrowserSessionIdInput) {\n\t\treturn mapSession(await this.#client.stopSession(input))\n\t}\n\n\tasync navigate(input: BrowserNavigateInput): Promise<BrowserNavigateOutput> {\n\t\tconst page = await this.#client.fetchContent({ url: input.url })\n\t\treturn {\n\t\t\tsession_id: input.session_id,\n\t\t\turl: input.url,\n\t\t\thtml: page.html,\n\t\t\t...(page.title && { title: page.title })\n\t\t}\n\t}\n\n\tasync snapshot(input: BrowserSnapshotInput): Promise<BrowserSnapshotOutput> {\n\t\tconst format = input.format ?? 'html'\n\t\tconst url = input.url\n\t\tif (!url) {\n\t\t\tthrow new ToolError('Bound browser provider requires url for snapshot (one-shot REST content API)', {\n\t\t\t\tcode: 'bad_input'\n\t\t\t})\n\t\t}\n\t\tconst page = await this.#client.fetchContent({ url })\n\t\tif (format === 'text') {\n\t\t\treturn {\n\t\t\t\tsession_id: input.session_id,\n\t\t\t\tformat: 'text',\n\t\t\t\tcontent: plainTextFromHtml(page.html),\n\t\t\t\turl\n\t\t\t}\n\t\t}\n\t\treturn { session_id: input.session_id, format: 'html', content: page.html, url }\n\t}\n\n\tasync click(_input: BrowserClickInput): Promise<BrowserActionOk> {\n\t\tunsupportedInteractive('click')\n\t}\n\n\tasync type(_input: BrowserTypeInput): Promise<BrowserActionOk> {\n\t\tunsupportedInteractive('type')\n\t}\n\n\tasync wait(_input: BrowserWaitInput): Promise<BrowserActionOk> {\n\t\tunsupportedInteractive('wait')\n\t}\n\n\tasync screenshot(input: BrowserScreenshotInput): Promise<BrowserScreenshotOutput> {\n\t\tconst url = input.url\n\t\tif (!url) {\n\t\t\tthrow new ToolError('Bound browser provider requires url for screenshot (one-shot REST API)', {\n\t\t\t\tcode: 'bad_input'\n\t\t\t})\n\t\t}\n\t\tconst out = await this.#client.renderScreenshot({\n\t\t\tsource: { url },\n\t\t\t...(input.output_key && { output_key: input.output_key })\n\t\t})\n\t\treturn { session_id: input.session_id, result: out.result }\n\t}\n\n\tasync getState(input: BrowserGetStateInput): Promise<BrowserGetStateOutput> {\n\t\tconst session = await this.getSession({ session_id: input.session_id })\n\t\treturn {\n\t\t\tsession_id: session.session_id,\n\t\t\t...(session.status && { status: session.status }),\n\t\t\t...(session.streams && { streams: session.streams })\n\t\t}\n\t}\n}\n","import { requireAuth } from '../../core/provider'\nimport type { ToolContext } from '../../core/types'\nimport type {\n\tBrowserAuth,\n\tBrowserClickInput,\n\tBrowserGetStateInput,\n\tBrowserNavigateInput,\n\tBrowserOps,\n\tBrowserScreenshotInput,\n\tBrowserSessionIdInput,\n\tBrowserSnapshotInput,\n\tBrowserStartSessionInput,\n\tBrowserTypeInput,\n\tBrowserWaitInput\n} from './contracts'\nimport { browserAuthSchema } from './contracts'\nimport { AgentCoreBrowserProvider } from './providers/bedrock-agentcore'\nimport { CloudflareBrowserProvider } from './providers/cloudflare'\n\nfunction providerFor(auth: BrowserAuth, ctx: ToolContext): BrowserOps {\n\tswitch (auth.provider) {\n\t\tcase 'bedrock-agentcore':\n\t\t\treturn new AgentCoreBrowserProvider(auth, {\n\t\t\t\t...(ctx.fetch && { fetch: ctx.fetch }),\n\t\t\t\t...(ctx.signal && { signal: ctx.signal })\n\t\t\t})\n\t\tcase 'cloudflare':\n\t\t\treturn new CloudflareBrowserProvider(auth, {\n\t\t\t\t...(ctx.fetch && { fetch: ctx.fetch }),\n\t\t\t\t...(ctx.signal && { signal: ctx.signal })\n\t\t\t})\n\t}\n}\n\nexport class BrowserClient implements BrowserOps {\n\treadonly #ops: BrowserOps\n\n\tconstructor(ops: BrowserOps) {\n\t\tthis.#ops = ops\n\t}\n\n\tstatic fromContext(ctx: ToolContext): BrowserClient {\n\t\treturn new BrowserClient(providerFor(requireAuth(ctx, browserAuthSchema), ctx))\n\t}\n\n\tstatic fromAuth(auth: BrowserAuth, ctx: ToolContext = {}): BrowserClient {\n\t\treturn new BrowserClient(providerFor(auth, ctx))\n\t}\n\n\tstartSession(input: BrowserStartSessionInput = {}) {\n\t\treturn this.#ops.startSession(input)\n\t}\n\n\tgetSession(input: BrowserSessionIdInput) {\n\t\treturn this.#ops.getSession(input)\n\t}\n\n\tstopSession(input: BrowserSessionIdInput) {\n\t\treturn this.#ops.stopSession(input)\n\t}\n\n\tnavigate(input: BrowserNavigateInput) {\n\t\treturn this.#ops.navigate(input)\n\t}\n\n\tsnapshot(input: BrowserSnapshotInput) {\n\t\treturn this.#ops.snapshot(input)\n\t}\n\n\tclick(input: BrowserClickInput) {\n\t\treturn this.#ops.click(input)\n\t}\n\n\ttype(input: BrowserTypeInput) {\n\t\treturn this.#ops.type(input)\n\t}\n\n\twait(input: BrowserWaitInput) {\n\t\treturn this.#ops.wait(input)\n\t}\n\n\tscreenshot(input: BrowserScreenshotInput) {\n\t\treturn this.#ops.screenshot(input)\n\t}\n\n\tgetState(input: BrowserGetStateInput) {\n\t\treturn this.#ops.getState(input)\n\t}\n}\n","/**\n * Browser session helpers (no HTTP).\n * CDP mint for host AgentBrowser / Playwright — interactive loop stays outside this pack.\n */\n\nimport { ToolError } from '../../core/errors'\nimport type { BrowserSessionOutput } from './contracts'\n\n/** Connection handle for a CDP client (Playwright `connectOverCDP`, puppeteer, AgentBrowser). */\nexport type BrowserCdpConnection = {\n\tsession_id: string\n\t/** WebSocket debugger URL for Chrome DevTools Protocol. */\n\twebsocket_url: string\n\t/**\n\t * Optional HTTP headers for the WebSocket upgrade.\n\t * Empty for most providers when the URL already embeds credentials / signed query.\n\t */\n\theaders: Record<string, string>\n\t/** Hosted live-view / DevTools UI when the provider returns one. */\n\tlive_view_url?: string\n\tstatus?: string\n}\n\nexport type MintBrowserCdpOptions = {\n\t/**\n\t * Extra WebSocket headers (e.g. Authorization for custom proxies).\n\t * Merged after provider defaults; caller keys win.\n\t */\n\theaders?: Record<string, string>\n}\n\n/**\n * Build a CDP connection object from a browser session (start/get/get-state).\n * Prefer this over driving click/type tools when the host runs a hybrid agent browser.\n *\n * @throws ToolError `bad_input` when the session has no automation stream endpoint.\n */\nexport function mintBrowserCdpConnection(\n\tsession: BrowserSessionOutput,\n\toptions: MintBrowserCdpOptions = {}\n): BrowserCdpConnection {\n\tconst websocket_url =\n\t\tsession.streams?.automation_stream_endpoint?.trim() ||\n\t\t// Cloudflare vendor shape is mapped into streams by the seam provider\n\t\tundefined\n\n\tif (!websocket_url) {\n\t\tthrow new ToolError(\n\t\t\t'Browser session has no automation stream (CDP) endpoint; start or get the session and ensure the provider returns streams.automation_stream_endpoint',\n\t\t\t{\n\t\t\t\tcode: 'bad_input',\n\t\t\t\tdetails: { session_id: session.session_id }\n\t\t\t}\n\t\t)\n\t}\n\n\tconst headers: Record<string, string> = { ...options.headers }\n\n\tconst out: BrowserCdpConnection = {\n\t\tsession_id: session.session_id,\n\t\twebsocket_url,\n\t\theaders\n\t}\n\tconst live = session.streams?.live_view_stream_endpoint?.trim()\n\tif (live) out.live_view_url = live\n\tif (session.status) out.status = session.status\n\treturn out\n}\n","import { defineModule, defineTool } from '../../core/define'\nimport { BrowserClient } from './client'\nimport {\n\tbrowserActionOkSchema,\n\tbrowserAuthSchema,\n\tbrowserClickInputSchema,\n\tbrowserGetStateInputSchema,\n\tbrowserGetStateOutputSchema,\n\tbrowserNavigateInputSchema,\n\tbrowserNavigateOutputSchema,\n\tbrowserScreenshotInputSchema,\n\tbrowserScreenshotOutputSchema,\n\tbrowserSessionIdInputSchema,\n\tbrowserSessionOutputSchema,\n\tbrowserSnapshotInputSchema,\n\tbrowserSnapshotOutputSchema,\n\tbrowserStartSessionInputSchema,\n\tbrowserTypeInputSchema,\n\tbrowserWaitInputSchema\n} from './contracts'\n\nexport const browserStartSessionTool = defineTool({\n\tid: 'browser-start-session',\n\tname: 'startBrowserSession',\n\tdescription:\n\t\t'Start a browser session and return stream metadata. Prefer mintBrowserCdpConnection + host CDP client for multi-step interaction; keep REST tools for one-shot navigate/snapshot/screenshot.',\n\tinputSchema: browserStartSessionInputSchema,\n\toutputSchema: browserSessionOutputSchema,\n\tsideEffect: 'write',\n\truntime: 'both',\n\tnetwork: true,\n\ttags: ['session', 'lifecycle'],\n\texecute: async (input, ctx) => BrowserClient.fromContext(ctx).startSession(input)\n})\n\nexport const browserGetSessionTool = defineTool({\n\tid: 'browser-get-session',\n\tname: 'getBrowserSession',\n\tdescription: 'Get session status and stream metadata (including CDP automation endpoint when available).',\n\tinputSchema: browserSessionIdInputSchema,\n\toutputSchema: browserSessionOutputSchema,\n\tsideEffect: 'read',\n\truntime: 'both',\n\tnetwork: true,\n\ttags: ['session', 'lifecycle'],\n\texecute: async (input, ctx) => BrowserClient.fromContext(ctx).getSession(input)\n})\n\nexport const browserStopSessionTool = defineTool({\n\tid: 'browser-stop-session',\n\tname: 'stopBrowserSession',\n\tdescription: 'Stop a browser session on the bound provider.',\n\tinputSchema: browserSessionIdInputSchema,\n\toutputSchema: browserSessionOutputSchema,\n\tsideEffect: 'write',\n\truntime: 'both',\n\tnetwork: true,\n\ttags: ['session', 'lifecycle'],\n\texecute: async (input, ctx) => BrowserClient.fromContext(ctx).stopSession(input)\n})\n\nexport const browserNavigateTool = defineTool({\n\tid: 'browser-navigate',\n\tname: 'browserNavigate',\n\tdescription:\n\t\t'One-shot or session navigate when the bound provider supports REST. For multi-step browsing prefer the CDP automation stream from start-session. Returns HTML/title when supported.',\n\tinputSchema: browserNavigateInputSchema,\n\toutputSchema: browserNavigateOutputSchema,\n\tsideEffect: 'write',\n\truntime: 'both',\n\tnetwork: true,\n\ttags: ['one-shot', 'secondary'],\n\texecute: async (input, ctx) => BrowserClient.fromContext(ctx).navigate(input)\n})\n\nexport const browserSnapshotTool = defineTool({\n\tid: 'browser-snapshot',\n\tname: 'browserSnapshot',\n\tdescription:\n\t\t'One-shot page HTML or text capture. Some providers require url. Prefer this for a single read; use CDP for agent-driven multi-step flows.',\n\tinputSchema: browserSnapshotInputSchema,\n\toutputSchema: browserSnapshotOutputSchema,\n\tsideEffect: 'read',\n\truntime: 'both',\n\tnetwork: true,\n\ttags: ['one-shot'],\n\texecute: async (input, ctx) => BrowserClient.fromContext(ctx).snapshot(input)\n})\n\nexport const browserClickTool = defineTool({\n\tid: 'browser-click',\n\tname: 'browserClick',\n\tdescription:\n\t\t'Session-agent path: click by CSS selector when the bound provider supports interactive REST (often unsupported — use CDP from start-session instead).',\n\tinputSchema: browserClickInputSchema,\n\toutputSchema: browserActionOkSchema,\n\tsideEffect: 'write',\n\truntime: 'both',\n\tnetwork: true,\n\ttags: ['session-agent', 'interactive', 'secondary'],\n\texecute: async (input, ctx) => BrowserClient.fromContext(ctx).click(input)\n})\n\nexport const browserTypeTool = defineTool({\n\tid: 'browser-type',\n\tname: 'browserType',\n\tdescription:\n\t\t'Session-agent path: type into a selector when interactive REST is supported (often unsupported — use CDP).',\n\tinputSchema: browserTypeInputSchema,\n\toutputSchema: browserActionOkSchema,\n\tsideEffect: 'write',\n\truntime: 'both',\n\tnetwork: true,\n\ttags: ['session-agent', 'interactive', 'secondary'],\n\texecute: async (input, ctx) => BrowserClient.fromContext(ctx).type(input)\n})\n\nexport const browserWaitTool = defineTool({\n\tid: 'browser-wait',\n\tname: 'browserWait',\n\tdescription:\n\t\t'Session-agent path: wait for selector/navigation when interactive REST is supported (often unsupported — use CDP).',\n\tinputSchema: browserWaitInputSchema,\n\toutputSchema: browserActionOkSchema,\n\tsideEffect: 'read',\n\truntime: 'both',\n\tnetwork: true,\n\ttags: ['session-agent', 'interactive', 'secondary'],\n\texecute: async (input, ctx) => BrowserClient.fromContext(ctx).wait(input)\n})\n\nexport const browserScreenshotTool = defineTool({\n\tid: 'browser-screenshot',\n\tname: 'browserScreenshot',\n\tdescription:\n\t\t'One-shot or session PNG screenshot as ArtifactRef. Prefer for visual capture; multi-step interaction should use CDP.',\n\tinputSchema: browserScreenshotInputSchema,\n\toutputSchema: browserScreenshotOutputSchema,\n\tsideEffect: 'write',\n\truntime: 'both',\n\tnetwork: true,\n\tartifacts: true,\n\ttags: ['one-shot', 'artifacts'],\n\texecute: async (input, ctx) => BrowserClient.fromContext(ctx).screenshot(input)\n})\n\nexport const browserGetStateTool = defineTool({\n\tid: 'browser-get-state',\n\tname: 'browserGetState',\n\tdescription: 'Get session status and stream metadata (CDP endpoint when available).',\n\tinputSchema: browserGetStateInputSchema,\n\toutputSchema: browserGetStateOutputSchema,\n\tsideEffect: 'read',\n\truntime: 'both',\n\tnetwork: true,\n\ttags: ['session', 'lifecycle'],\n\texecute: async (input, ctx) => BrowserClient.fromContext(ctx).getState(input)\n})\n\nexport const browserModule = defineModule({\n\tid: 'browser',\n\ttitle: 'Browser',\n\tdescription:\n\t\t'Browser session lifecycle, one-shot navigate/snapshot/screenshot, and optional interactive tools. Prefer mintBrowserCdpConnection + host CDP agent for multi-step click/type; REST interactive tools stay for migration.',\n\truntime: 'both',\n\tauth: { type: 'custom', schema: browserAuthSchema },\n\tcategories: ['browser', 'automation'],\n\tclassification: 'standard',\n\ttags: ['session', 'cdp', 'one-shot'],\n\ttools: [\n\t\tbrowserStartSessionTool,\n\t\tbrowserGetSessionTool,\n\t\tbrowserStopSessionTool,\n\t\tbrowserNavigateTool,\n\t\tbrowserSnapshotTool,\n\t\tbrowserClickTool,\n\t\tbrowserTypeTool,\n\t\tbrowserWaitTool,\n\t\tbrowserScreenshotTool,\n\t\tbrowserGetStateTool\n\t]\n})\n"],"mappings":"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"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { a as ModuleDefinition, s as ToolDefinition } from "../../types-Ccb0DXY9.js";
|
|
2
|
+
import "../../index-CZX5OeOF.js";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
//#region src/modules/calendar/contracts.d.ts
|
|
5
|
+
declare const calendarEventSchema: z.ZodObject<{
|
|
6
|
+
uid: z.ZodOptional<z.ZodString>;
|
|
7
|
+
title: z.ZodString;
|
|
8
|
+
start: z.ZodUnion<readonly [z.ZodISODate, z.ZodISODateTime]>;
|
|
9
|
+
end: z.ZodUnion<readonly [z.ZodISODate, z.ZodISODateTime]>;
|
|
10
|
+
all_day: z.ZodOptional<z.ZodBoolean>;
|
|
11
|
+
description: z.ZodOptional<z.ZodString>;
|
|
12
|
+
location: z.ZodOptional<z.ZodString>;
|
|
13
|
+
organizer: z.ZodOptional<z.ZodString>;
|
|
14
|
+
}, z.core.$strip>;
|
|
15
|
+
declare const calendarBuildInputSchema: z.ZodObject<{
|
|
16
|
+
events: z.ZodArray<z.ZodObject<{
|
|
17
|
+
uid: z.ZodOptional<z.ZodString>;
|
|
18
|
+
title: z.ZodString;
|
|
19
|
+
start: z.ZodUnion<readonly [z.ZodISODate, z.ZodISODateTime]>;
|
|
20
|
+
end: z.ZodUnion<readonly [z.ZodISODate, z.ZodISODateTime]>;
|
|
21
|
+
all_day: z.ZodOptional<z.ZodBoolean>;
|
|
22
|
+
description: z.ZodOptional<z.ZodString>;
|
|
23
|
+
location: z.ZodOptional<z.ZodString>;
|
|
24
|
+
organizer: z.ZodOptional<z.ZodString>;
|
|
25
|
+
}, z.core.$strip>>;
|
|
26
|
+
name: z.ZodOptional<z.ZodString>;
|
|
27
|
+
product_id: z.ZodOptional<z.ZodString>;
|
|
28
|
+
}, z.core.$strip>;
|
|
29
|
+
declare const calendarBuildOutputSchema: z.ZodObject<{
|
|
30
|
+
ics: z.ZodString;
|
|
31
|
+
event_count: z.ZodInt;
|
|
32
|
+
}, z.core.$strip>;
|
|
33
|
+
declare const calendarParseInputSchema: z.ZodObject<{
|
|
34
|
+
ics: z.ZodString;
|
|
35
|
+
}, z.core.$strip>;
|
|
36
|
+
declare const calendarParseOutputSchema: z.ZodObject<{
|
|
37
|
+
events: z.ZodArray<z.ZodObject<{
|
|
38
|
+
uid: z.ZodOptional<z.ZodString>;
|
|
39
|
+
title: z.ZodString;
|
|
40
|
+
start: z.ZodUnion<readonly [z.ZodISODate, z.ZodISODateTime]>;
|
|
41
|
+
end: z.ZodUnion<readonly [z.ZodISODate, z.ZodISODateTime]>;
|
|
42
|
+
all_day: z.ZodOptional<z.ZodBoolean>;
|
|
43
|
+
description: z.ZodOptional<z.ZodString>;
|
|
44
|
+
location: z.ZodOptional<z.ZodString>;
|
|
45
|
+
organizer: z.ZodOptional<z.ZodString>;
|
|
46
|
+
}, z.core.$strip>>;
|
|
47
|
+
}, z.core.$strip>;
|
|
48
|
+
type CalendarEvent = z.infer<typeof calendarEventSchema>;
|
|
49
|
+
type CalendarBuildInput = z.infer<typeof calendarBuildInputSchema>;
|
|
50
|
+
type CalendarBuildOutput = z.infer<typeof calendarBuildOutputSchema>;
|
|
51
|
+
type CalendarParseInput = z.infer<typeof calendarParseInputSchema>;
|
|
52
|
+
type CalendarParseOutput = z.infer<typeof calendarParseOutputSchema>;
|
|
53
|
+
//#endregion
|
|
54
|
+
//#region src/modules/calendar/domain.d.ts
|
|
55
|
+
declare function buildCalendar(input: CalendarBuildInput): CalendarBuildOutput;
|
|
56
|
+
declare function parseCalendar(ics: string): CalendarParseOutput;
|
|
57
|
+
//#endregion
|
|
58
|
+
//#region src/modules/calendar/module.d.ts
|
|
59
|
+
declare const calendarBuildTool: ToolDefinition<{
|
|
60
|
+
events: {
|
|
61
|
+
uid?: string | undefined;
|
|
62
|
+
title: string;
|
|
63
|
+
start: string;
|
|
64
|
+
end: string;
|
|
65
|
+
all_day?: boolean | undefined;
|
|
66
|
+
description?: string | undefined;
|
|
67
|
+
location?: string | undefined;
|
|
68
|
+
organizer?: string | undefined;
|
|
69
|
+
}[];
|
|
70
|
+
name?: string | undefined;
|
|
71
|
+
product_id?: string | undefined;
|
|
72
|
+
}, {
|
|
73
|
+
ics: string;
|
|
74
|
+
event_count: number;
|
|
75
|
+
}>;
|
|
76
|
+
declare const calendarParseTool: ToolDefinition<{
|
|
77
|
+
ics: string;
|
|
78
|
+
}, {
|
|
79
|
+
events: {
|
|
80
|
+
uid?: string | undefined;
|
|
81
|
+
title: string;
|
|
82
|
+
start: string;
|
|
83
|
+
end: string;
|
|
84
|
+
all_day?: boolean | undefined;
|
|
85
|
+
description?: string | undefined;
|
|
86
|
+
location?: string | undefined;
|
|
87
|
+
organizer?: string | undefined;
|
|
88
|
+
}[];
|
|
89
|
+
}>;
|
|
90
|
+
declare const calendarModule: ModuleDefinition<unknown>;
|
|
91
|
+
//#endregion
|
|
92
|
+
export { type CalendarBuildInput, type CalendarBuildOutput, type CalendarEvent, type CalendarParseInput, type CalendarParseOutput, buildCalendar, calendarBuildInputSchema, calendarBuildOutputSchema, calendarBuildTool, calendarEventSchema, calendarModule, calendarParseInputSchema, calendarParseOutputSchema, calendarParseTool, parseCalendar };
|
|
93
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/modules/calendar/contracts.ts","../../../src/modules/calendar/domain.ts","../../../src/modules/calendar/module.ts"],"mappings":";;;;cAOa,qBAAmB,EAAA;;;;;;;;;GAoB7B,EAAA,KAAA;cAEU,0BAAwB,EAAA;;;;;;;;;;;;;GAInC,EAAA,KAAA;cAEW,2BAAyB,EAAA;;;GAGpC,EAAA,KAAA;cAEW,0BAAwB,EAAA;;GAEnC,EAAA,KAAA;cAEW,2BAAyB,EAAA;;;;;;;;;;;GAEpC,EAAA,KAAA;KAEU,gBAAgB,EAAE,aAAa;KAC/B,qBAAqB,EAAE,aAAa;KACpC,sBAAsB,EAAE,aAAa;KACrC,qBAAqB,EAAE,aAAa;KACpC,sBAAsB,EAAE,aAAa;;;iBCtCjC,cAAc,OAAO,qBAAqB;iBAsB1C,cAAc,cAAc;;;cC3B/B,mBAAA;;;;;;;;;;;;;;;;;cAWA,mBAAA;;;;;;;;;;;;;;cAWA,gBAAA"}
|