@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,218 @@
|
|
|
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 HttpService } from "./http-service-DDNCO1s4.js";
|
|
5
|
+
import { S as requireCollection, _ as parseMetadata, a as deleteVectorsOutputSchema, b as parseScore, c as upsertVectorsInputSchema, g as mergeVectorFilter, i as deleteVectorsInputSchema, l as upsertVectorsOutputSchema, m as mapVectorHttpStatus, o as queryVectorsInputSchema, s as queryVectorsOutputSchema, u as vectorDefaultFilterSchema, v as parseNumberArray, w as stampDefaultFilterMetadata, x as parseUpstreamMessage, y as parsePointId } from "./schemas-ChOAhdo9.js";
|
|
6
|
+
import { isPlainObject, trimEnd } from "es-toolkit";
|
|
7
|
+
import { z } from "zod";
|
|
8
|
+
//#region src/vendors/supabase-vector/contracts.ts
|
|
9
|
+
/**
|
|
10
|
+
* Supabase Postgres + pgvector over PostgREST.
|
|
11
|
+
* Host owns table + match RPC (see docs/vendors/supabase-vector.md).
|
|
12
|
+
*/
|
|
13
|
+
const supabaseVectorAuthSchema = z.object({
|
|
14
|
+
url: z.string().url().describe("Supabase project URL, for example https://xxxx.supabase.co"),
|
|
15
|
+
api_key: z.string().min(1).describe("Supabase API key with table/RPC grants (typically service_role for server-side tools)"),
|
|
16
|
+
default_collection: z.string().min(1).optional().describe("Default PostgREST table name when tool input omits collection"),
|
|
17
|
+
schema: z.string().min(1).optional().describe("Postgres schema for PostgREST (default public; sets Content/Accept-Profile)"),
|
|
18
|
+
id_column: z.string().min(1).optional().describe("Id column name (default id)"),
|
|
19
|
+
embedding_column: z.string().min(1).optional().describe("Embedding/vector column name (default embedding)"),
|
|
20
|
+
metadata_column: z.string().min(1).optional().describe("Metadata jsonb column name (default metadata)"),
|
|
21
|
+
match_rpc: z.string().min(1).optional().describe("Nearest-neighbor RPC name (default match_vectors)"),
|
|
22
|
+
default_filter: vectorDefaultFilterSchema.optional().describe("Host-bound filter always applied on match RPC; flat keys stamped on upsert metadata")
|
|
23
|
+
});
|
|
24
|
+
//#endregion
|
|
25
|
+
//#region src/vendors/supabase-vector/client.ts
|
|
26
|
+
/**
|
|
27
|
+
* Supabase pgvector vendor client (PostgREST).
|
|
28
|
+
* Host: `new SupabaseVectorClient(auth)`. Agent tools: `fromContext(ctx)`.
|
|
29
|
+
*/
|
|
30
|
+
var SupabaseVectorClient = class SupabaseVectorClient {
|
|
31
|
+
#http;
|
|
32
|
+
#defaultCollection;
|
|
33
|
+
#defaultFilter;
|
|
34
|
+
#idColumn;
|
|
35
|
+
#embeddingColumn;
|
|
36
|
+
#metadataColumn;
|
|
37
|
+
#matchRpc;
|
|
38
|
+
constructor(auth, options = {}) {
|
|
39
|
+
const parsed = supabaseVectorAuthSchema.safeParse(auth);
|
|
40
|
+
if (!parsed.success) throw new ToolError("Invalid Supabase vector auth credentials", {
|
|
41
|
+
code: "bad_auth",
|
|
42
|
+
details: { issues: parsed.error.issues.map((issue) => issue.message) }
|
|
43
|
+
});
|
|
44
|
+
const data = parsed.data;
|
|
45
|
+
this.#defaultCollection = data.default_collection;
|
|
46
|
+
this.#defaultFilter = data.default_filter;
|
|
47
|
+
this.#idColumn = data.id_column ?? "id";
|
|
48
|
+
this.#embeddingColumn = data.embedding_column ?? "embedding";
|
|
49
|
+
this.#metadataColumn = data.metadata_column ?? "metadata";
|
|
50
|
+
this.#matchRpc = data.match_rpc ?? "match_vectors";
|
|
51
|
+
const schema = data.schema ?? "public";
|
|
52
|
+
const httpOptions = {
|
|
53
|
+
baseURL: `${trimEnd(data.url, "/")}/rest/v1`,
|
|
54
|
+
headers: {
|
|
55
|
+
"Content-Type": "application/json",
|
|
56
|
+
apikey: data.api_key,
|
|
57
|
+
Authorization: `Bearer ${data.api_key}`,
|
|
58
|
+
"Content-Profile": schema,
|
|
59
|
+
"Accept-Profile": schema
|
|
60
|
+
},
|
|
61
|
+
label: "Supabase vector"
|
|
62
|
+
};
|
|
63
|
+
if (options.fetch) httpOptions.fetch = options.fetch;
|
|
64
|
+
if (options.signal) httpOptions.signal = options.signal;
|
|
65
|
+
this.#http = new HttpService(httpOptions);
|
|
66
|
+
}
|
|
67
|
+
static fromContext(ctx) {
|
|
68
|
+
const auth = requireAuth(ctx, supabaseVectorAuthSchema);
|
|
69
|
+
const options = {};
|
|
70
|
+
if (ctx.fetch) options.fetch = ctx.fetch;
|
|
71
|
+
if (ctx.signal) options.signal = ctx.signal;
|
|
72
|
+
return new SupabaseVectorClient(auth, options);
|
|
73
|
+
}
|
|
74
|
+
async upsert(input) {
|
|
75
|
+
const table = requireCollection(input.collection, this.#defaultCollection, "Supabase vector upsert");
|
|
76
|
+
const rows = input.vectors.map((point) => {
|
|
77
|
+
const metadata = stampDefaultFilterMetadata(point.metadata, this.#defaultFilter);
|
|
78
|
+
const row = {
|
|
79
|
+
[this.#idColumn]: point.id,
|
|
80
|
+
[this.#embeddingColumn]: point.values
|
|
81
|
+
};
|
|
82
|
+
if (metadata) row[this.#metadataColumn] = metadata;
|
|
83
|
+
return row;
|
|
84
|
+
});
|
|
85
|
+
const res = await this.#http.post(`/${encodeURIComponent(table)}`, rows, {
|
|
86
|
+
label: "Supabase vector upsert",
|
|
87
|
+
noThrow: true,
|
|
88
|
+
headers: { Prefer: "resolution=merge-duplicates,return=minimal" }
|
|
89
|
+
});
|
|
90
|
+
if (!res.ok) throw new ToolError(parseUpstreamMessage(res.data, `Supabase vector upsert failed with HTTP ${res.status}`), {
|
|
91
|
+
code: mapVectorHttpStatus(res.status),
|
|
92
|
+
details: { status: res.status }
|
|
93
|
+
});
|
|
94
|
+
return {
|
|
95
|
+
upserted: input.vectors.length,
|
|
96
|
+
collection: table
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
async query(input) {
|
|
100
|
+
const table = requireCollection(input.collection, this.#defaultCollection, "Supabase vector query");
|
|
101
|
+
const topK = input.top_k ?? 8;
|
|
102
|
+
const includeMetadata = input.include_metadata !== false;
|
|
103
|
+
const body = {
|
|
104
|
+
query_embedding: input.vector,
|
|
105
|
+
match_count: topK,
|
|
106
|
+
collection: table
|
|
107
|
+
};
|
|
108
|
+
const filter = mergeVectorFilter(this.#defaultFilter, input.filter);
|
|
109
|
+
if (filter) body["filter"] = filter;
|
|
110
|
+
const res = await this.#http.post(`/rpc/${encodeURIComponent(this.#matchRpc)}`, body, {
|
|
111
|
+
label: "Supabase vector match",
|
|
112
|
+
noThrow: true
|
|
113
|
+
});
|
|
114
|
+
if (!res.ok) throw new ToolError(parseUpstreamMessage(res.data, `Supabase vector match failed with HTTP ${res.status}`), {
|
|
115
|
+
code: mapVectorHttpStatus(res.status),
|
|
116
|
+
details: {
|
|
117
|
+
status: res.status,
|
|
118
|
+
match_rpc: this.#matchRpc
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
const rows = Array.isArray(res.data) ? res.data : [];
|
|
122
|
+
const matches = [];
|
|
123
|
+
for (const row of rows) {
|
|
124
|
+
if (!isPlainObject(row)) continue;
|
|
125
|
+
const id = parsePointId(row[this.#idColumn] ?? row["id"]);
|
|
126
|
+
if (!id) continue;
|
|
127
|
+
const match = {
|
|
128
|
+
id,
|
|
129
|
+
score: parseScore(row)
|
|
130
|
+
};
|
|
131
|
+
if (includeMetadata) {
|
|
132
|
+
const meta = parseMetadata(row[this.#metadataColumn] ?? row["metadata"]);
|
|
133
|
+
if (meta) match.metadata = meta;
|
|
134
|
+
}
|
|
135
|
+
if (input.include_values === true) {
|
|
136
|
+
const values = parseNumberArray(row[this.#embeddingColumn] ?? row["embedding"] ?? row["values"]);
|
|
137
|
+
if (values) match.values = values;
|
|
138
|
+
}
|
|
139
|
+
matches.push(match);
|
|
140
|
+
}
|
|
141
|
+
return {
|
|
142
|
+
matches,
|
|
143
|
+
collection: table
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
async delete(input) {
|
|
147
|
+
const table = requireCollection(input.collection, this.#defaultCollection, "Supabase vector delete");
|
|
148
|
+
const listed = input.ids.map((id) => `"${id.replaceAll("\"", "")}"`).join(",");
|
|
149
|
+
const res = await this.#http.delete(`/${encodeURIComponent(table)}`, {
|
|
150
|
+
label: "Supabase vector delete",
|
|
151
|
+
noThrow: true,
|
|
152
|
+
query: { [this.#idColumn]: `in.(${listed})` },
|
|
153
|
+
headers: { Prefer: "return=minimal" }
|
|
154
|
+
});
|
|
155
|
+
if (!res.ok) throw new ToolError(parseUpstreamMessage(res.data, `Supabase vector delete failed with HTTP ${res.status}`), {
|
|
156
|
+
code: mapVectorHttpStatus(res.status),
|
|
157
|
+
details: { status: res.status }
|
|
158
|
+
});
|
|
159
|
+
return {
|
|
160
|
+
deleted: input.ids.length,
|
|
161
|
+
collection: table
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
};
|
|
165
|
+
//#endregion
|
|
166
|
+
//#region src/vendors/supabase-vector/module.ts
|
|
167
|
+
const supabaseVectorUpsertTool = defineTool({
|
|
168
|
+
id: "supabase-vector-upsert",
|
|
169
|
+
name: "supabaseVectorUpsert",
|
|
170
|
+
description: "Upsert embedding vectors into the configured Supabase pgvector table. Provide stable ids, vector values, and optional flat metadata.",
|
|
171
|
+
inputSchema: upsertVectorsInputSchema,
|
|
172
|
+
outputSchema: upsertVectorsOutputSchema,
|
|
173
|
+
sideEffect: "write",
|
|
174
|
+
runtime: "both",
|
|
175
|
+
execute: async (input, ctx) => SupabaseVectorClient.fromContext(ctx).upsert(input)
|
|
176
|
+
});
|
|
177
|
+
const supabaseVectorQueryTool = defineTool({
|
|
178
|
+
id: "supabase-vector-query",
|
|
179
|
+
name: "supabaseVectorQuery",
|
|
180
|
+
description: "Run a nearest-neighbor query against the configured Supabase pgvector table. Returns the closest rows up to the requested top_k and optional score threshold.",
|
|
181
|
+
inputSchema: queryVectorsInputSchema,
|
|
182
|
+
outputSchema: queryVectorsOutputSchema,
|
|
183
|
+
sideEffect: "read",
|
|
184
|
+
runtime: "both",
|
|
185
|
+
execute: async (input, ctx) => SupabaseVectorClient.fromContext(ctx).query(input)
|
|
186
|
+
});
|
|
187
|
+
const supabaseVectorDeleteTool = defineTool({
|
|
188
|
+
id: "supabase-vector-delete",
|
|
189
|
+
name: "supabaseVectorDelete",
|
|
190
|
+
description: "Delete embedding vectors by id from the configured Supabase pgvector table.",
|
|
191
|
+
inputSchema: deleteVectorsInputSchema,
|
|
192
|
+
outputSchema: deleteVectorsOutputSchema,
|
|
193
|
+
sideEffect: "delete",
|
|
194
|
+
runtime: "both",
|
|
195
|
+
execute: async (input, ctx) => SupabaseVectorClient.fromContext(ctx).delete(input)
|
|
196
|
+
});
|
|
197
|
+
const supabaseVectorModule = defineModule({
|
|
198
|
+
id: "supabase-vector",
|
|
199
|
+
title: "Supabase Vector",
|
|
200
|
+
description: "Supabase Postgres and pgvector tools to upsert vectors, query nearest matches, and delete vectors.",
|
|
201
|
+
runtime: "both",
|
|
202
|
+
auth: {
|
|
203
|
+
type: "custom",
|
|
204
|
+
schema: supabaseVectorAuthSchema
|
|
205
|
+
},
|
|
206
|
+
categories: ["ai", "vector"],
|
|
207
|
+
classification: "pii",
|
|
208
|
+
tags: ["pgvector", "supabase"],
|
|
209
|
+
tools: [
|
|
210
|
+
supabaseVectorUpsertTool,
|
|
211
|
+
supabaseVectorQueryTool,
|
|
212
|
+
supabaseVectorDeleteTool
|
|
213
|
+
]
|
|
214
|
+
});
|
|
215
|
+
//#endregion
|
|
216
|
+
export { SupabaseVectorClient as a, supabaseVectorUpsertTool as i, supabaseVectorModule as n, supabaseVectorAuthSchema as o, supabaseVectorQueryTool as r, supabaseVectorDeleteTool as t };
|
|
217
|
+
|
|
218
|
+
//# sourceMappingURL=supabase-vector-Dpp9mmJR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supabase-vector-Dpp9mmJR.js","names":["#http","#defaultCollection","#defaultFilter","#idColumn","#embeddingColumn","#metadataColumn","#matchRpc"],"sources":["../src/vendors/supabase-vector/contracts.ts","../src/vendors/supabase-vector/client.ts","../src/vendors/supabase-vector/module.ts"],"sourcesContent":["import { z } from 'zod'\n\nimport { vectorDefaultFilterSchema } from '../_vector'\n\nexport {\n\tMAX_TOP_K,\n\tMAX_VECTOR_BATCH,\n\tMAX_VECTOR_DIMENSIONS,\n\tdeleteVectorsInputSchema,\n\tdeleteVectorsOutputSchema,\n\tqueryVectorsInputSchema,\n\tqueryVectorsOutputSchema,\n\tupsertVectorsInputSchema,\n\tupsertVectorsOutputSchema,\n\tvectorMatchSchema,\n\tvectorMetadataSchema,\n\tvectorPointSchema\n} from '../_vector'\nexport type {\n\tDeleteVectorsInput,\n\tDeleteVectorsOutput,\n\tQueryVectorsInput,\n\tQueryVectorsOutput,\n\tUpsertVectorsInput,\n\tUpsertVectorsOutput,\n\tVectorMatch,\n\tVectorMetadata,\n\tVectorPoint\n} from '../_vector'\n\n/**\n * Supabase Postgres + pgvector over PostgREST.\n * Host owns table + match RPC (see docs/vendors/supabase-vector.md).\n */\nexport const supabaseVectorAuthSchema = z.object({\n\turl: z.string().url().describe('Supabase project URL, for example https://xxxx.supabase.co'),\n\tapi_key: z\n\t\t.string()\n\t\t.min(1)\n\t\t.describe('Supabase API key with table/RPC grants (typically service_role for server-side tools)'),\n\tdefault_collection: z\n\t\t.string()\n\t\t.min(1)\n\t\t.optional()\n\t\t.describe('Default PostgREST table name when tool input omits collection'),\n\tschema: z\n\t\t.string()\n\t\t.min(1)\n\t\t.optional()\n\t\t.describe('Postgres schema for PostgREST (default public; sets Content/Accept-Profile)'),\n\tid_column: z.string().min(1).optional().describe('Id column name (default id)'),\n\tembedding_column: z.string().min(1).optional().describe('Embedding/vector column name (default embedding)'),\n\tmetadata_column: z.string().min(1).optional().describe('Metadata jsonb column name (default metadata)'),\n\tmatch_rpc: z.string().min(1).optional().describe('Nearest-neighbor RPC name (default match_vectors)'),\n\tdefault_filter: vectorDefaultFilterSchema\n\t\t.optional()\n\t\t.describe('Host-bound filter always applied on match RPC; flat keys stamped on upsert metadata')\n})\n\nexport type SupabaseVectorAuth = z.infer<typeof supabaseVectorAuthSchema>\n","/**\n * Supabase pgvector vendor client (PostgREST).\n * Host: `new SupabaseVectorClient(auth)`. Agent tools: `fromContext(ctx)`.\n */\n\nimport { isPlainObject, trimEnd } from 'es-toolkit'\n\nimport { ToolError } from '../../core/errors'\nimport { requireAuth } from '../../core/provider'\nimport type { ToolContext } from '../../core/types'\nimport { HttpService } from '../../transport/http-service'\nimport type { HttpServiceOptions } from '../../transport/http-service'\nimport {\n\tmapVectorHttpStatus,\n\tmergeVectorFilter,\n\tparseMetadata,\n\tparseNumberArray,\n\tparsePointId,\n\tparseScore,\n\tparseUpstreamMessage,\n\trequireCollection,\n\tstampDefaultFilterMetadata\n} from '../_vector/domain'\nimport type { VectorDefaultFilter } from '../_vector/domain'\nimport type {\n\tDeleteVectorsInput,\n\tDeleteVectorsOutput,\n\tQueryVectorsInput,\n\tQueryVectorsOutput,\n\tSupabaseVectorAuth,\n\tUpsertVectorsInput,\n\tUpsertVectorsOutput,\n\tVectorMatch\n} from './contracts'\nimport { supabaseVectorAuthSchema } from './contracts'\n\nexport type SupabaseVectorClientOptions = {\n\tfetch?: HttpServiceOptions['fetch'] | undefined\n\tsignal?: HttpServiceOptions['signal'] | undefined\n}\n\nexport class SupabaseVectorClient {\n\treadonly #http: HttpService\n\treadonly #defaultCollection: string | undefined\n\treadonly #defaultFilter: VectorDefaultFilter | undefined\n\treadonly #idColumn: string\n\treadonly #embeddingColumn: string\n\treadonly #metadataColumn: string\n\treadonly #matchRpc: string\n\n\tconstructor(auth: SupabaseVectorAuth, options: SupabaseVectorClientOptions = {}) {\n\t\tconst parsed = supabaseVectorAuthSchema.safeParse(auth)\n\t\tif (!parsed.success) {\n\t\t\tthrow new ToolError('Invalid Supabase vector 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\tconst data = parsed.data\n\t\tthis.#defaultCollection = data.default_collection\n\t\tthis.#defaultFilter = data.default_filter\n\t\tthis.#idColumn = data.id_column ?? 'id'\n\t\tthis.#embeddingColumn = data.embedding_column ?? 'embedding'\n\t\tthis.#metadataColumn = data.metadata_column ?? 'metadata'\n\t\tthis.#matchRpc = data.match_rpc ?? 'match_vectors'\n\n\t\tconst schema = data.schema ?? 'public'\n\t\t// Project url + API path prefix (trimEnd like HttpService/teams).\n\t\tconst httpOptions: HttpServiceOptions = {\n\t\t\tbaseURL: `${trimEnd(data.url, '/')}/rest/v1`,\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\tapikey: data.api_key,\n\t\t\t\tAuthorization: `Bearer ${data.api_key}`,\n\t\t\t\t'Content-Profile': schema,\n\t\t\t\t'Accept-Profile': schema\n\t\t\t},\n\t\t\tlabel: 'Supabase vector'\n\t\t}\n\t\tif (options.fetch) httpOptions.fetch = options.fetch\n\t\tif (options.signal) httpOptions.signal = options.signal\n\t\tthis.#http = new HttpService(httpOptions)\n\t}\n\n\tstatic fromContext(ctx: ToolContext): SupabaseVectorClient {\n\t\tconst auth = requireAuth(ctx, supabaseVectorAuthSchema)\n\t\tconst options: SupabaseVectorClientOptions = {}\n\t\tif (ctx.fetch) options.fetch = ctx.fetch\n\t\tif (ctx.signal) options.signal = ctx.signal\n\t\treturn new SupabaseVectorClient(auth, options)\n\t}\n\n\tasync upsert(input: UpsertVectorsInput): Promise<UpsertVectorsOutput> {\n\t\tconst table = requireCollection(input.collection, this.#defaultCollection, 'Supabase vector upsert')\n\t\tconst rows = input.vectors.map((point) => {\n\t\t\tconst metadata = stampDefaultFilterMetadata(point.metadata, this.#defaultFilter)\n\t\t\tconst row: Record<string, unknown> = {\n\t\t\t\t[this.#idColumn]: point.id,\n\t\t\t\t[this.#embeddingColumn]: point.values\n\t\t\t}\n\t\t\tif (metadata) row[this.#metadataColumn] = metadata\n\t\t\treturn row\n\t\t})\n\n\t\tconst res = await this.#http.post(`/${encodeURIComponent(table)}`, rows, {\n\t\t\tlabel: 'Supabase vector upsert',\n\t\t\tnoThrow: true,\n\t\t\theaders: { Prefer: 'resolution=merge-duplicates,return=minimal' }\n\t\t})\n\t\tif (!res.ok) {\n\t\t\tthrow new ToolError(parseUpstreamMessage(res.data, `Supabase vector upsert failed with HTTP ${res.status}`), {\n\t\t\t\tcode: mapVectorHttpStatus(res.status),\n\t\t\t\tdetails: { status: res.status }\n\t\t\t})\n\t\t}\n\t\treturn { upserted: input.vectors.length, collection: table }\n\t}\n\n\tasync query(input: QueryVectorsInput): Promise<QueryVectorsOutput> {\n\t\tconst table = requireCollection(input.collection, this.#defaultCollection, 'Supabase vector query')\n\t\tconst topK = input.top_k ?? 8\n\t\tconst includeMetadata = input.include_metadata !== false\n\t\tconst body: Record<string, unknown> = {\n\t\t\tquery_embedding: input.vector,\n\t\t\tmatch_count: topK,\n\t\t\tcollection: table\n\t\t}\n\t\tconst filter = mergeVectorFilter(this.#defaultFilter, input.filter)\n\t\tif (filter) body['filter'] = filter\n\n\t\tconst res = await this.#http.post(`/rpc/${encodeURIComponent(this.#matchRpc)}`, body, {\n\t\t\tlabel: 'Supabase vector match',\n\t\t\tnoThrow: true\n\t\t})\n\t\tif (!res.ok) {\n\t\t\tthrow new ToolError(parseUpstreamMessage(res.data, `Supabase vector match failed with HTTP ${res.status}`), {\n\t\t\t\tcode: mapVectorHttpStatus(res.status),\n\t\t\t\tdetails: { status: res.status, match_rpc: this.#matchRpc }\n\t\t\t})\n\t\t}\n\n\t\tconst rows = Array.isArray(res.data) ? res.data : []\n\t\tconst matches: VectorMatch[] = []\n\t\tfor (const row of rows) {\n\t\t\tif (!isPlainObject(row)) continue\n\t\t\tconst id = parsePointId(row[this.#idColumn] ?? row['id'])\n\t\t\tif (!id) continue\n\t\t\tconst match: VectorMatch = { id, score: parseScore(row) }\n\t\t\tif (includeMetadata) {\n\t\t\t\tconst meta = parseMetadata(row[this.#metadataColumn] ?? row['metadata'])\n\t\t\t\tif (meta) match.metadata = meta\n\t\t\t}\n\t\t\tif (input.include_values === true) {\n\t\t\t\tconst values = parseNumberArray(row[this.#embeddingColumn] ?? row['embedding'] ?? row['values'])\n\t\t\t\tif (values) match.values = values\n\t\t\t}\n\t\t\tmatches.push(match)\n\t\t}\n\t\treturn { matches, collection: table }\n\t}\n\n\tasync delete(input: DeleteVectorsInput): Promise<DeleteVectorsOutput> {\n\t\tconst table = requireCollection(input.collection, this.#defaultCollection, 'Supabase vector delete')\n\t\tconst listed = input.ids.map((id) => `\"${id.replaceAll('\"', '')}\"`).join(',')\n\t\tconst res = await this.#http.delete(`/${encodeURIComponent(table)}`, {\n\t\t\tlabel: 'Supabase vector delete',\n\t\t\tnoThrow: true,\n\t\t\tquery: { [this.#idColumn]: `in.(${listed})` },\n\t\t\theaders: { Prefer: 'return=minimal' }\n\t\t})\n\t\tif (!res.ok) {\n\t\t\tthrow new ToolError(parseUpstreamMessage(res.data, `Supabase vector delete failed with HTTP ${res.status}`), {\n\t\t\t\tcode: mapVectorHttpStatus(res.status),\n\t\t\t\tdetails: { status: res.status }\n\t\t\t})\n\t\t}\n\t\treturn { deleted: input.ids.length, collection: table }\n\t}\n}\n","import { defineModule, defineTool } from '../../core/define'\nimport { SupabaseVectorClient } from './client'\nimport {\n\tdeleteVectorsInputSchema,\n\tdeleteVectorsOutputSchema,\n\tqueryVectorsInputSchema,\n\tqueryVectorsOutputSchema,\n\tsupabaseVectorAuthSchema,\n\tupsertVectorsInputSchema,\n\tupsertVectorsOutputSchema\n} from './contracts'\n\nexport const supabaseVectorUpsertTool = defineTool({\n\tid: 'supabase-vector-upsert',\n\tname: 'supabaseVectorUpsert',\n\tdescription:\n\t\t'Upsert embedding vectors into the configured Supabase pgvector table. Provide stable ids, vector values, and optional flat metadata.',\n\tinputSchema: upsertVectorsInputSchema,\n\toutputSchema: upsertVectorsOutputSchema,\n\tsideEffect: 'write',\n\truntime: 'both',\n\texecute: async (input, ctx) => SupabaseVectorClient.fromContext(ctx).upsert(input)\n})\n\nexport const supabaseVectorQueryTool = defineTool({\n\tid: 'supabase-vector-query',\n\tname: 'supabaseVectorQuery',\n\tdescription:\n\t\t'Run a nearest-neighbor query against the configured Supabase pgvector table. Returns the closest rows up to the requested top_k and optional score threshold.',\n\tinputSchema: queryVectorsInputSchema,\n\toutputSchema: queryVectorsOutputSchema,\n\tsideEffect: 'read',\n\truntime: 'both',\n\texecute: async (input, ctx) => SupabaseVectorClient.fromContext(ctx).query(input)\n})\n\nexport const supabaseVectorDeleteTool = defineTool({\n\tid: 'supabase-vector-delete',\n\tname: 'supabaseVectorDelete',\n\tdescription: 'Delete embedding vectors by id from the configured Supabase pgvector table.',\n\tinputSchema: deleteVectorsInputSchema,\n\toutputSchema: deleteVectorsOutputSchema,\n\tsideEffect: 'delete',\n\truntime: 'both',\n\texecute: async (input, ctx) => SupabaseVectorClient.fromContext(ctx).delete(input)\n})\n\nexport const supabaseVectorModule = defineModule({\n\tid: 'supabase-vector',\n\ttitle: 'Supabase Vector',\n\tdescription: 'Supabase Postgres and pgvector tools to upsert vectors, query nearest matches, and delete vectors.',\n\truntime: 'both',\n\tauth: { type: 'custom', schema: supabaseVectorAuthSchema },\n\tcategories: ['ai', 'vector'],\n\tclassification: 'pii',\n\ttags: ['pgvector', 'supabase'],\n\ttools: [supabaseVectorUpsertTool, supabaseVectorQueryTool, supabaseVectorDeleteTool]\n})\n"],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { g as ToolSource, o as ToolContext, s as ToolDefinition } from "../types-Ccb0DXY9.js";
|
|
2
|
+
import { toolDefinition } from "@tanstack/ai";
|
|
3
|
+
//#region src/adapters/tanstack/create-tanstack-tool.d.ts
|
|
4
|
+
type TanStackServerTool = ReturnType<ReturnType<typeof toolDefinition>['server']>;
|
|
5
|
+
type TanStackExecuteContext = Parameters<NonNullable<TanStackServerTool['execute']>>[1];
|
|
6
|
+
type TanStackToolsOptions = {
|
|
7
|
+
context?: ToolContext;
|
|
8
|
+
createContext?: (context: TanStackExecuteContext) => ToolContext | Promise<ToolContext>;
|
|
9
|
+
};
|
|
10
|
+
declare function createTanStackTool(kernelTool: ToolDefinition, options?: TanStackToolsOptions): TanStackServerTool;
|
|
11
|
+
declare function createTanStackTools(source: ToolSource, options?: TanStackToolsOptions): TanStackServerTool[];
|
|
12
|
+
declare function createTanStackToolRecord(source: ToolSource, options?: TanStackToolsOptions): Record<string, TanStackServerTool>;
|
|
13
|
+
//#endregion
|
|
14
|
+
export { type TanStackExecuteContext, type TanStackToolsOptions, createTanStackTool, createTanStackToolRecord, createTanStackTools };
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../src/adapters/tanstack/create-tanstack-tool.ts"],"mappings":";;;KASK,qBAAqB,WAAW,kBAAkB;KAE3C,yBAAyB,WAAW,YAAY;KAEhD;EACX,UAAU;EACV,iBAAiB,SAAS,2BAA2B,cAAc,QAAQ;;iBAG5D,mBAAmB,YAAY,gBAAgB,UAAS,uBAA4B;iBAcpF,oBAAoB,QAAQ,YAAY,UAAS,uBAA4B;iBAU7E,yBACf,QAAQ,YACR,UAAS,uBACP,eAAe"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { n as runTool, s as resolveTools } from "../with-auth-CpKqTrGK.js";
|
|
2
|
+
import { t as assertUniqueBy } from "../unique-EwBH1JPB.js";
|
|
3
|
+
import { t as mergeAdapterToolContext } from "../framework-context-DVIIY8ZO.js";
|
|
4
|
+
import { keyBy } from "es-toolkit";
|
|
5
|
+
import { toolDefinition } from "@tanstack/ai";
|
|
6
|
+
//#region src/adapters/tanstack/create-tanstack-tool.ts
|
|
7
|
+
function createTanStackTool(kernelTool, options = {}) {
|
|
8
|
+
return toolDefinition({
|
|
9
|
+
name: kernelTool.id,
|
|
10
|
+
description: kernelTool.description,
|
|
11
|
+
inputSchema: kernelTool.inputSchema,
|
|
12
|
+
outputSchema: kernelTool.outputSchema
|
|
13
|
+
}).server(async (args, context) => {
|
|
14
|
+
return runTool(kernelTool, args, await mergeAdapterToolContext(context, options, "abortSignal"));
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
function createTanStackTools(source, options = {}) {
|
|
18
|
+
const tools = resolveTools(source);
|
|
19
|
+
assertUniqueBy(tools, (t) => t.id, (id) => `Duplicate tool id when building TanStack tools: ${id}`);
|
|
20
|
+
return tools.map((tool) => createTanStackTool(tool, options));
|
|
21
|
+
}
|
|
22
|
+
function createTanStackToolRecord(source, options = {}) {
|
|
23
|
+
return keyBy(createTanStackTools(source, options), (t) => t.name);
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
26
|
+
export { createTanStackTool, createTanStackToolRecord, createTanStackTools };
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/adapters/tanstack/create-tanstack-tool.ts"],"sourcesContent":["import { toolDefinition } from '@tanstack/ai'\nimport { keyBy } from 'es-toolkit'\n\nimport { mergeAdapterToolContext } from '../framework-context'\nimport { resolveTools } from '../../core/resolve-tools'\nimport type { ToolContext, ToolDefinition, ToolSource } from '../../core/types'\nimport { assertUniqueBy } from '../../core/unique'\nimport { runTool } from '../../core/with-auth'\n\ntype TanStackServerTool = ReturnType<ReturnType<typeof toolDefinition>['server']>\n\nexport type TanStackExecuteContext = Parameters<NonNullable<TanStackServerTool['execute']>>[1]\n\nexport type TanStackToolsOptions = {\n\tcontext?: ToolContext\n\tcreateContext?: (context: TanStackExecuteContext) => ToolContext | Promise<ToolContext>\n}\n\nexport function createTanStackTool(kernelTool: ToolDefinition, options: TanStackToolsOptions = {}): TanStackServerTool {\n\tconst definition = toolDefinition({\n\t\tname: kernelTool.id,\n\t\tdescription: kernelTool.description,\n\t\tinputSchema: kernelTool.inputSchema,\n\t\toutputSchema: kernelTool.outputSchema\n\t})\n\n\treturn definition.server(async (args, context) => {\n\t\tconst ctx = await mergeAdapterToolContext(context, options, 'abortSignal')\n\t\treturn runTool(kernelTool, args, ctx)\n\t})\n}\n\nexport function createTanStackTools(source: ToolSource, options: TanStackToolsOptions = {}): TanStackServerTool[] {\n\tconst tools = resolveTools(source)\n\tassertUniqueBy(\n\t\ttools,\n\t\t(t) => t.id,\n\t\t(id) => `Duplicate tool id when building TanStack tools: ${id}`\n\t)\n\treturn tools.map((tool) => createTanStackTool(tool, options))\n}\n\nexport function createTanStackToolRecord(\n\tsource: ToolSource,\n\toptions: TanStackToolsOptions = {}\n): Record<string, TanStackServerTool> {\n\treturn keyBy(createTanStackTools(source, options), (t) => t.name)\n}\n"],"mappings":";;;;;;AAkBA,SAAgB,mBAAmB,YAA4B,UAAgC,CAAC,GAAuB;CAQtH,OAPmB,eAAe;EACjC,MAAM,WAAW;EACjB,aAAa,WAAW;EACxB,aAAa,WAAW;EACxB,cAAc,WAAW;CAC1B,CAEgB,CAAC,CAAC,OAAO,OAAO,MAAM,YAAY;EAEjD,OAAO,QAAQ,YAAY,MAAM,MADf,wBAAwB,SAAS,SAAS,aAAa,CACrC;CACrC,CAAC;AACF;AAEA,SAAgB,oBAAoB,QAAoB,UAAgC,CAAC,GAAyB;CACjH,MAAM,QAAQ,aAAa,MAAM;CACjC,eACC,QACC,MAAM,EAAE,KACR,OAAO,mDAAmD,IAC5D;CACA,OAAO,MAAM,KAAK,SAAS,mBAAmB,MAAM,OAAO,CAAC;AAC7D;AAEA,SAAgB,yBACf,QACA,UAAgC,CAAC,GACI;CACrC,OAAO,MAAM,oBAAoB,QAAQ,OAAO,IAAI,MAAM,EAAE,IAAI;AACjE"}
|